2015年3月29日日曜日

仮想マシンのスナップショットのオプション

VMwareの仮想マシンスナップショットだが、オプションが2つある。これらの違いを調べてみた。というかほとんど参考URLのKBに記載されているので、それの補足的な情報になる。



パワーオフ仮想マシンのスナップショット

後述するが、上記2つのオプションは、パワーオン状態でなければ実施できない。逆にパワーオフ状態の仮想マシンの場合は、ディスクのスナップショットが取得されるだけであり、ファイル名としては以下が作成される。

◆vSphere Clientのデータストアブラウザで確認した場合
<VM名>.vmdk   ←元の仮想ディスク
<VM名>-000001.vmdk   ←差分ファイル
<VM名>.vmsd   ←スナップショットのメタデータ
<VM名>-Snapshot<番号>.vmsn   ←メモリのスナップショット情報(28KB程度と非常に小さい)

データストアブラウザで見えるファイル名と実体はのファイル名は実は異なる。実体のファイル名は以下の通りになる。以降は実体のファイル名で記載する。

◆ESXで直接確認した場合
<VM名>-flat.vmdk   ←元の仮想ディスク
<VM名>-000001-delta.vmdk   ←差分ファイル
<VM名>.vmsd   ←スナップショットのメタデータ
<VM名>-Snapshot<番号>.vmsn   ←メモリのスナップショット(28KB程度と非常に小さい)

仮想マシンのメモリのスナップショット

その名の通り、仮想マシンのディスクだけではなく、メモリ情報もスナップショットを取る機能。メモリ情報なので、パワーオフの仮想マシンでは取得不可(オプションを選択できない)。

メモリ情報も含めて保存されているので、この機能を用いたスナップショットを復元した場合は、仮想マシンはパワーオンの状態で戻る(逆に言えばこのオプションを有効にしない場合のスナップショットの復元後はパワーオフで戻る)。

この処理はメモリのスナップショットを取得するため、割り当てメモリが大きい程時間を要し、ストレージのパフォーマンスにもよると思うが、メモリ6Gの仮想マシンで5分程度掛かった。

ファイルとしては以下ファイルが大きくなるのが違い。

<VM名>-Snapshot<番号>.vmsn   ←メモリのスナップショット(メモリと同程度(6GB))


静止ゲストファイルシステム(VMware Toolsのインストールが必要)

VMware Toolsが仮想マシンのOSのディスク静止点を確保してスナップショットを取得する機能。VMware Toolsの起動が条件となるため、パワーオフの仮想マシンでは取得不可(オプションを選択できない)。

この機能は、VMware ToolsがWindowsのVSS(ボリュームシャドウコピーサービス)やSyncドライバなる機能と連携して、ファイルシステムレベルでのデータの静止点を確保してからバックアップを取得するという機能となる。実際にWindowsの仮想マシンで本オプションを有効にしてスナップショットを取得すると、仮想マシンのアプリケーションイベントログに以下のようなVSS関連のログが出力されていた。

 ソース:ESENT
 説明:lsass (672) シャドウ コピー インスタンス 2 を開始しています。
    これは、完全シャドウ コピーとなります。

メモリのスナップショットに比べれば時間は短く、20秒程度でスナップショット取得は完了した。

データストア上のファイルとしては以下ファイルが生成される。VSSのマニフェストファイルということで、VSSのメタデータが内容に含まれるらしい。

<VM名>-vss_manifests<番号>.zip

PowerCLIでスナップショットを取得する

スナップショット取得はNew-Snapshotコマンドレットを使う。メモリのスナップショット取得は"-Memory"、静止ゲストファイルシステムの取得は"-Quiesce"(※静止という意味)で指定する。両方取りたければ以下の通り実行する。$vmsnapに結果を代入している理由は、後で消したりする操作を簡単にするため。

$vmsnap = New-Snapshot -VM "VM_Name" -Name "Temporary Snapshot" -Memory:$true -Quiesce:$true

蛇足だが、スナップショットを削除する場合は以下を実行。削除処理は確認プロンプトが表示されるので、"-Confirm:$false"で表示させないようにする。

Remove-Snapshot -Snapshot $vmsnap -Confirm:$false

参考URL

VMware ESX の仮想マシンのスナップショットについて (1033239)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1033239

vSphere PowerCLI Reference : New-Snapshot
https://www.vmware.com/support/developer/PowerCLI/PowerCLI51/html/New-Snapshot.html