以前にESXi上に作成した自宅サーバのroot FSをクラッシュさせた反省から、
定期的に仮想マシン(以下、VM)のバックアップを取ることにするので、
そのための備忘録。
Contents
ghettoVCB
スナップショットだとディスク破損時の対策にはならないので、
ghettoVCBというESXiではマストアイテムを使ってバックアップを取る。
Github上で公開されており、VIBをインストールしてスクリプトを少し書き換えるだけで使用できる模様。
なお、仕組みとしてはスナップショットを使ってバックアップを作成するので、
VMをシャットダウンしなくても使えるとのこと。
ダウンロード
最新のVIBをhttps://github.com/lamw/ghettoVCB/releasesからダウンロード
ダウンロードしたVIBファイルを、データストアブラウザなどを使用してESXi上に保存する。
インストール
SSHでログインしてVIBをインストールする。
|
1 2 3 4 5 6 7 |
# esxcli software vib install -v /vmfs/volumes/[path]/vghetto-ghettoVCB.vib -f Installation Result Message: Operation finished successfully. Reboot Required: false VIBs Installed: virtuallyGhetto_bootbank_ghettoVCB_1.0.0-0.0.0 VIBs Removed: VIBs Skipped: |
リブートは必要ないとのこと。
実行ファイル修正
環境に合わせて実行ファイルの修正が必要。
実行ファイルは/opt配下に置かれるけど、
この場所では編集できないので任意のストレージ上にコピーする。
|
1 |
# cp /opt/ghettovcb/bin/ghettoVCB.sh /vmfs/volumes/[path]/ |
ghettoVCB.shの中でバックアップ先ディレクトリを指定しているので、
そこを実際の環境に合わせる。
|
1 2 3 |
VM_BACKUP_VOLUME=/vmfs/volumes/mini-local-datastore-hdd/backups ↓ VM_BACKUP_VOLUME=/vmfs/volumes/[path]/BACKUP |
バックアップ実行
まずはドライランして問題なく動くか確認する。
-mオプションでVMを指定できる。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# ./ghettoVCB.sh -m [VM名] -d dryrun # Author: William Lam # Created Date: 11/17/2008 # http://www.virtuallyghetto.com/ # https://github.com/lamw/ghettoVCB # http://communities.vmware.com/docs/DOC-8760 ################################################################## # User Definable Parameters ################################################################## LAST_MODIFIED_DATE=2020_10_10 VERSION=4 # directory that all VM backups should go (e.g. /vmfs/volumes/SAN_LUN1/mybackupdir) VM_BACKUP_VOLUME=/vmfs/volumes/mini-local-datastore-hdd/backups # 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 # Shutdown guestOS prior to running backups and power them back on afterwards # This feature assumes VMware Tools are installed, else they will not power down and loop forever # 1=on, 0 =off POWER_VM_DOWN_BEFORE_BACKUP=0 [root@ESXi:/vmfs/volumes/4eb399c5-e35f3894-75d8-00012e119b48/BACKUP] [root@ESXi:/vmfs/volumes/4eb399c5-e35f3894-75d8-00012e119b48/BACKUP] [root@ESXi:/vmfs/volumes/4eb399c5-e35f3894-75d8-00012e119b48/BACKUP] ./ghettoVCB.sh -m SERVER -d dryrun Logging output to "/tmp/ghettoVCB-2021-02-03_14-51-23-3793758.log" ... 2021-02-03 14:51:24 -- info: ============================== ghettoVCB LOG START ============================== 2021-02-03 14:51:24 -- info: CONFIG - VERSION = 2020_10_10_4 2021-02-03 14:51:24 -- info: CONFIG - GHETTOVCB_PID = 3793758 2021-02-03 14:51:24 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/VIOLA/BACKUP 2021-02-03 14:51:24 -- info: CONFIG - ENABLE_NON_PERSISTENT_NFS = 0 2021-02-03 14:51:24 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 3 2021-02-03 14:51:24 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2021-02-03_14-51-23 2021-02-03 14:51:24 -- info: CONFIG - DISK_BACKUP_FORMAT = thin 2021-02-03 14:51:24 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0 2021-02-03 14:51:24 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0 2021-02-03 14:51:24 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3 2021-02-03 14:51:24 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5 2021-02-03 14:51:24 -- info: CONFIG - SNAPSHOT_TIMEOUT = 15 2021-02-03 14:51:24 -- info: CONFIG - LOG_LEVEL = dryrun 2021-02-03 14:51:24 -- info: CONFIG - BACKUP_LOG_OUTPUT = /tmp/ghettoVCB-2021-02-03_14-51-23-3793758.log 2021-02-03 14:51:24 -- info: CONFIG - ENABLE_COMPRESSION = 0 2021-02-03 14:51:24 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0 2021-02-03 14:51:24 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0 2021-02-03 14:51:24 -- info: CONFIG - ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP = 0 2021-02-03 14:51:24 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all 2021-02-03 14:51:24 -- info: CONFIG - VM_SHUTDOWN_ORDER = 2021-02-03 14:51:24 -- info: CONFIG - VM_STARTUP_ORDER = 2021-02-03 14:51:24 -- info: CONFIG - RSYNC_LINK = 0 2021-02-03 14:51:24 -- info: CONFIG - BACKUP_FILES_CHMOD = 2021-02-03 14:51:24 -- info: CONFIG - EMAIL_LOG = 0 2021-02-03 14:51:24 -- info: CONFIG - ENABLE NFS IO HACK = 0 2021-02-03 14:51:24 -- dryrun: ############################################### 2021-02-03 14:51:24 -- dryrun: Virtual Machine: SERVER 2021-02-03 14:51:24 -- dryrun: VM_ID: 23 2021-02-03 14:51:24 -- dryrun: VMX_PATH: /vmfs/volumes/PS3OLD/SERVER/SERVER.vmx 2021-02-03 14:51:24 -- dryrun: VMX_DIR: /vmfs/volumes/PS3OLD/SERVER 2021-02-03 14:51:24 -- dryrun: VMX_CONF: SERVER/SERVER.vmx 2021-02-03 14:51:24 -- dryrun: VMFS_VOLUME: PS3OLD 2021-02-03 14:51:24 -- dryrun: VMDK(s): 2021-02-03 14:51:24 -- dryrun: SERVER.vmdk 200 GB 2021-02-03 14:51:24 -- dryrun: INDEPENDENT VMDK(s): 2021-02-03 14:51:24 -- dryrun: TOTAL_VM_SIZE_TO_BACKUP: 200 GB 2021-02-03 14:51:24 -- dryrun: ############################################### 2021-02-03 14:51:24 -- info: ###### Final status: OK, only a dryrun. ###### 2021-02-03 14:51:24 -- info: ============================== ghettoVCB LOG END ================================ |
ドライランオプションを外して実際に実行
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# ./ghettoVCB.sh -m SERVER Logging output to "/tmp/ghettoVCB-2021-02-03_14-56-47-3793923.log" ... 2021-02-03 14:56:48 -- info: ============================== ghettoVCB LOG START ============================== 2021-02-03 14:56:48 -- info: CONFIG - VERSION = 2020_10_10_4 2021-02-03 14:56:48 -- info: CONFIG - GHETTOVCB_PID = 3793923 2021-02-03 14:56:48 -- info: CONFIG - VM_BACKUP_VOLUME = /vmfs/volumes/VIOLA/BACKUP 2021-02-03 14:56:48 -- info: CONFIG - ENABLE_NON_PERSISTENT_NFS = 0 2021-02-03 14:56:48 -- info: CONFIG - VM_BACKUP_ROTATION_COUNT = 3 2021-02-03 14:56:48 -- info: CONFIG - VM_BACKUP_DIR_NAMING_CONVENTION = 2021-02-03_14-56-47 2021-02-03 14:56:48 -- info: CONFIG - DISK_BACKUP_FORMAT = thin 2021-02-03 14:56:48 -- info: CONFIG - POWER_VM_DOWN_BEFORE_BACKUP = 0 2021-02-03 14:56:48 -- info: CONFIG - ENABLE_HARD_POWER_OFF = 0 2021-02-03 14:56:48 -- info: CONFIG - ITER_TO_WAIT_SHUTDOWN = 3 2021-02-03 14:56:48 -- info: CONFIG - POWER_DOWN_TIMEOUT = 5 2021-02-03 14:56:48 -- info: CONFIG - SNAPSHOT_TIMEOUT = 15 2021-02-03 14:56:48 -- info: CONFIG - LOG_LEVEL = info 2021-02-03 14:56:48 -- info: CONFIG - BACKUP_LOG_OUTPUT = /tmp/ghettoVCB-2021-02-03_14-56-47-3793923.log 2021-02-03 14:56:48 -- info: CONFIG - ENABLE_COMPRESSION = 0 2021-02-03 14:56:48 -- info: CONFIG - VM_SNAPSHOT_MEMORY = 0 2021-02-03 14:56:48 -- info: CONFIG - VM_SNAPSHOT_QUIESCE = 0 2021-02-03 14:56:48 -- info: CONFIG - ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP = 0 2021-02-03 14:56:48 -- info: CONFIG - VMDK_FILES_TO_BACKUP = all 2021-02-03 14:56:48 -- info: CONFIG - VM_SHUTDOWN_ORDER = 2021-02-03 14:56:48 -- info: CONFIG - VM_STARTUP_ORDER = 2021-02-03 14:56:48 -- info: CONFIG - RSYNC_LINK = 0 2021-02-03 14:56:48 -- info: CONFIG - BACKUP_FILES_CHMOD = 2021-02-03 14:56:48 -- info: CONFIG - EMAIL_LOG = 0 2021-02-03 14:56:48 -- info: CONFIG - ENABLE NFS IO HACK = 0 2021-02-03 14:56:50 -- info: Initiate backup for SERVER 2021-02-03 14:56:50 -- info: Creating Snapshot "ghettoVCB-snapshot-2021-02-03" for SERVER Option --adaptertype is deprecated and hence will be ignored Destination disk format: VMFS thin-provisioned Cloning disk '/vmfs/volumes/PS3OLD/SERVER/SERVER.vmdk'... Clone: 94% done. 2021-02-03 15:20:41 -- info: Removing snapshot from SERVER ... 2021-02-03 15:20:41 -- info: Backup Duration: 23.85 Minutes 2021-02-03 15:20:41 -- info: Successfully completed backup for SERVER! 2021-02-03 15:20:43 -- info: ###### Final status: All VMs backed up OK! ###### 2021-02-03 15:20:43 -- info: ============================== ghettoVCB LOG END ================================ |
完了まで およそ30分。
スナップショット
単純な復元用途としてしか使えないけど、スナップショットを取る。
これはVMをシャットダウンしなくて良いので気楽にできる。
ただ、root FSクラッシュ時に対応できるのか不明。
巻き戻すので出来る気もするが・・・
ただ、物理的なHDD/SSDクラッシュには対応できないのは確実。
vSpere GUI上でスナップショットをとるVMを選択し、
アクション -> スナップショット -> スナップショットの作成
を実行すればよい。

OVFエクスポート
物理的にHDD/SSDがクラッシュしても大丈夫なように、
VMデータ毎、OVFエクスポートしてローカルPCなどにバックアップを取る。
この方法はVMのシャットダウンが必要。
VMシャットダウン後、
アクション -> エクスポート
を実行。
[VM名].ovf, [VM名].vmdk, [VM名].mfの3つのファイルがダウンロードされる。
vmdkファイルは仮想ディスクそのものなので容量は大きいけど、
実際の使用量分のみがダウンロードされる。
