Category Archives: Linux (Server) - Page 2

CentOS6 NIC変更時 勝手にネットワークインターフェースが追加される 対策

ESXi5などでCentOS6シリーズな仮想マシンをコピーするとMACアドレスが変わり起動時に勝手にネットワークインターフェースが追加されるので勝手に追加されないようにするシェルスクリプトを書いてみた

#!/bin/sh
RULE="/lib/udev/rules.d/75-persistent-net-generator.rules"
CONT="$(sed 's/^[^#]\(.*\)write_net_rules/#\1write_net_rules/g' $RULE)"

echo "*********************************************************"
echo "[EDTITNG RULE FILE]"
echo "${RULE}"
echo "[ORIGINAL]"
cat  "${RULE}" | grep "write_net_rules"
echo "[CHANGING]"
echo "${CONT}" | grep "write_net_rules"
echo "*********************************************************"
echo -n "CHECK EDIT FILE [y/N]:"
read CHECK_CODE

if [[ "$CHECK_CODE" =~ ^(y|yes)$ ]]; then
        echo "${CONT}" > "${RULE}"
        echo "DONE"
else
        echo "CANCELED"
fi

参考URL
SIOS "OSSよろず" ブログ出張所: CentOS 6 系で NIC 交換すると eth0 と認識されない

HP Smartアレイ P212 ファームウエアアップデート

HP Smartアレイ P212のファームウエアが、5.14だったため5.70へアップデートを行った。

アップデートする方法はWindowsとLinuxで紹介されていたためCentOSのLiveCDを利用しLinuxとしてファームウエアをアップデートすることにした。

ファームウエアアップデータであるCP017183.scexeをこちらからダウンロードし、USBメモリに保存する。

アップデートに使うLinuxであるCentOS-5.6-x86_64-LiveCD.isoをこちらからダウンロードしCDに書き込む。

これらの、USBメモリとCDをサーバへセットし、起動する。

起動後、rootユーザに昇格し、必要なパッケージをインストールする
# yum install ld-linux.so.2
# yum install libstdc++.so.6

※ 当然だが、yumでインストールしてもliveCDとして起動している以上、再起動すると無かったことになるため再起動しないで作業は一気に行う。

USBメモリ内のファームウエアアップデータ保存先に行き下記を実行する。
# ./CP017183.scexe

途中、確認を求められるので”yes”を入力する。

数分待つとファームウエアがアップデートされる。

参考URL
結局、CentOS x86_64をインストール @ ともの技術メモ
Advisory: SmartアレイP410、P410i、またはP212コントローラー – ファームウェアをアップグレードすると、"1783 -Slot 0 Drive Array Controller Failure"のメッセージが表示され、サーバーが応答を停止することがあります。:

ESXi5.1 APC Smart UPS 連携 非SSH

以前、このような記事(ESXi5.1 APC Smart UPS 連携 メモ)を書いたが、SSHを使わずともUPSと連携できるようなので改めてまとめておく。

無料版ESXi5.1のホスト方ではUSP連携に対応していないためゲストを利用してUPSと連携する。
※ 方法は色々あるようで”VMware vSphere Management Assistant”と呼ばれる物を導入する方法もあるようだが今回もゲストにCentOS5を使用して実現する。

使用するゲストにシリアルポートを認識させる。
WS000043

ゲストにApcupsdをインストールする。
インストールの方法は色々と紹介されているので他サイトを参照。

シリアルポートのディバイスファイルの設定が正しいか確認する。
# cat /etc/apcupsd/apcupsd.conf | grep “DEVICE”

# You must also specify a DEVICE, sometimes referred to as a port.
# For USB UPSes, please leave the DEVICE directive blank. For
# UPSTYPE   DEVICE           Description
# usb       <BLANK>          Most new UPSes are USB. A blank DEVICE
DEVICE /dev/ttyS0

Apcupsdを起動する。
# service apcupsd start

ゲスト側でUPSが認識されているか確認するために下記のコマンドを実行する。
# apcaccess

