TOPサーバ構築・運用> 仮想マシンの終了と強制終了
RHEL5+Xen
Red Hat Enterprise Linux 5の仮想化

第4回:virshコマンドで仮想化を管理する!

著者:日本ヒューレット・パッカード  平 初   2007/7/31
前のページ  1  2  3
仮想マシンの終了と強制終了

   仮想マシンが終了する際にトラブルで止まってしまって正常終了できない場合があります。しかしUPSで給電しきれる時間以内に終了しなければなりません。そのような場合、「ゲストOSが5分(300秒)以内にシャットダウンできなければ、異常とみなし強制終了する」という運用要件が定義されることでしょう。

   このような場合はvirshコマンドのオプションとdateコマンドをうまく組み合わせて運用要件を実現します(スクリプト3)。
スクリプト3:sample3.sh
#!/bin/bash

VMNAME=rhel5
IPADDRESS=192.168.0.100
VMFILE=/etc/xen/rhel5.xml
TIMEOUT=300
STATE=1

virsh shutdown $VMNAME > /dev/null 2>&1
rc=$?
[ $rc -ne 0 ] && exit $STATE

before=$(date +%s)
now=$(date +%s)

while [ $((now - before)) -le $TIMEOUT ]
do
  virsh domstate $VMNAME > /dev/null 2>&1
  rc=$?
  if [ $rc -eq 1 ]; then
    STATE=0
    break
  fi

  now=$(date +%s)
  sleep 1
done

if [ $STATE -ne 0 ]; then
  virsh destroy $VMNAME > /dev/null 2>&1
fi

exit $STATE

   具体的には1度virsh shutdownコマンドを実行し、300秒待った上で終了できていない場合にvirsh destroyコマンドで強制終了します。


物理マシンでも仮想マシンでも運用は変わらない

   たとえ、サーバ仮想化を行ったとしても基本的な運用は変わりません。各仮想マシン上のゲストOSの監視も、パッチ適用も、バックアップも基本は同じです。変わる点といえば、仮想マシンの起動と停止くらいです。これも遠隔から電源操作が行えるサーバを使うときと対して変わらない運用スクリプトで対応できます。このようにスクリプトの本質を捉えてしまえばサーバの仮想化は決して難しいものではありません。

   なお、本連載でご紹介したスクリプトはご自由に改変して頂いてかまいません。ただし自己責任でお願いします。読者の皆さんの日々の業務に少しでも役立てば幸いです。

前のページ  1  2  3


日本ヒューレット・パッカード株式会社 平 初
著者プロフィール
日本ヒューレット・パッカード株式会社  平 初
テクニカルセールスサポート統括本部 ESSビジネス推進本部
Bladeビジネス推進部 BladeSystem SWAT
仮想化技術を啓蒙するため、2006年に日本ヒューレット・パッカードへ転職。いつもはHP BladeSystem c-Classおよび仮想化技術を含む提案支援を主に扱っている。セミナーや客先訪問で忙しい毎日を送っている。


INDEX
第4回:virshコマンドで仮想化を管理する!
  xmコマンドとvirshコマンド
  仮想マシンの停止
仮想マシンの終了と強制終了