停電対策続き)

仮想サーバーのESXi4.1があるので、これにも自動シャットダウン・自動起動設定をする。

 電源復旧後の自動電源オンは、BIOSで設定する。

 DELL PowerEdge T110の場合
 1)サーバ起動時に「F2」キーを押し、BIOS設定画面を起動。
 2)「System Security」→「AC Power Recovery」を「Last」から「On」に変更。

 仮想マシンの自動電源オンは、vShere Clientで設定する。

  1)ホストを選択
  2)構成から、仮想マシンの起動/シャットダウンを選択
  3)「システムに連動した仮想マシンの自動起動および停止を許可する」にチェック
  4)「バーチャルマシンの起動順序の設定」で自動起動の所に仮想マシンを移動する

   これで、停電時には、ホストがシャットダウンされたら、仮想マシンがシャットダウンするようになります。
  また、電源が復旧したら、自動的に電源がオンになり、さらに仮想マシンも自動起動されるようになります。

  仮想マシンの1つに、FileMakerのホストがあるのですが、シャットダウンすると、エラーになります。
  そのため、シャットダウンではなくて、サスペンドにしたら、うまくいきました。

------------------------------------------------------------------------------------------------------------------------

  ESXiホストのシャットダウン方法ですが、別の物理サーバー(Linux)から、
  apcupsdを使用して、ネットワーク経由でシャットダウンすることにしました。
  というのも最初は、VMAを入れて、シャットダウンさせようとしていたんですが、
  仮想マシンからシリアルポートがどうしても認識できず、あきらめました。

  940-0024CをUPS接続して、仮想マシンにシリアルポートを追加し、物理ポートを使用したが認識しない。
  940-0024C+ ELECOM UC-SGT USB to シリアルケーブルで、USBコントローラを追加した後、
  USBデバイスが表示されず、こちらもダメ。

  ESXiホストのシャットダウン方法)

  ESXiサーバーへsshでログインして、シャットダウンします。

  1)ESXiでsshを有効にする。

      ESXi4.1から設定コンソールから、sshを有効に出来るようになりました。
      Troubleshooting Mode Options → Enable Remote Tech Support(SSH)

  2)パスワードなしで、sshログインできるようにする
expect使うのは、インストールがめんどいので、こっちの方法で。
      
       クライアント側でキーを作成
       ssh-keygen -t rsa
       パスワードなしにするので、リターンを3回押す

       /.sshに id_rsaとid_rsa.pubファイルが作られる。
       id_rsa.pubファイルをWinSCPなどでESXiのホストへ転送する。

       ESXiホストにログインする
       cd /
       mkdir .ssh
       chmod 700 .ssh
       cat id_rsa.pub >> authorized_keys
       chmod 600 authorized_keys
       クライアントからsshログインをしてみて、パスワードなしでログインできるかどうか確認する。

  3)シャットダウンスクリプトを作成する
 
      ESXiホストにシャットダウンスクリプトを作成する。
      vi ups_shutdown.sh
/sbin/shutdown.sh
/sbin/poweroff
      chmod 700 ups_shutdown.sh

  4)ESXiホストで作ったファイルを圧縮して、起動時に展開する

      ESXiホストは、再起動すると、作成したファイルが消えて元に戻るので、
      圧縮ファイルに入れて、起動時に展開するようにする必要がある。

      圧縮ファイル作成
      tar -C / -czf "/bootbank/home.tgz" /.ssh /ups_shutdown.sh

      起動時に読み込むように --- home.tgzを追加
      vi /bootbank/bootcfg

      # cat boot.cfg
      kernel=vmkboot.gz
      kernelopt=
      modules=vmk.gz --- sys.vgz --- cim.vgz --- oem.tgz --- license.tgz --- mod.tgz --- home.tgz
      build=4.0.0-208167
      updated=1
      bootstate=0

        
  5)apcupsdのシャットダウンスクリプトに、sshコマンドを入れる

      vi /etc/apcupsd/apccontrol
 
      doshutdown)
      echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
      ssh ESXiホストのIPアドレス /ups_shutdown.sh
      ${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"