- 追加された行はこの色です。
- 削除された行はこの色です。
**目次 [#j4f7d74d]
#Contents
**VMwareServerConsoleでログイン後に応答がなくなる [#df94f721]
VMwareServerConsoleでログインしたあと、VMwareServerConsoleの応答がなくなり、ハングアップする。
-原因~
VMwareServer側のTCPラッパーでアクセス制限が設けられている場合に発生
**仮想マシンがダウンする [#e5c07d0e]
VMwareServerから以下のログが出力され、仮想マシンがダウンする障害。
-/var/log/vmware/vmware-serverd.log
app| VMServerd IPC closed the connection with thread [仮想マシン設定ファイル].vmx (0x86adae8)
app| Lost connection to [仮想マシン設定ファイル].vmx ( [仮想マシン設定ファイル].vmx) unexpectedly.
app| vmdbPipe_Streams Couldn't read: OVL_STATUS_EOF
app| VMHS: Connection to VM broken: cfg: [仮想マシン設定ファイル].vmx; error: Pipe: Read failed; state: 3
app| VM suddenly changed state: poweredOff.
app| VM suddenly changed state: poweredOff.
app| VM suddenly changed state: poweredOff.
app| cleanup: cleaned up 1 objects
-原因~
CentOS 5 + VMwareServer 1.xで発生する現象。~
CentOS 4.5 + VMwareServer 1.xでも同様の現象が発生。仮想マシン3台が稼働中の環境にて2台がダウン。(2008/08/29)~
CentOS 4.7 + VMwareServer 2.xでも同様の現象が発生。(2008/10/16)~
-対策~
対策は発見できず。(CentOS5でVMwareServerを使用しない方法で対応)
***ワークアラウンド [#n4e3f9cc]
仮想マシンの電源が落ちる現象を可決できないことから、ワークアラウンドとして定期的に仮想マシンの稼動状態を監視し、ダウンした場合は立ち上げなおすスクリプトを生成。
-vmcheck.sh~
プロセスから仮想マシンの稼働状況を把握し、プロセスが存在しない場合はvmboot.shを使用して仮想マシンを起動する。
#!/bin/sh
# ------------------------
# VM Bootup Script
# ------------------------
# Version : 1.0
# date : 2008/10/19
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
## Set
VMBOOT=/home/system/scripts/apl/vmware/vmboot.sh
VMCKLOG=/home/system/logs/vm-check.log
VMLIST=/home/system/logs/vmlist.txt
## Cheack
# CentOS-Web
VMNAME=CentOS-Web
ps ax | grep vmx | grep $VMNAME > /dev/null
if [ $? -eq 1 ]; then
date +%Y/%m/%d\ %H:%M:%S >> $VMCKLOG
echo $VMNAME >> $VMCKLOG
$VMBOOT $VMNAME >> $VMCKLOG 2>&1
sleep 20
echo "------------------" >> $VMCKLOG
fi
exit 0
# EOF
-vmlist.sh~
vmware-vim-cmdを使用し、仮想マシンとVMIDのリストを作成。
#!/bin/sh
# ------------------------
# VM List Script
# ------------------------
# Version : 1.0
# date : 2008/10/19
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
## Set
VMCMD=/usr/bin/vmware-vim-cmd
VMLIST=/home/system/logs/vmlist.txt
## Exec
$VMCMD vmsvc/getallvms > $VMLIST
exit 0
# EOF
-vmboot.sh~
vmlist.shから出力されたリストからVMIDを取得し、引数で渡された仮想マシンをvmware-vim-cmdを使用してVMを起動。
#!/bin/sh
# ------------------------
# VM Bootup Script
# ------------------------
# Version : 1.0
# date : 2008/10/19
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
## Set
VMCMD=/usr/bin/vmware-vim-cmd
VMLIST=/home/system/logs/vmlist.txt
## Check
if [ -z $1 ]; then
echo "ERR : please VM name"
echo "USE : ./vmboot.sh [VM NAME]"
exit 0
else
VMNAME=$1
fi
## Get vmid
cat $VMLIST | grep $VMNAME > /dev/null 2>&1
if [ $? -eq 1 ]; then
echo "ERR:"$VMNAME" - not found "
exit 0
fi
## Bootup
VMID=`cat $VMLIST | grep $VMNAME`
$VMCMD vmsvc/power.on $VMID
exit 0
# EOF