ヘッダーイメージ 本文へジャンプ
日記

2012年03月15日 12時35分
ESXi5 でのバックアップとVNCの設定
ESXi5 でバックアップとVNCの設定をしてみました

起動中のゲストOSのバックアップはイメージファイルがロックされているので基本取れないんですが、スナップショットを取ると、それ以前のディスクイメージのロックが外れるのでバックアップできるみたいなので、ゲストOSの一覧を取って、順番に

・スナップショットの取得
・バックアップ作成
・スナップショット削除

ってやっていくと少なくとも取得時点のディスクイメージのバックアップはできるようです

具体的には
#! /bin/sh
ds=/vmfs/volumes/datastore1
bk=/vmfs/volumes/backup1
for vmstr in `vim-cmd vmsvc/getallvms | grep -v Name | awk '{ print $1 "," $4 }'`
do
 vmid=`echo $vmstr | awk -F',' '{ print $1 }'`
 vmname=`echo $vmstr | awk -F',' '{ print $2 }' | awk -F'/' '{ print $1 }'`
 name=BACKUP_`date +%Y%m%d%H%M%S`
 vim-cmd vmsvc/snapshot.create $vmid $name > /dev/null

 if [ -f $bk/$vmname.tgz ]
 then
  mv $bk/$vmname.tgz $bk/$vmname.old.tgz
 fi
 tar zcf $bk/$vmname.tgz $ds/$vmname

 snapLevel=`vim-cmd vmsvc/snapshot.get $vmid | grep Name | grep -n $name | awk -F':' '{ print $1-1 }'`
 vim-cmd vmsvc/snapshot.remove $vmid removeChildren $snapLevel > /dev/null
done

こんな感じのスクリプトでいけました
もっと賢いスクリプトもあるでしょうけど、まぁ・・・
※上記スクリプトではスナップショットが消えませんでした・・・

これを消えない場所において(私はバックアップ用のディスク /vmfs/volumes/backup1)において cron の登録を行います
/var/spool/cron/crontabs/root に
「0 17 * * 6
/vmfs/volumes/backup1/backup」(赤の部分はスクリプトの名前をフルパスで)
な1行を追加して crond を再起動すればよいのですが、それだと再起動したときに設定が消えるので、/etc に rc.local.d ってフォルダーを作り(このフォルダーの中身を起動時に端から実行してくれるようです)、そこに適当な名前のスクリプトを置き、
#! /bin/sh
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 17 * * 6 /vmfs/volumes/backup1/backup" >> /var/spool/cron/crontabs/root
/bin/busybox crond ※ESX5.1 でエラーになるので /bin/crond の方が良いかも
(でも起動時には消えるので)
/etc/rc.local.d フォルダーごと固めて、/bootbank に置きます
(名前は適当で良いです。ここでは local.tgz にしました)

tar zcvf /bootbank/local.tgz /etc/rc.local.d

で、/bootbank/boot.cfg の「modules=」の最後に「--- local.tgz」を追加すれば、起動時に展開してくれるようです

これでOK

で、VNC の方は、/etc/vmware/firewall/ の下にこれまた適当な名前のxmlファイルを作り
<ConfigRoot>
<!-- vnc -->
<service id="0000">
<id>VNC</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>
<begin>
5900</begin>
<end>
5909</end>
</port>
</rule>
<enabled>false</enabled>
<required>false</required>
</service>
</ConfigRoot>

な内容にして(インデントがうまくついてません、すいません・・・赤のところを適当なポート番号に!)
「esxcli network firewall refresh」

ESXi のクライアントで、サーバーの構成で、ソフトウェアのセキュリティープロファイルのプロパティーを開きVNCのの前のチェックを付ければOK
(私は念のためもう一回 「esxcli network firewall refresh」 を打ちましたが・・・)

で、これも再起動すると消えるので、上の local.tgz に xml ファイルを入れました

tar zcvf /bootbank/local.tgz /etc/rc.local.d /etc/vmware/firewall/

最後に、ゲストOSの設定に

remotedisplay.vnc.port=”5900″
remotedisplay.vnc.enabled=”true”
remotedisplay.vnc.password=“password”
remotedisplay.vnc.keymap=“us”
※ UI で設定するときは 「”」は不要でした・・・

こんな感じで設定を追加すればVNCで繋がりました

が、これってVNCのクライアントがいるんですね・・・
IEで5900番ポートにアクセスすればよいのかと思ったのですがダメでした
それならESXiのクライアントでコンソール開いてもおんなじ気がする・・・



・VMWARE に MACOSX を入れてみる
・VMServer内のゲストOSのIPV6 暫定解決
・ESXi5 に変えてみました
・ESXi5 でのバックアップとVNCの設定
・ESXi5 と UPS の連携
・ESXi5 で MACOSX
・ESXi5 のゲストOSにHDをRAWマウント
・ESXi5 P2V の変換
・ESXi5 でのバックアップ続編
・ESXi5 のゲストに HDAudio の追加
・ESXi に Windows8 を入れてみる
・ESXi5.1 へアップデート
・ESXi5.1 で crond が動いてない・・・
・Androidの開発でもやってみるか!
・ESXiのディスク障害
・ESXi5.5 を いまどきのマザーボードにインストール
・ESXi5.1 -> 5.5 での問題
・Volume サイズ と FileSystem のサイズ
・ESXi5.5 上の Windows2012R2 のネットが切れる
・ESXi5.5 上のクライアントが異常に遅い

カテゴリー:日記
目次へ戻る


フッターイメージ