VMware 複数のスナップショットを個別に削除する場合の順番について

VMware環境でよく使用される機能の一つが仮想マシンのスナップショットではないかと思います。設定変更などで何か問題があった時に、すぐに戻せるので、かなり便利な機能である反面、使い方を間違えると問題を引き起こす可能性もあるので、使い方には注意が必要です。


例えば、以下は、スナップショットに関するVMwareの見解ですが、まず、勘違いされやすいですが、スナップショットはバックアップではありません。その為、長期間のスナップショットの保持は推奨されていません。


可能な限り、短期間で削除する事が望ましいです。

●スナップショットはバックアップではありません。 スナップショット ファイルは元の仮想ディスクの更新ログのみですので、直接のバックアップ プロセスとして頼らないください。仮想マシンは元の 「vmdk」 ディスク ファイル上ではなく、最新のスナップショット上で実行しています。

●チェーン内に最高で 32 個をサポートしています。但し、チェーン内に 2、3 個のスナップショットで使用することが VMware の推奨です。

●スナップショット実体を 24 ~ 72 時間以上使用しないでください。
これによってスナップショットが大きくなることを防ぎますので、スナップショットを削除するとき、または元の仮想マシンのディスクにコミットするときの問題を防げます。

●スナップショットを取得して、仮想マシンが変更され、そして仮想マシンの状況を確認してからすぐにスナップショットの削除およびコミットを実施してください。
 
●特にメール サーバやデータベース サーバのような高トランザクション数の仮想マシンの場合、スナップショットの使用を頻繁に管理してください。

●スナップショットのサイズが急に大きくなって、データストアがいっぱいになることがあります。現行プロセスの正常稼動を確認してからすぐに、仮想マシンのスナップショットをコミットしてください。



そして、以前も経験した事があるのですが、スナップショットの差分が大きくなると、削除処理に失敗する事があります。例えば、仮想マシンを構築した初期の頃にスナップショットを取得し、その後、データサイズが大きくなってからスナップショットを取得すると当然のことながら、差分データが肥大していきます。


そして、差分データが肥大するとスナップショットの削除に失敗する可能性があります。以前は、すべて削除するというオペレーションをした際に、削除処理に失敗しました。それは、以下のような理由も考えられます。

>>VMware ESXi および ESX の仮想マシン スナップショットについて (1033239)


このKBはスナップショットを複数作成した場合に、その削除する順番について考える場合に参考になります。

・親と子の仮想ディスクの依存関係が壊れたために仮想マシンが応答していない、または仮想マシンを起動できない。
・空き領域がないデータストアに redo ログが存在するために仮想マシンが応答していない、または仮想マシンを起動できない。
・メモリ スナップショット オプションを指定すると、スナップショットの作成に時間がかかる。
スナップショットの削除操作が vSphere または VMware Infrastructure (VI) Client でタイムアウトになる。
・スナップショット操作中に静止している間、バックアップが失敗する。

 

ディスク チェーンの説明が図がついて分かりやすいのですが、一般的に、スナップショットを初めて作成する際に、最初の子ディスクは親ディスクから作成されるとあります。


続いて、その後作成したスナップショットに新しい子ディスクがチェーンの最後の子ディスクから作成され、スナップショット チェーンに複数の分岐があると、この関係は変わる可能性があります。



そして、この子ディスクを削除する場合、個別にデータ領域が必要になる場合があります。それは、親と直接つながっていない子ディスクの削除、もしくは「すべて削除」を選択した場合は、個別にテータ領域が必要になり、親ディスクの最初の子ディスクであれば、個別にデータ領域は不要になります。


その為、削除処理において個別にデータ領域が不要になる順番は、親ディスクから近いスナップショットを削除する方法という事になります。


スナップショットは便利な機能でありますが、トラブルの要素の一つになる為、使い方には注意が必要になりますね。