Category Archives: ESXi - Page 2

ESXi5.1 APC Smart UPS 連携 メモ

前回のアップデートESXi5.1を623860から914609へアップデートするにより、”vmware-autohalt.sh”を使用しなくてもゲストOSを自動でシャットダウンできるようになったため連携の仕方が若干変わった。

USP連携についてはあまり触れているところは少ないため大まかながらメモしておく。

無料版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,1246
DATE     : 2013-05-28 13:06:07 +0900
HOSTNAME : UPS-SERVER
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-05-28 12:33:37 +0900
MODEL    : SMART-UPS 1000
STATUS   : ONLINE
LINEV    : 101.4 Volts
LOADPCT  :  15.6 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  93.0 Minutes
MBATTCHG : 30 Percent
MINTIMEL : 10 Minutes
MAXTIME  : 1200 Seconds
MAXLINEV : 102.0 Volts
MINLINEV : 099.4 Volts
OUTPUTV  : 101.4 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    : 40.0 C Internal
ALARMDEL : 5 seconds
BATTV    : 28.3 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Line voltage notch or spike
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-05-28 13:06:46 +0900

ESi5.1ホストマシンでシェルの使用とSSHでの接続を有効にする。
WS000044

※これらを有効にするとサマリで警告が表示されるが特に問題は無いので気にしない。

SSHを鍵を使い、パスワードなしでログインできるようにする。
SSHの鍵作成については過去記事ESXi5 SSH 公開鍵暗号化方式 作製を参照。

ゲストに秘密鍵を下記のパスになるようにコピーする。
/root/.ssh/esxi_id_rsa.pub

ESXi5.1ホストマシンに鍵を使ったSSHでパスワードなしでログインできることを確認する。
# ssh -i /root/.ssh/esxi_id_rsa.pub root@<ESXi5.1ホストマシンのIPアドレス>

ゲストでESXi5.1ホストマシンをシャットダウンするシェルスクリプトを作成する。
# vi /usr/local/bin/esxi_shutdown.sh

#!/bin/sh
ssh -i /root/.ssh/esxi_id_rsa.pub root@<ESXi5.1ホストマシンのIPアドレス> "/bin/halt"

実行権を与える。
# chmod 700 /usr/local/bin/esxi_shutdown.sh

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

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

#SHUTDOWN=/sbin/shutdown
SHUTDOWN=/root/bin/esxi_shutdown.sh

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

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

参考サイト
ESXi 4.1 から ESXi 5.0 へアップグレード | SS-NET サポート
VMware ESXi 5.0 + vMA 5.0で電源管理 (3) – apcupsdの導入 « RootLinks Co., Ltd.
自宅サーバ構築じぶんめも SSH設定編 | ken39rajima

ESXi5.1を623860から914609へアップデートする

必要なファイルをダウンロードしてデータストアにアップロードしておく。
なお、パッチを当てると当てていたドライバが剥がれるためもう一度当てなおさなければならない。
ドライバに漏れがあると結構、作業工程的にも精神的にも大変なことになるため十分漏れがないように注意しておく。

パッチ
VMware Store and Account

ドライバ
Adaptec – Adaptec Driver: AACRAID Driver v1.2.1-29900 for VMware Download Detail
ESXi5.1のドライバを作成してみる(intel 82579LM/82574L編) << 環境さんぷる
※ ここではESXi5.1用のNICとRAIDカードのドライバをダウンロードしているがそれぞれの環境に合わせて揃える。

対象のESXi5.1のゲストマシンをシャットダウンし、メンテナンスモードに切り替える。
SSHを使いrootでログインし下記のコマンドを入力する。

アップデート・パッチのインストール

# esxcli software vib install -d /vmfs/volumes/datastore1/ESXi510-201212001.zip

※ 場合によっては非常に時間がかかる事があるが気長に待つ。

ドライバのインストール