APC      : 001,051,1250
DATE     : 2013-12-21 19:16:06 +0900
HOSTNAME : orsx.net
VERSION  : 3.14.10 (13 September 2011) redhat
UPSNAME  : UPS_IDEN
CABLE    : Custom Cable Smart
DRIVER   : APC Smart UPS (any)
UPSMODE  : Stand Alone
STARTTIME: 2013-12-21 18:45:14 +0900
MODEL    : SMART-UPS 1000
STATUS   : ONLINE
LINEV    : 100.7 Volts
LOADPCT  :  20.8 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  83.0 Minutes
MBATTCHG : 30 Percent
MINTIMEL : 10 Minutes
MAXTIME  : 1200 Seconds
MAXLINEV : 101.4 Volts
MINLINEV : 098.8 Volts
OUTPUTV  : 100.1 Volts
SENSE    : High
DWAKE    : 000 Seconds
DSHUTD   : 180 Seconds
DLOWBATT : 02 Minutes
LOTRANS  : 090.0 Volts
HITRANS  : 110.0 Volts
RETPCT   : 000.0 Percent
ITEMP    : 32.4 C Internal
ALARMDEL : 5 seconds
BATTV    : 28.3 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : 336
STATFLAG : 0x07000008 Status Flag
DIPSW    : 0x00 Dip Switch
REG1     : 0x00 Register 1
REG2     : 0x00 Register 2
REG3     : 0x00 Register 3
MANDATE  : 02/04/99
SERIALNO : WS9906012897
BATTDATE : 02/04/99
NOMOUTV  : 100 Volts
NOMBATTV :  24.0 Volts
EXTBATTS : 0
FIRMWARE : 60.12S.A
END APC  : 2013-12-21 19:16:26 +0900

UPS連携に関係する各種スクリプトを設置するディレクトリを作成する
# mkdir /opt/esxi_shutdown/
# chmod 700 /opt/esxi_shutdown/
# cd /opt/esxi_shutdown/

ESXi5.1ホストマシンにSOAPでシャットダウン命令を送るスクリプトをダウンロードする
※ 長いため改行を入れている
# wget http://communities.vmware.com/servlet/JiveServlet/\
download/11623-3-32693/shutdownHostViaSOAPAPICall.pl

下記のモジュールを使うため事前にcpanなどでインストールしておく
Term::ANSIColor
LWP::UserAgent
HTTP::Request
HTTP::Cookies
Data::Dumper

ユーザ名やパスワードに関する設定を行う
さらに、そのままではSSLの認証でエラーや警告が出るためこれらの設定の直下に環境変数を書き換える処理を加える
# vi shutdownHostViaSOAPAPICall.pl

# Please fill out the 
# username and password 
# for your ESX(i) host
my $host_username = 'fillmein';
my $host_password = 'fillmein';

# Override HTTPS setting in LWP
$ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

シャットダウンするESXi5.1ホストマシンの一覧を管理するファイルを作成する
# echo “esxi_host.com” > hostlist
# chmod 600 hostlist

ESXi5.1ホストマシンのシャットダウンを統括するシェルスクリプトを作成する。
# vi esxi_shutdown.sh

#!/bin/sh
cd /opt/esxi_shutdown/
perl ./shutdownHostViaSOAPAPICall.pl ./hostlist

実行権を与える。
# chmod 700 esxi_shutdown.sh

実際に実行してESXi5.1ホストマシンがゲストからシャットダウンできるか確認する。
# /opt/esxi_shutdown/esxi_shutdown.sh

Apcupsdがシャットダウン時に実行するコマンドを書き換える
# vi /etc/apcupsd/apccontrol

#SHUTDOWN=/sbin/shutdown
SHUTDOWN=/opt/esxi_shutdown/esxi_shutdown.sh

Apcupsdを再起動する。
# service apcupsd restart

最後にUPSの電源を引きぬいてESXi5.1ホストマシンが自動でシャットダウンされるか確認する。

参考サイト
VMware ESXi 5.0 + vMA 5.0で電源管理 (1)

VMware vSphere Client ESXi5.1 接続履歴を削除する方法

VMware vSphere Clientを使っていると使わなくなったESXiのIPアドレスやホスト名が蓄積させるのでその削除方法をメモしておく

※ レジストリに保存された履歴を消す作業になるため注意が必要

使用しているとこのように接続履歴が残る
WS000017

レジストリエディタを起動し下記のようにたどる
[HKEY_CURRENT_USER]->[Software]->[VMware]

そこからさらに、[VMware Infrastructure Client]->[Preferences]とたどると”RecentConnections”に接続したホストがカンマ区切りで保存されているので不要なものを削除する
WS000018

SSLの鍵を保存している場合は、[Virtual Infrastructure Client]->[Preferences]->[UI]->[SSLIgnore]の中にホストごとに保存されているので不要なものを削除する
WS000019

今回、記録されていた2つのホストの接続履歴を削除してみた
WS000020

このように履歴が削除されたことが確認できる

HP ProLiant ML110 G7 ESXi5.1 ハード構成

新サーバを導入してサーバの構成を書いていなかったのでメモしておきたいと思います。

サーバ機:HP ProLiant ML110 G7
CPU:Intel Xeon E3-1280
RAM:KVR16E11/8 × 4枚
SDカード:RP-SDF02G (2GB SLC)
RAIDカード:HP Smart アレイ P212 (256MBキャッシュ + BBWC)
リムーバルケース:SA3-RC1-BK (バックアップディスク用)
ハードディスク1:WD10EFRX * 2台 (ゲストマシン用)
ハードディスク2:WD30EFRX * 1台 (バックアップ用)

