VMware ESXi ゲストマシンバックアップ | ark-56789 備忘録

ark-56789 備忘録

IT系のSEである筆者の備忘録ページ


テーマ:

自動でバックアップを取得する設定方法を。


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=thin

POWER_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=0

VM_SNAPSHOT_MEMORY=0

VM_SNAPSHOT_QUIESCE=0

ENABLE_NON_PERSISTENT_NFS=0

UNMOUNT_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=1

EMAIL_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


こんな感じかな。色々調整して自分好みに変更してくれたら。

バックアップファイルも中々大きいから世代数は考えて取得しよう。

ark-56789さんをフォロー

ブログの更新情報が受け取れて、アクセスが簡単になります

Ameba人気のブログ

Amebaトピックス