ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
vSphere Hypevervisor(ESXi)でバックアップを自動で取得する方法について解説します。
この記事のもくじ
バックアップツールのインストール
バックアップツールとしては、ghettoVCBが有名です。Githubよりダウンロードしてください。
こちらをデータストアブラウザでESXiにGithubよりダウンロードしたGhettoVCB-master.zipをアップロードします。
続いてSSHでESXiに接続します。
[root@esxi:~] cd /vmfs/volumes/HDD/backup [root@esxi:/vmfs/volumes/5f539272-3ffe985a-23b1-58278cbf4213/backup] ls ghettoVCB-master.zip [root@esxi:/vmfs/volumes/5f539272-3ffe985a-23b1-58278cbf4213/backup] unzip ghettoVCB-master.zip Archive: ghettoVCB-master.zip creating: ghettoVCB-master/ inflating: ghettoVCB-master/README.md inflating: ghettoVCB-master/ghettoVCB-restore.sh inflating: ghettoVCB-master/ghettoVCB-restore_vm_restore_configuration_template inflating: ghettoVCB-master/ghettoVCB-vm_backup_configuration_template inflating: ghettoVCB-master/ghettoVCB.conf inflating: ghettoVCB-master/ghettoVCB.sh inflating: ghettoVCB-master/vghetto-ghettoVCB-offline-bundle.zip inflating: ghettoVCB-master/vghetto-ghettoVCB.vib [root@esxi:/vmfs/volumes/5f539272-3ffe985a-23b1-58278cbf4213/backup]
バックアップ設定
ghettoVCB.shの頭に設定項目があるので編集しましょう。
##################################################################
# User Definable Parameters
##################################################################
LAST_MODIFIED_DATE=2019_01_06
VERSION=4
# directory that all VM backups should go (e.g. /vmfs/volumes/SAN_LUN1/mybackupdir)
VM_BACKUP_VOLUME=/vmfs/volumes/HDD/backup
# Format output of VMDK backup
# zeroedthick
# 2gbsparse
# thin
# eagerzeroedthick
DISK_BACKUP_FORMAT=thin
# Number of backups for a given VM before deleting
VM_BACKUP_ROTATION_COUNT=3
取り急ぎバックアップデータ保存先のディレクトリを9行目で指定します。
バックアップ取得対象をbackuplist.txtとして作成しましょう。リストには仮想マシン名を指定します
kamatawww
kamatamail
バックアップ実行
[root@esxi:/vmfs/volumes/5f539272-3ffe985a-23b1-58278cbf4213/backup/ghettoVCB-master] ./ghettoVCB.sh -f ./backuplist.txt Logging output to "/tmp/ghettoVCB-2020-09-26_10-52-53-1208386.log" ... 2020-09-26 10:52:53 -- info: ============================== ghettoVCB LOG START ============================== 2020-09-26 10:52:53 -- info: CONFIG - VERSION = 2019_01_06_4 2020-09-26 10:52:53 -- info: CONFIG - GHETTOVCB_PID = 1208386 2020-09-26 10:52:53 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/HDD/backup 2020-09-26 10:52:53 -- info: CONFIG - ENABLE_NON_PERSISTENT_NFS = 0 2020-09-26 10:52:53 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 3 2020-09-26 10:52:53 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2020-09-26_10-52-53 2020-09-26 10:52:53 -- info: CONFIG - DISK_BACKUP_FORMAT = thin 2020-09-26 10:52:53 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0 2020-09-26 10:52:53 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0 2020-09-26 10:52:53 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3 2020-09-26 10:52:53 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5 2020-09-26 10:52:53 -- info: CONFIG - SNAPSHOT_TIMEOUT = 15 2020-09-26 10:52:53 -- info: CONFIG - LOG_LEVEL = info 2020-09-26 10:52:53 -- info: CONFIG - BACKUP_LOG_OUTPUT = /tmp/ghettoVCB-2020-09-26_10-52-53-1208386.log 2020-09-26 10:52:53 -- info: CONFIG - ENABLE_COMPRESSION = 0 2020-09-26 10:52:53 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0 2020-09-26 10:52:53 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0 2020-09-26 10:52:53 -- info: CONFIG - ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP = 0 2020-09-26 10:52:53 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all 2020-09-26 10:52:53 -- info: CONFIG - VM_SHUTDOWN_ORDER = 2020-09-26 10:52:53 -- info: CONFIG - VM_STARTUP_ORDER = 2020-09-26 10:52:53 -- info: CONFIG - RSYNC_LINK = 0 2020-09-26 10:52:53 -- info: CONFIG - BACKUP_FILES_CHMOD = 2020-09-26 10:52:53 -- info: CONFIG - EMAIL_LOG = 0 2020-09-26 10:52:53 -- info: CONFIG - ENABLE NFS IO HACK = 0 2020-09-26 10:52:56 -- info: Initiate backup for kamatamail 2020-09-26 10:52:56 -- info: Creating Snapshot "ghettoVCB-snapshot-2020-09-26" for kamatamail Option --adaptertype is deprecated and hence will be ignored Destination disk format: VMFS thin-provisioned Cloning disk '/vmfs/volumes/NVMe1/kamatamail/kamatamail.vmdk'... Clone: 100% done. 2020-09-26 10:54:15 -- info: Removing snapshot from kamatamail ... 2020-09-26 10:54:15 -- info: Backup Duration: 1.32 Minutes 2020-09-26 10:54:15 -- info: Successfully completed backup for kamatamail! 2020-09-26 10:54:20 -- info: Initiate backup for kamatawww 2020-09-26 10:54:20 -- info: Creating Snapshot "ghettoVCB-snapshot-2020-09-26" for kamatawww Option --adaptertype is deprecated and hence will be ignored Destination disk format: VMFS thin-provisioned Cloning disk '/vmfs/volumes/NVMe1/kamatawww/kamatawww.vmdk'... Clone: 100% done. 2020-09-26 10:55:28 -- info: Removing snapshot from kamatawww ... 2020-09-26 10:55:28 -- info: Backup Duration: 1.13 Minutes 2020-09-26 10:55:28 -- info: Successfully completed backup for kamatawww! 2020-09-26 11:00:22 -- info: ###### Final status: All VMs backed up OK! ###### 2020-09-26 11:00:22 -- info: ============================== ghettoVCB LOG END ================================
バックアップの自動実行
ここまで動作確認したらcronに登録して自動でバックアップが取得できるようにしましょう。
/var/spool/cron/crontabs/rootに書いてあげればいいんですが、ESXiホストが再起動すると消えてしまいます。そこで/etc/rc.local.d/local.shに細工をしてあげます。
/etc/rc.local.d/local.shを編集します。
# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
# Note: This script will not be run when UEFI secure boot is enabled.
cat<<_EOT_>>/var/spool/cron/crontabs/root
0 3 * * 1 /vmfs/volumes/HDD/backup/ghettoVCB-master/ghettoVCB.sh \
-f /vmfs/volumes/HDD/ghettoVCB-master/backuplist.txt
_EOT_
/bin/kill $(cat /var/run/crond.pid)
/bin/crond
exit 0
これで毎週月曜日の午前3:00に自動でバックアップがスタートします。
トラブルシューティング
私の場合は以下のエラーが出てバックアップが取得できない仮想マシンがありました。
[root@esxi:/vmfs/volumes/5f539272-3ffe985a-23b1-58278cbf4213/backup/ghettoVCB-master] ./ghettoVCB.sh -f ./backuplist.txt Logging output to "/tmp/ghettoVCB-2020-09-26_11-24-52-1210817.log" ... 2020-09-26 11:24:52 -- info: ============================== ghettoVCB LOG START ============================== 2020-09-26 11:24:52 -- info: CONFIG - VERSION = 2019_01_06_4 2020-09-26 11:24:52 -- info: CONFIG - GHETTOVCB_PID = 1210817 2020-09-26 11:24:52 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/HDD/backup 2020-09-26 11:24:52 -- info: CONFIG - ENABLE_NON_PERSISTENT_NFS = 0 2020-09-26 11:24:52 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 3 2020-09-26 11:24:52 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2020-09-26_11-24-52 2020-09-26 11:24:52 -- info: CONFIG - DISK_BACKUP_FORMAT = thin 2020-09-26 11:24:52 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0 2020-09-26 11:24:52 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0 2020-09-26 11:24:52 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3 2020-09-26 11:24:52 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5 2020-09-26 11:24:52 -- info: CONFIG - SNAPSHOT_TIMEOUT = 15 2020-09-26 11:24:52 -- info: CONFIG - LOG_LEVEL = info 2020-09-26 11:24:52 -- info: CONFIG - BACKUP_LOG_OUTPUT = /tmp/ghettoVCB-2020-09-26_11-24-52-1210817.log 2020-09-26 11:24:52 -- info: CONFIG - ENABLE_COMPRESSION = 0 2020-09-26 11:24:52 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0 2020-09-26 11:24:52 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0 2020-09-26 11:24:52 -- info: CONFIG - ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP = 0 2020-09-26 11:24:52 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all 2020-09-26 11:24:52 -- info: CONFIG - VM_SHUTDOWN_ORDER = 2020-09-26 11:24:52 -- info: CONFIG - VM_STARTUP_ORDER = 2020-09-26 11:24:52 -- info: CONFIG - RSYNC_LINK = 0 2020-09-26 11:24:52 -- info: CONFIG - BACKUP_FILES_CHMOD = 2020-09-26 11:24:52 -- info: CONFIG - EMAIL_LOG = 0 2020-09-26 11:24:52 -- info: CONFIG - ENABLE NFS IO HACK = 0 2020-09-26 11:24:56 -- info: Initiate backup for VM01 2020-09-26 11:24:56 -- info: Backup Duration: 0 Seconds 2020-09-26 11:24:56 -- info: WARN: VM01 has some Independent VMDKs that can not be backed up! 2020-09-26 11:24:57 -- info: ###### Final status: ERROR: No VMs backed up! ###### 2020-09-26 11:24:57 -- info: ============================== ghettoVCB LOG END ================================ [root@esxi:/vmfs/volumes/5f539272-3ffe985a-23b1-58278cbf4213/backup/ghettoVCB-master]
何やら独立ディスクがあるのでバックアップが取れないと言っていますね。
そこで仮想マシンの設定を見てみましょう。
ディスクモードが独立型になっていることが原因なので依存型に変更します。
なんで独立型になっていたのかは定かではありませんが、Hyper-Vから移行するときにこうなってしまったものと思われます。
ちなみにディスモードについては、以下の解説が公式サイトにあります。
ディスク モードは、仮想ディスクとスナップショットの関係性を決定します。
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-E1D541D1-DF96-467A-89B7-E84F83B2563D.html
次のオプションがあります。
[依存型]:依存型ディスクはスナップショットに含まれます。
[独立型:通常]:通常モードのディスクは、物理コンピュータ上の従来のディスクと同様に動作します。通常モードのディスクに書き込まれたすべてのデータは、永続的にそのディスクに書き込まれます。
記事は以上!