ESXi5.1 システムログ保存場所の設定

ESXi5.1でシステムログの出力先を指定する方法のメモが結構少なかったりするのでメモを書いておく。

その1:Systlogの出力先の指定による設定方法
[構成]->[詳細設定] から[Syslog]を選択
[Syslog.global.logdir]でログの出力先を指定する(例:[datastore1]/logdir など)
WS000005

その2:.lockerによるシステムログの出力先の設定方法
デフォルトで.locker/logなどにログが吐出されるのでこれの保存場所を変更する
WS000009

[構成]->[詳細設定] から[ScratchConfig]を選択
[ScratchConfig.ConfigueredScratchLocation]で.lockerの保存場所を変更する(例:/vmfs/volumes/”データストア(32文字の乱数)”/.locker)
WS000006

データベースのパスは[構成]->[ストレージ]から確認できる
確認したいデータストアをクリックするとデータストアの詳細に場所が表示される
WS000007

参考サイト
Change VMware ESX Scatch Config Location (.locker) | Chris Reeves’ Blog

HP ProLiant ML110 G7 ESXi5.1 HP Smartアレイ P212

以前、MegaRAID SAS 9260-4iを搭載しRAID1でベンチマークをとったところ思ったほど書き込み速度が出ないことが分かったため、ML110 G7でサポートされているHP Smartアレイ P212を搭載してみた。

前回のMegaRAID SAS 9260-4iと同様にドライバのインストールなしでESXi5で認識し問題なく動作することができるが、VMware vSphere ClientでRAIDカードのステータス情報を確認することができないため下記の作業を行った。

当然であるが、これらの作業はESXi5がメンテナンスモードに切り替わっている事が前提で行う。
パッチファイルのアップロード先は”/vmfs/volumes/datastore1/drivers/”とする。

ESXi5に同封されていたhpsaのアップデート
この作業を行わなくてもVMware vSphere Client上でRAIDカードのステータス情報を表示させることは可能であるはずだが今回ついでに行った。
HP公式サイトからhpsa-500-5.0.0-1189498.zipをダウンロードし展開後、中に含まれていたhpsa-500-5.0.0-offline_bundle-1189498.zipをESXi5のデータストアにアップロードする。

SSHでESXi5に接続し、下記のコマンドを実行する。

# esxcli software vib list | grep hpsa # 現在のドライバのバージョン確認を行う場合は実行
# esxcli software acceptance set --level=CommunitySupported
# esxcli software vib update -d /vmfs/volumes/datastore1/drivers/hpsa-500-5.0.0-offline_bundle-1189498.zip

hp-esxi5.0uX-bundleのインストール
HP公式サイトからhp-esxi5.0uX-bundle-1.4.5-3.zipをダウンロードしESXi5のデータストアにアップロードする。

SSHでESXi5に接続し、下記のコマンドを実行する。

# esxcli software acceptance set --level=CommunitySupported
# esxcli software vib install -d /vmfs/volumes/datastore1/drivers/hp-esxi5.0uX-bundle-1.4.5-3.zip

これらの作業により再起動後にVMware vSphere Client上でRAIDカードのステータス情報を確認できるようになる。
WS000004

ベンチマーク(RAID1構築・256MBキャッシュ+BBWC)結果を見ると比較的バランスよく速度が出ていることがわかる。
HDDベンチマーク

余談であるが、Smartアレイの設定(ORCA)ではディスクを2台認識させてRAID1の構築を行おうとした場合、RAID1という選択項目はない。この場合、RAID1+0を選択することでRAID1を構築するようである。
そもそも、RAID1+0や0+1はディスク4台以上からであり2台では構築できない。

参考サイト
べっ、別に・・・あんたの(以下略) | ESX/ESXi へのパッチのインストール
Using vCenter Update Manager for HP ESXi installations | Erik Bussink
How to monitor RAID status on N54L? – HP Enterprise Business Community

HP ProLiant ML110 G7 ESXi5.1 SATAハードディスクで異常な書き込み速度低下 解決方法とベンチマーク

HP ProLiant ML110 G7でESXi5を稼働させてからゲストマシンをバックアップした際、移行前の物理マシンは長くても1時間から2時間ほどで作業が完了していたのに10時間以上かかるようになったため調べてみました

テスト環境
マシン:HP ProLiant ML110 G7
ハードディスク:WD10EFRX
ポート:光学ドライブが接続されているSATAポートの下にある予備のSATAポート
ホストOS:ESXi5.1
ゲストOS:Windows XP

BIOS設定

[Advanced Options] -> [SATA Controller Options] -> [Embedded SATA Configuration]   [Enable SATA AHCI Support]

HDDベンチマーク
ネットで言われているように恐ろしく書き込み速度が遅いです