# esxcli software acceptance set --level=CommunitySupported
# esxcli software vib install -v /vmfs/volumes/datastore1/net-e1000e-2.1.4.x86_64.vib
# esxcli software vib install -d /vmfs/volumes/datastore1/aacraid-esxi5.1-1.2.1.29900.zip –no-sig-check
# esxcli software vib install -v /vmfs/volumes/datastore1/vmware-esxi-drivers-scsi-aacraid-510.5.2.1.29900.-1.1.5.799733.x86_64.vib –no-sig-check

※ ここではdatastore1にアップロードしているがそれぞれの環境に合わせる。

終わったら再起動し様子を見る。
クライアントのアップデートについて聞いてくるのでアップデートする。
ビルド番号が上がっていてゲストマシンも正常に認識していたらメンテナンスモードを終了し再起動をかける。

ここまでで、アップデートは完了です。

ホットバックアップの再設定
ESXi5.1をアップデートして気づいたのですが/etc/rc.localを編集しようとしたところ”Operation not permitted”と言われた。そのため、”/etc/rc.local.d/local.sh”を書き換える方法で再設定する。

# vi /etc/rc.local.d/local.sh

最下部に追記する。

# ESXi5.1 HOT Back UP
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 17 * * 1-5 /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.sh \
-f /vmfs/volumes/datastore1/ghettoVCB/backup_vmlist.txt \
-g /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.conf \
> /vmfs/volumes/datastore1/ghettoVCB/backup_log/ghettoVCB-backup-\$(date +%s).log" \
>> /var/spool/cron/crontabs/root
/bin/crond

※ 5.1から”/bin/busybox”コマンドが消えたようなので”/bin/crond”としておく。

しかしこのままではバージョンが合わないエラーが出たりwhoamiコマンドが無いなど正常にスクリプトが動作しないようなので書き換える。

# vi /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.sh

230行付近を編集

編集前

	ESX_VERSION=$(vmware -v | awk '{print $3}')
	if [[ "${ESX_VERSION}" == "5.0.0" ]]; then
		VER=5
        elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then
                VER=4
        else
                ESX_VERSION=$(vmware -v | awk '{print $4}')
                if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then
                        VER=3
                else
                        echo "You're not running ESX(i) 3.5, 4.x, 5.x!"
                        exit 1
                fi
        fi

編集後

	ESX_VERSION=$(vmware -v | awk '{print $3}')
	if [[ "${ESX_VERSION}" == "5.0.0" ]] || [[ "${ESX_VERSION}" == "5.1.0" ]]; then
		VER=5
        elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then
                VER=4
        else
                ESX_VERSION=$(vmware -v | awk '{print $4}')
                if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then
                        VER=3
                else
                        echo "You're not running ESX(i) 3.5, 4.x, 5.x!"
                        exit 1
                fi
        fi
# vi /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB-restore.sh

86行付近を編集

編集前

	ESX_VERSION=$(vmware -v | awk '{print $3}')
	if [ "${ESX_VERSION}" == "5.0.0" ]; then
		VER=5
        elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then
                VER=4
        else
                ESX_VERSION=$(vmware -v | awk '{print $4}')
                if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then
                        VER=3
                else
			echo "You're not running ESX(i) 3.5, 4.x, 5.x!"
                        exit 1
                fi
        fi

編集後

	ESX_VERSION=$(vmware -v | awk '{print $3}')
	if [[ "${ESX_VERSION}" == "5.0.0" ]] || [[ "${ESX_VERSION}" == "5.1.0" ]]; then
		VER=5
        elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then
                VER=4
        else
                ESX_VERSION=$(vmware -v | awk '{print $4}')
                if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then
                        VER=3
                else
			echo "You're not running ESX(i) 3.5, 4.x, 5.x!"
                        exit 1
                fi
        fi

101行付近を編集

編集前

if [ ! $(whoami) == "root" ]; then
        logger "info" "This script needs to be executed by \"root\"!"
        echo "ERROR: This script needs to be executed by \"root\"!"
        exit 1
fi

編集後

if [ ! $(who | awk '{print $1}') == "root" ]; then
        logger "info" "This script needs to be executed by \"root\"!"
        echo "ERROR: This script needs to be executed by \"root\"!"
        exit 1
