自動でバックアップを取得する設定方法を。
ghettovcbと言うツールがあるので、それを導入した際のメモ。
ここから ghettoVCB-master.zipをダウンロードする。
https://github.com/lamw/ghettoVCB
※画面の上に「ZIP」ボタンがあるからクリック。
ダウンロードしてきたら、VMWare ESXi サーバにアップロードする。
※ログイン後 -> サーバIPアドレスをポイント -> サマリタブ -> ストレージ
ストレージ欄の中のストレージをポイント
(うちの環境はdatastoreとbackupがありbackupをポイントすることとする)
右クリック -> データストアの参照
画面の上側に上矢印がついているアイコンがあるのでクリック -> ファイルのアップロード
で、ダウンロードしてきたファイルを選択しアップロードする。
SSHシェルでVMWare ESXi サーバに接続する。
接続出来ない場合は22番ポートが解放されてないから解放しよう。
※構成タブ -> セキュリティプロファイル -> サービス欄のプロパティ
SSHをポイントしオプションをクリック -> ホストに連動して開始及び停止をクリック
サービスコマンドの開始をクリック
これでSSHサービスは開始される。
※セキュリティプロファイル -> ファイアウォール欄のプロパティ
SSHサーバにチェックを入れる。
これでSSHに接続できるはず。
SSHシェル起動後
# cd /vmfs/volumes/backup
# unzip ghettoVCB-master.zip
# mv ghettoVCB-master ghettoVCB
# cd ghettoVCB
# mkdir bklog
# chmod 755 ghettoVCB.sh
# vi ghettoVCB.sh
------------------------------------------------------------
VM_BACKUP_VOLUME=/vmfs/volumes/backup
DISK_BACKUP_FORMAT=thinPOWER_VM_DOWN_BEFORE_BACKUP=0
VM_BACKUP_ROTATION_COUNT=1 <-- バックアップの世代数
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ENABLE_NON_PERSISTENT_NFS=0UNMOUNT_NFS=0
NFS_SERVER=192.168.1.1
NFS_MOUNT=/upload
NFS_LOCAL_NAME=backup
NFS_VM_BACKUP_DIR=mybackups
EMAIL_DEBUG=0
EMAIL_LOG=1
EMAIL_DELAY_INTERVAL=1EMAIL_SERVER=xxxxx.xx.xx
EMAIL_SERVER_PORT=25
EMAIL_FROM=xxxxxx@xxxx.xx
EMAIL_TO=xxxxxx@xxxx.xx
------------------------------------------------------------
これでスクリプトファイルの設定はOK。今回はローカルにバックアップを行った後に
メールを送信する形。
只これまでの設定だけだとメール送信できない。ポートが空いてないから。
だから、次はファイアウォールの設定を行ってやる。
# vi smtp.xml
<ConfigRoot><service id='0000'>
<id>smtp</id>
<rule id='0000'>
<direction>outbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>25</port>
</rule>
<enabled>false</enabled>
<required>false</required>
</service>
</ConfigRoot>
# cp smtp.xml /etc/vmware/firewall
# esxcli network firewall refresh
ここまで終わったら構成タブ -> セキュリティプロファイル -> ファイアウォール欄のプロパティ
からsmtpを見つけてチェックを入れれば良い。
ほいでテストしてみよう。
# ./ghettoVCB.sh -a
ログは/tmp に出るから確認する。
エラーが出るかもしれない。基本的に、このツールを使用する前にスナップショットを取っていると
エラーになるので注意。
後はここも見とくべきかなぁ。
メールが飛ばないときにチェックすべし。
# vi ghettoVCB.sh
1122行目の"${NC_BIN}" -i から始まる行をコメントアウトして
awk '{gsub(/\r/,""); gsub(/$/,"\r"); print $0;}' "${EMAIL_LOG_CONTENT}" | "${NC_BIN}" -v -C -i 1 "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" > /dev/null 2>&1
※上記は1行で。
1131行目の"${NC_BIN}" -i から始まる行をコメントアウトして
awk '{gsub(/\r/,""); gsub(/$/,"\r"); print $0;}' "${EMAIL_LOG_CONTENT}" | "${NC_BIN}" -C -v -i 1 "${EMAIL_SERVER}" "${EMAIL_SERVER_PORT}" > /dev/null 2>&1
これでいけるはず。
動作確認が終わったらcronに登録しよう。crontab -e は使えないから、違う方法で。
# /bin/kill $(cat /var/run/crond.pid)
# cd /var/spool/cron/crontabs
# chmod +x root
# vi root
0 22 * * * /vmfs/volumes/backup/ghettoVCB/ghettoVCB.sh -a > /vmfs/volumes/backup/ghettoVCB/bklog/ghettoVCB-backup-$(date +\%s).log
これを1行で書く。今回の例は毎日10時に動作するようにしてる。
# /bin/busybox crond
とまぁ、こんな感じ。けど、これだと再起動後にcron設定が消えてなくなってしまうという。
それにsmtpの設定も。VMWare ESXiの仕様なわけで中々にはまる部分だぞ、っと。
cron自体は言うほど難しくない。rc.localに書けばいいから。smtpはさて、どうするか。。。
# vi /etc/rc.local
一番最後に追記。
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 22 * * * /vmfs/volumes/backup/ghettoVCB/ghettoVCB.sh -a > /vmfs/volumes/backup/ghettoVCB/bklog/ghettoVCB-backup-\$(data +\\%s).log" >> /var/spool/cron/crontabs/root※これは一行で書くべし。
/bin/busybox crond
cp /vmfs/volumes/backup/ghettoVCB/smtp.xml /etc/vmware/firewall/
esxcli network firewall refresh
こんな感じかな。色々調整して自分好みに変更してくれたら。
バックアップファイルも中々大きいから世代数は考えて取得しよう。








