初めに

VMware ESXi 3.5 Update3 を使用していたが、ESXi 4がでたのでそちらに変更。

すぐには、変更するつもりはなかったが、ICH10Dのドライブに作成しているデータストア内の仮想ドライブの速度が遅かったので、ESXi 4 に変更すれば、直るかなと思い作業を開始しました。

ICH10DはESXi 3.5 U3 の場合標準で認識しない為、oem.tgz を作成しむりやり認識させていました。しかし正常な認識ではなかったのでしょう。

動作はするが、速度がAdaptec RAID コントローラ 2405 に接続しているドライブに比べて、4倍以上遅かった事が判明しました。

ESXi 4 に変更後は、標準でICH10Dを認識し、マザーボード(Intel DQ45CB)のオンボードLANも認識しました。S-ATA接続のDVDドライブも認識しました。

ICH10Dの速度も、通常の速度に戻りましたし、全体の速度がESXi 3.5 U3 より早くなりました。

また、VIClient も新バージョンになり日本語対応となりました。

ESXi起動用USBメモリの作成

ISOファイルをダウンロード

VMwareのダウンロードサイトより

VMware-VMvisor-Installer-4.0.0-164009.x86_64.iso

をダウンロード。

 必要なファイルを取り出し、USBメモリへ書き込み

・別PCのVMware Workstation 6.5 内仮想マシン「CentOS5.1」にて作業。

※ ESXi 3.5 U3 の時とは違う場所に「ddファイル」がある。

—————————————————————–
# mount /dev/cdrom /mnt
# mkdir tmp
# cd tmp
# tar zxvf /mnt/image.tgz
# bunzip2 usr/lib/vmware/installer/VMware-VMvisor-big-164009-x86_64.dd.bz2
# cd usr/lib/vmware/installer/
# dd if=VMware-VMvisor-big-164009-x86_64.dd of=/dev/sdb bs=1M
—————————————————————–
※/dev/sdb はUSBメモリ領域。先に確認する事。

起動確認

現在のドライブの内容が初期化されると困るので、接続しているドライブを全て取り外し起動を確認。

無事起動したら、ネットワークの設定、その他初期設定を行う。
初期画面で表示されているアドレスに別のPCから接続し、表示されたWeb上の「Download vSphere Client」をクリックし、VMware vSphere Client をダウンロードし、クライアントにインストールする。

SSHでリモート接続できるようにする

ESXiのShellへログイン
—————————————
[Alt]+[F1]を押す。
unsupported と入力。
※入力後パスワードを聞いてくるのでパスワード入力。
—————————————

inetd.conf を修正。
※SSHを利用できるようにする。
—————————————
# vi /etc/inetd.conf

※ #ssh ….. ← 先頭の#を削除。

# reboot
—————————————

全てのHDDを接続し再度起動確認

vSphere Client を起動し状態を確認。

HDD内のデータストアが表示されている事を確認し、仮想マシンを起動。

正常に認識されて仮想マシンも正常動作しました。

 新バージョンのVIMA「vMA4.0」仮想アプライアンスをESXiにインポート

VMware ダウンロードサイトより、「vMA4.0」をダウンロードする。

vMA-4.0.0-161993.zip

上記ファイルを解凍後、vSphere Client の [ファイル]-[OVF テンプレートのデプロイ]を起動し、ウイザードに従ってインポートする。

vMAの初期設定をする。(ネットワーク、パスワード等の設定)

vMAにApcupsdをインストール

vMAはx86_64版のRedhatベースのOSですので、apcupsd-3.14.5-1.el5.x86_64.rpm をダウンロードします。

http://jaist.dl.sourceforge.net/sourceforge/apcupsd/apcupsd-3.14.5-1.el5.x86_64.rpm

vMAはwgetが利用できないので直接ダウンロードができません。
別のクライアントPCでWinSCP等を利用しVIMAに接続しコピーします。をインストール

sudo rpm -ivh apcupsd-3.14.5-1.el5.x86_64.rpm

Apcupsdのコンフィグファイルを設定。

・/etc/apcupsd/apcupsd.conf

# sudo vi /etc/apcupsd/apcupsd.conf
----------------------------------------------------
UPSCABLE ether
UPSTYPE net DEVICE 192.168.0.2:3551  ← <マスタのIPアドレス>:<ポートNo>
TIMEOUT 900         ← 電源断から実際にシャットダウンを開始するまでの時間。
----------------------------------------------------