fi

動作チェックを行い、正常に動作していたら再設定完了です。

参考サイト
ESXi5.0マシンを2台作成 | SS-NET サポート
富士通 PRIMERGY TX100 S3 の ESXi5.1 838463 を 5.1 914609 (ESXi510-201212001.zip) にアップデートする。 << 環境さんぷる
VMWARE 5.1 Could not find a trusted signer
【ESXi 5.0】仮想マシンのオンラインバックアップ – OSSでLinuxサーバ構築
Modifying ghettoVCB to run on VMware ESXi 5.1

ESXi5 コマンドから仮想マシンの電源を管理する

対象の仮想マシンのIDを調べる
# vim-cmd vmsvc/getallvms

IDに各当する仮想マシンの状態を確認する(“ID”には数字が入る)
# vim-cmd vmsvc/power.getstate ID

IDに各当する仮想マシンの電源を入れる(“ID”には数字が入る)
# vim-cmd vmsvc/power.on ID

IDに各当する仮想マシンの電源を切る(“ID”には数字が入る)
# vim-cmd vmsvc/power.off ID

IDに各当する仮想マシンを再起動する(“ID”には数字が入る)
# vim-cmd vmsvc/power.reboot ID

ESXi5 SSH 公開鍵暗号化方式 作製

鍵の作り方が分からず苦戦したが下記のサイトにて詳しく書かれていたためそれを参考に鍵を作製した。

ESXi 4.1 から ESXi 5.0 へアップグレード

# cd /etc/ssh/keys-root
# /usr/lib/vmware/openssh/bin/ssh-keygen -t rsa -C “SSH2 RSA key”
Enter file in which to save the key (//.ssh/id_rsa): ./id_rsa
後はEnterで進む

公開鍵をauthorized_keysへ追記しておく
# cat id_rsa.pub > ./authorized_keys

下記が秘密鍵なのでこれを保管しておく
/etc/ssh/keys-root/id_rsa

ESXi5 サーバ仕様の予定 (メモ)

先日ESXi5へ環境を移行したがスペック的に余力がほしいので7月8月を目処にハードウエアを新調する予定。

コンセプト

今回も安定重視のためなるべくインターネット上で使用事例があるパーツを利用する。
各パーツは故障時に対応しやすいよう、よく市販で流通しているパーツを利用する。
現マシンと同等の省エネさでコア数、メモリを増やし、冗長性も高める。

実用

最小3台から最大5台の仮想マシンを動かす予定(現在3台稼働)

構成

CPU: i7 2600
Motherboard: intell DQ67OWB3
Memory: UMAX Cetus DCDDR3-16GB-1333 (x2 32GB)
RAID Card: Adaptec RAID 6405E
Optical drive: (光学ドライブ)
USB Memory: Kingston MicroSD (x1 2GB システムドライブ) + リーダー
SSD: ADATA AS510S3-120GM-C (128GB キャッシュ用)
HDD 1: WD10EFRX (x2 1TB 仮想HDD用)
HDD 2: SEAGATE ST3000DM001 (x1 3TB バックアップ用)
CASE: Antec P183
Others: IDC-BB (UPSとの連動用)

予定変更(2012.06.17)

RAIDカードに9260-4iを利用する予定でしたがそれをやめます。
低価格で条件を全て満たしているAdaptec RAID 6405Eでも良いと判断しました。
パーツは勿論性能安全性重視ですが、高価であると故障した時の対応が遅れる可能性があるためです。
※ 一応、報告としてESXi 5.0で9260-4iはドライバ無しで認識されることを確認しました。

組立・切り替え完了(2012.07.01)

非常に安定しております。初代HP ProLiant DL580などの業務用のサーバ等を利用していた次期もありましたが明らかにそれらとも比べても高いパフォーマンスが出ております。

ハードディスクの故障(2013.01.12)

今更ながらSeagate製ST31000333ASがプチフリが多発するようになったためWestern Digital製WD10EFRXに交換しました。