BIOS設定

[Advanced Options] -> [SATA Controller Options] -> [Embedded SATA Configuration]   [Enable SATA AHCI Support]
[Advanced Options] -> [SATA Controller Options] -> [Drive Write Cache]   [Enabled]

HDDベンチマーク2
ディスクキャッシュを有効化すると目を疑うほど書き込み速度が改善されます

繰り返しますが、mini SASポートではなく光学ドライブ用のSATAポートでこの変化がありました
勿論、mini SASポートに接続したディスクに対しても同程度の性能向上を確認いたしました

よってコントローラ自体は同じなようです

結構ネットを探しまわってもこの事に触れているサイトは見当たらなかったので誰かの役に立てばと思います

参考サイト
[VMサーバー統合]ESXiのディスクアクセスが遅い

HP ProLiant ML110 G7 ESXi5.1 MegaRAID SAS 9260-4i

これらをインストールしなくてもMegaRAID SAS 9260-4iはESXi5上で問題なくRAIDカードとして利用できますがアレイの状態が確認できないと不便なのでインストールしてみます
公式サイト(MegaRAID SAS 9260 4i)からLatest LSISAS2108/2208 Certified SMIS ProviderとMegaCLI 5.5 P1をダウンロードしてきます

※ 下記解説ではダウンロードしたファイル群はdatastore1のdriversディレクトリの中に設置しているものとします

Latest LSISAS2108/2208 Certified SMIS Providerのインストール

# esxcli software acceptance set --level=CommunitySupported
# esxcli software vib install -d /vmfs/volumes/datastore1/drivers/VMW-ESX-5.0.0-lsiprovider-500.04.V0.38-0006-offline_bundle-1154845.zip

成功すると次のようにステータスをvSphere Clientから確認できるようになります
WS000002

MegaCLI 5.5 P1のインストール

# esxcli software acceptance set --level=CommunitySupported
# mkdir MegaCLI
# mv 8.07.07_MegaCLI.zip MegaCLI
# cd MegaCLI
# unzip 8.07.07_MegaCLI.zip
# esxcli software vib install -v /vmfs/volumes/datastore1/drivers/MegaCLI/VmwareMN/vmware-esx-MegaCli-8.07.07.vib --no-sig-check

成功すると/opt/lsi/MegaCLI/の中にMegaCliコマンドと共有ライブラリlibstorelib.soが作成されています
MegaCliコマンドを使用することでRAIDカードの情報の表示や設定が行えます

しかし、これだけ書いておいて言うのもなんですが当環境(BBUなし/RAID1)ではESXi5上のゲストマシンで書き込みに対してパフォーマンス低下を確認しました・・・
ファームウエアの問題なのか相性問題なのかはっきりしていませんがこれらの組み合わせはあまりお勧めできないかもしれません

HDDベンチマーク3

参考サイト
Monitoring an LSI MegaRAID on ESXi 5
Updating LSI MegaRAID firmware in VMware ESXi 5 | Kirk Kosinski

Perl SSH接続 Net::SSH2 使い方 CentOS5

PerlでSSHへ接続したくなったのでNet::SSH2を使ってみた
Net::SSH2を使うにはlibssh2-develを使用するらしいのでインストール
# yum -y install libssh2-devel

cpanを使ってNet::SSH2をインストール
# cpan -i Net::SSH2
# cpan -i Net::OpenSSH::Compat::SSH2

実装例
SSHでサーバにログインしてpublic_htmlに移動し、lsコマンドを実行する

#!/usr/bin/perl
use strict;
use warnings;
# SSHのバナーを表示したい場合
#use Net::OpenSSH::Compat::SSH2 qw(:supplant);
use Net::SSH2;

# バッファーサイズ
use constant BUFLEN => 512;

my $host = ""; # 接続先ホスト
my $user = ""; # ユーザ名
my $pass = ""; # パスワード

my ($len, $buf);

my $ssh2 = Net::SSH2->new();

$ssh2->connect($host) or die "$!";

if( $ssh2->auth_password($user,$pass)) {
    my $chan = $ssh2->channel();
    $chan->blocking(0);
    $chan->shell();

    $chan->write("cd public_html\n");
    select(undef,undef,undef,0.2);
    print $buf while ($len = $chan->read($buf, BUFLEN));

    $chan->write("ls -al ./\n");
    select(undef,undef,undef,0.2);
    print $buf while ($len = $chan->read($buf, BUFLEN));

    $chan->close();
}

これは色々使えそうですね

参考サイト
Perl Tips | Perl で、ssh でリモートのサーバにアクセスしてファイルをアップロード(SCP)する方法 (Net::SSH2)
自分イノベーション – 気まぐれ勉強メモ Net::SSH2を使ってみた
Net::SSH2と公開鍵
A little demo for Net::SSH2