※TIMEOUT時間内に電源が復旧した場合は通常の状態に戻る。

Smart-UPS 750 のeeprom初期値は ESXi 3.5 U3 構築時に行っているのでここでは設定変更しません。

VMware ESXi 3.5 U3 設定覚え書き」参照。

apcupsd の起動。と自動起動設定。

# sudo /etc/rc.d/init.d/apcupsd start
# sudo chkconfig apcupsd on

ESXiホストにシャットダウンスクリプトを作成する

ゲストOSを全てシャットダウンし、ゲストOSのシャットダウン後ホストをシャットダウンするスクリプトを作成する。
作成したスクリプトを、ゲストOSであるVIMAのapcupsd のシャットダウン開始スクリプトの途中でリモート実行する構成にする。

ホストのスクリプトを自動実行する為には、リモートでSSHのコマンドライン実行ができる環境が必要になる。
鍵方式で接続する。その為の設定も必要。

ESXiホストのShellにログインし作業。

・シャットダウンスクリプト

# vi ups_shutdown.sh
----------------------------------------------------------------------------
#!/bin/bash

VMID=$(/usr/bin/vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1}')
for i in $VMID
do
STATE=$(/usr/bin/vim-cmd vmsvc/power.getstate $i | tail -1 | awk '{print $2}')
if [ $STATE == on ]
then
/usr/bin/vim-cmd vmsvc/power.shutdown $i
fi
done
sleep 60
/sbin/shutdown.sh
/sbin/poweroff
----------------------------------------------------------------------------
:wq
# chmod 700 ups_shutdown.sh

「sleep 60」より前のスクリプトはゲストOSのシャットダウン用。
ゲストOSがシャットダウンする間待機させる。

外部からSSH接続でコマンドライン実行ができるように鍵方式の接続をできるようにする。

ESXiホストのShellで作業。

●キーの作成

~# mkdir /.ssh
~# cd .ssh
~# /bin/dropbearkey -t rsa -f id_rsa -s 768 > id_rsa.pub

●WinSCPでWindowsPCから操作。

上記で作成した「id_rsa.pub」をエディタで編集します。
1行目と最終行を削除。

●ESXiに戻り操作を続行。

~# /bin/dropbearconvert dropbear openssh id_rsa id_rsa.ssh
~# cat id_rsa.pub > authorized_keys
~# chmod 400 authorized_keys

●ESXiのSSHにコマンドラインで操作するクライアントに「id_rsa.ssh」を転送。
※WinSCPを利用
※今回の場合は、VIMA仮想マシンに転送。

●クライアント側での操作(VIMA仮想マシン)

chmod 600 /root/id_rsa.ssh
mv /root/id_rsa.ssh /root/esxi_id_rsa.pub

oem.tgz を再作成する。

このままの状態で再起動すると、作成したスクリプトや、認証キーが再起動後無くなってしまうので、再起動後も有効となるように、oem.tgz を再作成する。
重複する部分もでてくるがしかたないので、もう一度作成する。

ESXiホストのShellで作業。

========================================
# cd /tmp/
# mkdir -p oem/.ssh
# cp /ups_shutdown.sh /tmp/oem/
# cp /.ssh/* /tmp/oem/.ssh/
# cd /tmp/oem/
# tar -cvzf oem.tgz .ssh ups_shutdown.sh
# cp oem.tgz /bootbank/oem.tgz
# cd /bootbank/
# chmod 755 oem.tgz
# reboot
========================================

VIMA仮想マシンのapcupsdのシャットダウンスクリプトにESXi内に作成したシャットダウンスクリプトを実行するコマンドを追加する。

VIMA仮想マシンでの作業

# vi /etc/apcupsd/apccontrol
-------------------------------------------------------------------------
    doshutdown)
        echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
        ssh -i /root/esxi_id_rsa.pub root@192.168.0.103 "/ups_shutdown.sh" ← この部分を挿入
        ${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
-------------------------------------------------------------------------

以上で作業が完了しました。
※テストしたところゲストOSが3~4つで、60秒あればゲストOSのシャットダウンが完了した。
その後、ホストのシャットダウンとパワーオフを実行する。

※UPS監視用PC(WindowsXP)の設定は「VMware ESXi 3.5 U3 設定覚え書き」を参照。