WMwareESXiでvmdkファイルのバックアップしてみた

今回は、ホットバックアップの手順を確認してみる。
やり方としては、
　①スナップショット取得
　②vmdkファイルのコピー（バックアップ）
　③スナップショットの削除

通常、OS起動状態だとvmdkファイルが握られたままになるので、静止点でのバックアップが取得できない。
このため、スナップショット取得して一時的にvmdkファイルをはずした状態でバックアップをとる作戦。
この辺は、vmdkファイルがどうのこうのは仕様によるもの。
詳しくは下記。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2080293


## 1. VMware ESXi環境の構築
こちらのサイトを参考に環境構築。
http://vm.study234.com/archives/336

ちなみに今回は、CentOSではなくWindowsServer2012をゲストとしてインストール。

## 2. vmdkファイルのバックアップを取得
※今回の作業は、OSを起動した状態で行う。

### 2.1. 対象ゲストマシンの構成ファイルを確認
````コマンド
~# ls -lh [datastore]/[hostname] 
````


````ログ
~ # date;ls -lh /vmfs/volumes/datastore1/WindowsServer2012/
Sun Dec 13 00:45:37 UTC 2015
total 46254096
-rw-------    1 root     root        4.0G Dec 13 00:44 WindowsServer2012-0cccb183.vswp
-rw-------    1 root     root       40.0G Dec 13 00:45 WindowsServer2012-flat.vmdk
-rw-------    1 root     root        8.5K Dec 13 00:44 WindowsServer2012.nvram
-rw-------    1 root     root         478 Dec 13 00:44 WindowsServer2012.vmdk
-rw-r--r--    1 root     root           0 Dec 12 11:19 WindowsServer2012.vmsd
-rwxr-xr-x    1 root     root        2.8K Dec 13 00:44 WindowsServer2012.vmx
-rw-------    1 root     root           0 Dec 13 00:44 WindowsServer2012.vmx.lck
-rw-r--r--    1 root     root         272 Dec 12 11:19 WindowsServer2012.vmxf
-rwxr-xr-x    1 root     root        2.8K Dec 13 00:44 WindowsServer2012.vmx~
-rw-r--r--    1 root     root      294.8K Dec 12 16:44 vmware-1.log
-rw-r--r--    1 root     root      299.5K Dec 13 00:30 vmware-2.log
-rw-r--r--    1 root     root      195.7K Dec 13 00:32 vmware-3.log
-rw-r--r--    1 root     root      169.6K Dec 13 00:44 vmware.log
-rw-------    1 root     root      109.0M Dec 13 00:44 vmx-WindowsServer2012-214741379-1.vswp
~ # 
````

### 2.2. スナップショットを取得する

````コマンド
~# #VMIDを確認する
~# vim-cmd vmsvc/getallvms
~# vim-cmd vmsvc/snapshot.create [VMID] [Snapshotname] 
````

````ログ
~ # date;vim-cmd vmsvc/getallvms
Sun Dec 13 00:46:12 UTC 2015
Vmid         Name                                  File                                 Guest OS          Version   Annotation
2      WindowsServer2012   [datastore1] WindowsServer2012/WindowsServer2012.vmx   windows8Server64Guest   vmx-08              
~ # 
~ # date;vim-cmd vmsvc/snapshot.create 2 test
Sun Dec 13 00:47:42 UTC 2015
Create Snapshot:
~ # 
````

★Snapshotを取得すると、構成ディレクトリ内がこんな感じになる

````ログ
/vmfs/volumes/566b9be2-c949e6ff-4129-000c2968e986/WindowsServer2012 # ls -l
total 46256144
-rw-------    1 root     root         86016 Dec 13 00:47 WindowsServer2012-000001-delta.vmdk	★差分ファイル
-rw-------    1 root     root           337 Dec 13 00:47 WindowsServer2012-000001.vmdk	　　　　 ★差分ファイル
-rw-------    1 root     root     4294967296 Dec 13 00:44 WindowsServer2012-0cccb183.vswp
-rw-------    1 root     root         28412 Dec 13 00:47 WindowsServer2012-Snapshot1.vmsn
-rw-------    1 root     root     42949672960 Dec 13 00:47 WindowsServer2012-flat.vmdk
-rw-------    1 root     root          8684 Dec 13 00:48 WindowsServer2012.nvram
-rw-------    1 root     root           478 Dec 13 00:44 WindowsServer2012.vmdk
-rw-r--r--    1 root     root           386 Dec 13 00:47 WindowsServer2012.vmsd
-rwxr-xr-x    1 root     root          2888 Dec 13 00:47 WindowsServer2012.vmx
-rw-------    1 root     root             0 Dec 13 00:44 WindowsServer2012.vmx.lck
-rw-r--r--    1 root     root           272 Dec 12 11:19 WindowsServer2012.vmxf
-rwxr-xr-x    1 root     root          2881 Dec 13 00:47 WindowsServer2012.vmx~
-rw-r--r--    1 root     root        301871 Dec 12 16:44 vmware-1.log
-rw-r--r--    1 root     root        306646 Dec 13 00:30 vmware-2.log
-rw-r--r--    1 root     root        200381 Dec 13 00:32 vmware-3.log
-rw-r--r--    1 root     root        180054 Dec 13 00:49 vmware.log
-rw-------    1 root     root     114294784 Dec 13 00:44 vmx-WindowsServer2012-214741379-1.vswp
/vmfs/volumes/566b9be2-c949e6ff-4129-000c2968e986/WindowsServer2012 # 
````

