仮想マシンのソフトウェア更新やセキュリティパッチ適用後、仮想マシンが正常動作せず、元の状態に切り戻しをしたい場合があります。このような場合、スナップショットを作成することで、変更前の状態にロールバックすることができます。
この記事では、スナップショットの概要について、記事にします。
スナップショットの仕組み
仮想マシン通常実行時
仮想マシンの実体は、仮想ディスク(VMDK)ファイルです。仮想ディスクについては、以下の記事を参考にしてください。
>> 参考記事 : 図解 仮想ストレージ(仮想ディスク、データストア)の概要仮想マシンが起動している場合、実行データはメモリに展開され、メモリと仮想ディスク間でデータを読み書きすることで、仮想マシンが実行されます。

スナップショット実行時
スナップショット実行時は、仮想ディスク、およびメモリの状態を保存する必要があります。まず、メモリの状態は、メモリファイル(vmsn)へ保存されます。

そして、仮想ディスクの状態を保存するため、仮想ディスクを読み取り専用にします。

では、今後、メモリから読み書きするデータはどうなるのでしょうか?
それは、差分ディスクファイル(delta)で読み書きされます。差分ディスクファイル(delta)は名前のとおり、仮想ディスク(VMDK)の差分データが保存されるファイルです。

仮想ディスクは読み書き専用にすることで、状態を保存(静止点を取得とも言われます)し、メモリの状態は、メモリファイルに保存されます。
スナップショットの復元
スナップショット取得後、なんらか仮想マシンに変更(パッチ適用など)を実行したが、正常に動作せず、元の状態に戻すものとします。この場合は、まず、メモリの状態をメモリファイルから復元します。

次に、仮想ディスクを読み取り専用から読み書きできるように変更します。

以上で、メモリと仮想ディスクをスナップショット取得前の状態に復元することができます。
スナップショットの統合
スナップショットを取得後、そのまま放置し、仮想マシンのデータを読み書きをすると、差分ディスクファイルがだんだんと肥大化してきます。

メモリからのデータ読み取りが、仮想ディスクや差分ディスクファイルに分散されることもあり、パフォーマンスへ影響がでる可能性もあります。
そのため、スナップショットが不要になると、差分ディスクファイルを仮想ディスクに統合する必要があります。
統合を実行すると、内部動作として、差分ディスクファイルの差分データを仮想ディスクにマージし、仮想ディスクを読み取り専用から読み書き可に変更します。

統合する際は、一時的にデータストア内の容量を消費しますので、データストアの容量に余裕がある状態での統合をお勧めします。
このように一時的な仮想マシンの状態を保存し、万一の復元の際は、スナップショットが便利です。上の仕組みのとおり、仮想ディスクの静止点を取り、その後の差分データが別ファイルで保存されるため、仮想ディスクのバックアップを取得しているわけではありません。あくまで、一時的な状態保存と復元目的に使用してください。
また、メモリ状態をメモリファイルに保存することから、起動中の仮想マシンのスナップショットも取得可能です。ただし、すべての仮想マシンが起動中のスナップショットを取得できるとは限らず、可能であれば、仮想マシンが停止された状態での、スナップショット取得をお勧めします。
コメント