仮想マシンの状態を保存する「チェックポイント」:Windows 10 Hyper-V入門(1/2 ページ)
Hyper-Vの「チェックポイント」機能を紹介する。チェックポイントを使うことで、システムに何らかの変更が加えられ、動作が不安定になっても、変更前の状態に簡単に戻すことができる。更新プログラムの不具合などを確認するような場合にも便利な機能だ。
変更前の状態に簡単に戻せるHyper-Vのチェックポイント
Windows Updateなどでシステムに大きな変更を加える場合、その前にチェックポイントを作成しておくことで、何らかの不具合が発生しても簡単に変更前の状態に戻すことができる。
Hyper-Vには、ゲストOSやその上のアプリケーションなどの稼働状態を保存できる「チェックポイント」と呼ばれる機能がある。このチェックポイントを使うことで、仮想マシンを設定変更前の状態に戻すといったことが可能になる。仮想マシン上で作業をしていて、元に戻すのが困難な変更がシステムに行われても、チェックポイントを指定しておけば、その時点にゲストOSの状態を戻せるため、最初から環境を構築し直さなくて済む。
「チェックポイント」の概要
Hyper-Vでは、チェックポイントを使うことで、仮想マシン側(ゲストOS)に対して行われた大きな変更を取り消すなどの処理が可能になる。物理マシンのバックアップとリストアと同等だが、処理時間は短く、瞬時に過去の状態に戻ることができる。
チェックポイントの操作は、仮想マシンを起動しなくても、Hyper-Vマネージャーから可能なので、ゲストOSが起動しなくなるような問題が発生しても、元に戻すことができる。こうしたメリットがあるため、Hyper-Vを使うなら、積極的に使いたい機能だ。
本稿では、Windows 10上でのHyper-Vを対象としており、動作確認や操作方法もWindows 10上のHyper-Vで行っている。場合によっては、本稿で説明する操作は、Windows Serverでは致命的な問題を発生させてしまう可能性もあるので注意していただきたい。なお、対象バージョンは、Windows 10 May 2020 Update(バージョン2004)である。
結論からいうと、Windows 10でHyper-Vを使う場合、チェックポイントの設定はデフォルトのままでよい。Windows Updateなどの大きな変更がシステムに加えられたり、アプリケーションをインストール、アップデートしたりしたような場合、その時点でチェックポイントを作っておき、次の大きな変更の後、その前の状態に戻せるように備えておく。
チェックポイントの作成は必須ではなく、状況をみて各自で判断して構わない。ただし、1つの仮想マシンに作成することが可能なチェックポイントの数には上限があることなどから、不要になったチェックポイントは削除して整理すべきだ。チェックポイントとして記録した状態を長く維持したいなら、エクスポート機能を使って、仮想マシン自体をコピーしておく。
チェックポイントとは
現在のHyper-Vでは、「チェックポイント」と呼ばれるが、過去のバージョンでは、「スナップショット」と呼ばれていたこともあった。このため、「スナップショット」の方に聞き覚えがある方もいるだろう。基本的には名前が変わっただけで、その基本的な機能には違いはなく、作成したチェックポイント(スナップショット)を使って、その時点のゲストOSの状態に仮想マシンを戻すことができる機能だ。
ただし、現在のWindows 10に搭載されているチェックポイントは、Windows 8やWindows Server 2012の頃に搭載されていたスナップショットに比べると機能が強化されている。
Windows 8では、それまで搭載されていたVirtual PCが廃止され、Windows Serverに搭載されていたHyper-Vが搭載されるようになった。しかし、当初のHyper-Vは、サーバ用のものがほとんどそのまま搭載されており、クライアントOSで利用するには少々面倒だった。Windows 10になり、Hyper-VもクライアントOSで使うのに便利な機能が搭載されるようになった。Windows 10 Hyper-V入門「仮想スイッチの種別と用途」で解説したHyper-Vの仮想スイッチの「Default Switch」もそういう機能の1つである。
チェックポイントとは、仮想マシンの「セーブ」機能、いわば「バックアップ」機能のようなものだ。具体的には、チェックポイントが作られると、仮想ハードディスクファイル(以下「VHDX」)への書き込みは、差分ディスクファイル(同「AVHDX」)側に行われるようになり、仮想マシンを実現しているVHDXには書き込みが行われなくなる。
仮想ハードディスクと差分ディスクファイル
チェックポイントを実現しているのは、仮想ハードディスクファイル(VHDX)と差分ディスクファイル(AVHDX)である。ファイルシステムへの変更を全て差分ディスクファイルに記録することで、仮想マシンに対する変更をいつでも取り消すことができる。
チェックポイントを作成するとファイルのアクセス効率が落ちる点に注意
ゲストOSがファイルシステムをアクセスする場合、ハイパーバイザー側では、VHDXとAVHDXの両方を見て、AVHDX側に新しいデータがあれば、そちらを返すようになる。このため、チェックポイントを作ると、AVHDXをアクセスする分、ファイルのアクセス効率が落ちることになる。
チェックポイントを作らないとその時点に戻ることはできない
注意するのはAVHDXや、仮想マシンのメモリやデバイスなどの状態を記録している「仮想マシン状態記録ファイル(以下、状態ファイル)」などは、チェックポイントで作成されるものの、チェックポイントの機能では、これらを直接制御できない点だ。最後のチェックポイント以降にも差分ディスクファイルや状態ファイルが作られ、仮想マシンの変更を記録しているものの、チェックポイントを作らない限り、最後のAVHDXが保持している仮想マシンの状態を使うことはできない。
チェックポイントに戻る処理を「チェックポイントの適用」と呼ぶ
もし、ゲストOSに重大な問題が起こり、今行った変更を取り消したい場合、変更前に作成したチェックポイントを指定して、その時点に戻ればよい。これをHyper-Vではチェックポイントの「適用」と呼ぶ。処理上は、チェックポイントに関連するAVHDXを使わないようにするだけだ。つまり、チェックポイントを作れば、VHDXは「無傷」で残り、AVHDXの使用を止めてしまえば、仮想マシンは元の状態に戻るわけだ。これがチェックポイントの基本的な原理である。
チェックポイントの状態に戻る
チェックポイントが作られると、その時点からAVHDXに変更が記録され、その時点のメモリ状態などを状態記録ファイルに保存するため、チェックポイントの状態に一瞬で戻ることができる。
では、既にチェックポイントがあるときに、さらにもう1つチェックポイントを作るとどうなるか? このときには、もう1つAVHDXが作られ、以後の書き込みはこちらのAVHDXに対して行われるようになる。このようにチェックポイントが作られるたびにAVHDXが新規に作られ、書き込み先が切り替わっていく。
チェックポイントは、削除することもできる。その場合、「統合処理」が行われる。チェックポイントは消えても、そのときの仮想マシンの状態が消えるわけではなく、次の差分ディスクファイルとの結合が行われる。全てのチェックポイントが消えるとき、AVHDXとVHDXの統合が行われ、VHDXが更新される。
自動チェックポイントの削除
仮想マシンの起動直前の状態を記憶する自動チェックポイントは、削除されるとVHDXとAVHDXを統合し、仮想マシンの状態を更新する。この処理は、仮想マシンがシャットダウンするときに自動的に行われるが、手動で作成したチェックポイントが存在する間は、自動削除は行われなくなる。
チェックポイントの種類
Hyper-Vのチェックポイントには、大きく2種類ある。1つは「標準チェッポイント(Standard Checkpoints)」、もう1つは「運用チェックポイント(Production Checkpoints)」である。Hyper-Vマネージャーの設定から[チェックポイント]を選択して表示されるページで、どちらを使うかを選択できる。Windows 10でHyper-Vを利用する場合には、標準チェックポイントだけを使えばよい。
標準チェックポイントとは
標準チェックポイントは、実行中の状態やインストールされたアプリケーションの状態を含めたチェックポイントで、本当に起動中のゲストOSの「写真」を撮ったように、プログラムのウィンドウが開いたままのデスクトップの状態まで復元できる。
運用チェックポイントとは
これに対して、運用チェックポイントは、ゲストOSの状態だけを記憶するものだ。ただし、そのためには、ゲストOS側に運用チェックポイントに適合したバックアップ機能が必要になる。
いまのところWindows(「Volume Shadow Copy」を使う)とLinux(「fsfreeze」を使う)が運用チェックポイントに適合している。運用チェックポイントは、アプリケーションの起動状態を記憶せず、適用すると、再起動直後のような状態となる。どちらかというとWindows Serverなどで使う場合を想定した機能だ。
現在のWindows 10のHyper-Vでは、標準チェックポイントがデフォルトで選択されている。ただし、過去のWindows 10では、Windows Serverからの流れで運用チェックポイントがデフォルトだったバージョンもあったため、設定は確認した方がいいだろう。
自動チェックポイントとは
上記とは別に「自動チェックポイント」という機能がある。これは、仮想マシンの起動時に自動的にチェックポイントを作る機能だ(正確には起動直前の状態にチェックポイントが置かれる)。
チェックポイントはその性質上、何かの変更の「前」に作っておく必要がある。自動チェックポイントは、仮想マシンを起動するときに自動的に作られ、変更は全てAVHDXに記憶されるため、VHDXは、前回シャットダウンしたときの状態が維持される。
自動的に最初のチェックポイントを作ってくれるので、ゲストOSの設定を変更した後、「チェックポイントを作っておけばよかった」となるのを防いでくれるわけだ。この自動チェックポイントは、Windows 10のHyper-Vでは、標準で「オン」になっているため、設定を行う必要はないが、一応確認しておくべきだろう。
自動チェックポイントは、仮想マシンをシャットダウンしたときに、自動削除されるとともに、VHDXとAVHDXの統合が行われ、実行中の変更が反映される。ただし、手動でチェックポイントが作られると、シャットダウン時の自動統合は行われなくなり、ユーザーがチェックポイントの管理を行わねばならなくなる。
Copyright© Digital Advantage Corp. All Rights Reserved.