### 2.3. vmdkファイルをコピー（バックアップ）
※vmdkファイル以外は適宜SCPコマンドやCPコマンドにて退避する

````コマンド
~# vmkfstools -i [datastore]/[hostname]/[hostname].vmdk -d monosparse [datastore]/tmp[hostname]_bkupYYYYMMDD.vmdk
````

````ログ
/vmfs/volumes/566b9be2-c949e6ff-4129-000c2968e986/WindowsServer2012 # date;vmkfstools -i /vmfs/volumes/datastore1/WindowsServer2012/WindowsServer2012.vmdk -d monosparse /vmfs/volumes/datastore1/tm
p/WindowsServer2012_bkup20151213.vmdk;date
Sun Dec 13 00:58:57 UTC 2015
Destination disk format: monolithic sparse disk
Cloning disk '/vmfs/volumes/datastore1/WindowsServer2012/WindowsServer2012.vmdk'...
Clone: 100% done.
Daceks-MBA:~ dacek$ 
````

★退避されたフィアルを確認してみるとこんな感じ

````ログ
~ # ls -l /vmfs/volumes/datastore1/tmp/
total 8166400
-rw-------    1 root     root     8361934848 Dec 13 01:09 WindowsServer2012_bkup20151213-s001.vmdk
-rw-------    1 root     root           532 Dec 13 01:09 WindowsServer2012_bkup20151213.vmdk
~ # 
````


### 2.4. スナップショットを削除

````コマンド
~# # VMDIの確認 
~# vim-cmd vmsvc/getallvms
~# # SnapshotIDの確認
~# vim-cmd vmsvc/snapshot.get [VMID]
~# # Snapshotの削除
~# vim-cmd vmsvc/snapshot.remove [VMID] [SnapshotID]
````

````ログ
~ # vim-cmd vmsvc/getallvms
Vmid         Name                                  File                                 Guest OS          Version   Annotation
2      WindowsServer2012   [datastore1] WindowsServer2012/WindowsServer2012.vmx   windows8Server64Guest   vmx-08              
~ # 

~ # vim-cmd vmsvc/snapshot.get 2
Get Snapshot:
|-ROOT
--Snapshot Name        : test
--Snapshot Id        : 1
--Snapshot Desciption  : 
--Snapshot Created On  : 12/13/2015 0:47:44
--Snapshot State       : powered off
~ # 

~ # vim-cmd vmsvc/snapshot.remove 2 1
Remove Snapshot:
~ # 
````

★Snapshotを削除すると、構成ディレクトリ内がこんな感じになる

````ログ
~ # ls -l /vmfs/volumes/datastore1/WindowsServer2012/
total 46254096
-rw-------    1 root     root     4294967296 Dec 13 00:44 WindowsServer2012-0cccb183.vswp
-rw-------    1 root     root     42949672960 Dec 13 02:31 WindowsServer2012-flat.vmdk
-rw-------    1 root     root          8684 Dec 13 02:31 WindowsServer2012.nvram
-rw-------    1 root     root           478 Dec 13 02:31 WindowsServer2012.vmdk
-rw-r--r--    1 root     root            43 Dec 13 02:31 WindowsServer2012.vmsd
-rwxr-xr-x    1 root     root          2881 Dec 13 02:31 WindowsServer2012.vmx
-rw-------    1 root     root             0 Dec 13 00:44 WindowsServer2012.vmx.lck
-rw-r--r--    1 root     root           272 Dec 12 11:19 WindowsServer2012.vmxf
-rwxr-xr-x    1 root     root          2888 Dec 13 02:31 WindowsServer2012.vmx~
-rw-r--r--    1 root     root        301871 Dec 12 16:44 vmware-1.log
-rw-r--r--    1 root     root        306646 Dec 13 00:30 vmware-2.log
-rw-r--r--    1 root     root        200381 Dec 13 00:32 vmware-3.log
-rw-r--r--    1 root     root        202120 Dec 13 01:02 vmware.log
-rw-------    1 root     root     114294784 Dec 13 00:44 vmx-WindowsServer2012-214741379-1.vswp
~ # 
````