スナップショットは、Hyper-Vではチェックポイントとして知られており、新しいソフトウェアを展開したり、アップデートをインストールする前に、VMの最後に正常に実行されていた状態を保持する必要がある場合に便利です。ただし、スナップショットを削除する際は注意が必要です。そうしないと、重要なデータが失われる可能性があります。
この投稿では、Hyper-Vのチェックポイントのメカニズムについて説明します。これらのチェックポイントをいつ使用するか、Hyper-VマネージャーインターフェースとPowerShellを使用してスナップショットを削除する方法を示します。
Hyper-Vチェックポイントのメカニズム
では、Hyper-Vチェックポイントの動作について詳しく説明する前に、スナップショットとチェックポイントという用語に関連する混乱を解消しましょう。
スナップショットとチェックポイントは、特定の時点でVMの状態を保存する能力を表しています。将来、VMに問題が発生した場合にこの状態に戻すことができます。Microsoftは、VMの状態を保存する機能をスナップショットと呼びますが、Windows Server 2012 R2以前のリリースでは、この機能をチェックポイントと呼びます。その後のリリースでは、Microsoftがチェックポイントという用語を使用しています。また、スナップショットはVMware環境で使用される用語です。この投稿では、カバーされているメカニズムと手順がスナップショットとチェックポイントの両方に適用されるため、これらの用語を交換可能に使用しています。では、チェックポイント/スナップショットはどのように機能するのでしょうか?
Hyper-Vチェックポイントの保存方法
Hyper-V VMデータは.vhdxファイルの形式で保存されます。チェックポイントが作成されると、.vhdxファイルは読み取り専用ファイルになります。VMに適用された新しい変更は、差分仮想ハードディスクに保存されます。この差分仮想ハードディスクは、.vhdxファイルを含むフォルダー内に.avhdxファイルの形式で保存されます。
チェックポイントのチェーンを作成できます。各チェックポイントは特定の時点でのVMの状態を表します。各チェックポイントは.avhdxファイルで表されます。
Hyper-Vチェックポイントのメカニズムは、ストレージの利用を効率的に行います。ただし、仮想ディスクの読み取り操作のパフォーマンスは著しく低下します。その理由は、ファイルの読み取りにはVMの.vhdxファイルに到達するまで、すべてのチェックポイント(.avhdxファイル)を確認する必要があるためです。
以下のスクリーンショットでは、VMの2つのHyper-Vチェックポイントを作成した後の1つの親.vhdx仮想ディスクと2つの.avhdxディスクを見ることができます。
このメカニズムによれば、.avhdxファイルを削除してもチェックポイントは削除されません。代わりに、この種の削除はチェーンを切断し、データの損失を引き起こします。
データを失うことなくチェックポイントを削除するには、.avhdxファイルをチェーン内の別の(親) .avhdxファイル(または.vhdxファイル)とマージする必要があります。このチェックポイントがVMの唯一のチェックポイントである場合、.avhdxファイルは.vhdxファイルとマージされ、.vhdxファイルは再度書き込み可能になります。
次のセクションでは、データを失うことなく、Hyper-V マネージャー インターフェイスからスナップショット(チェックポイント)を削除する方法を示します。
Hyper-V マネージャー インターフェイスを使用してスナップショットを削除する
Hyper-V マネージャーは、Hyper-V ホストや VM を管理するための無料の GUI ツールです。VM をプロビジョニングしたり、RAM を割り当てたり、スナップショットを作成したり削除したりするために使用できます。
Hyper-V スナップショット(チェックポイント)を Hyper-V マネージャー インターフェイスから削除するには:
- 左ペインからホストを選択します。
- 仮想マシンペインから VM を選択します。
- チェックポイント ペインから削除するチェックポイントを右クリックします。 チェックポイントを削除…
以下のスクリーンショットでは、2番目の Hyper-V チェックポイントを削除した後の親 .vhdx 仮想ディスクと .avhdx スナップショット ファイルが表示されます。
PowerShell を使用してスナップショットを削除する
Hyper-V VM に対する一括アクションを実行するには、Windows PowerShell を使用する方が Hyper-V マネージャー GUI よりも効率的です。複数のスナップショットを一度に削除するためにコマンドを使用できます。また、GUI に削除オプションがないチェックポイントを削除するなど、一部のアクションは PowerShell を使用しないと実行できません。
A checkpoint that cannot be deleted from the Hyper-V Manager is called a lingering checkpoint. Lingering checkpoints happen when a VM backup job fails.
VMのバックアップ作业がバックアップソリューションを使用して始まると、VMは只読モードになります。VMユーザーによる新しいデータは、復旧チェックポイントと呼ばれる特殊なタイプのチェックポイントに保存されます。バックアップ作业が正常に完了すると、復旧チェックポイントの.avhdxファイルがVMの.vhdxファイルと結合され、自動的にチェックポイントが削除されます。しかし、バックアップ作业が失敗すると、復旧チェックポイントは自動的に削除されず、残存チェックポイントとして残ります。
PowerShellを使用してチェックポイントを削除するには:
- 管理者权限でWindows PowerShell ISEを開いてください。
- Get-VMSnapshotコマンドを使用してチェックポイントの正確な名前を取得します。要求されたときにVMNameを提供してください。
- 以下のコマンドを実行します。
Get-VM -Name <VMName> | Get-VMSnapShot -Name <CheckpointName> | Remove-VMSnapshot
- 以下のコマンドを使用してチェックポイントの削除が成功したことを確認します。
Get-VMSnapshot
最終的な考え方
チェックポイントの作成は、テストと验收環境の作成のためには良い慣習です。しかし、生产環境ではチェックポイントを保持することは推奨されません。チェックポイントは、Hyper-Vの読み取り操作に負影響を及ぼす。
ディスクから直接チェックポイントのファイルを削除すると、データが失われる可能性があります。チェックポイントは、Hyper-Vマネージャーから削除する必要があります。Hyper-VマネージャーのGUIに削除オプションがない場合は、PowerShellを使用して削除することもできます。
データとアプリケーションの保護のためにバックアップとレプリケーションソリューションを採用することが重要です。
Source:
https://www.nakivo.com/blog/how-to-delete-hyper-v-snapshots/