スナップショットについて
スナップショットとは?
スナップショットは、仮想マシンインスタンスの状態を特定の時点で保持する機能です。スナップショットには、仮想マシンの設定情報とデータが保存されます。
仮想マシンインスタンスの状態保全だけでなく、スナップショットからは、以下のことが可能です。
- スナップショットから仮想マシンを作成する(クローン)
- スナップショット取得時点の仮想マシンを、OVA/XVAエクスポート(ローカルなどにデータダウンロード可能)する
- スナップショット作成時の状態に仮想マシンを戻す(ロールバック)
またスナップショットは、現時点の状態を保全したにすぎず、「バックアップ」ではありません。バックアップや、レプリカが必要になる場合は、バックアップストレージの用意が必要です。
スナップショットの種類
HRPC6Gf Xen版は、次のタイプの仮想マシンのスナップショットに対応しています。
- New Snapshot:ディスク(ストレージ)
- New Snapshot with memory:ディスク(ストレージ)およびメモリ(RAM)
New Snapshot
ディスク(ストレージ)のスナップショットを作成します。
このスナップショットへのロールバック、あるいはクローン、エクスポートした仮想マシンは、「この時点で強制リセット」された状態から起動するようになります。
xentoolsがインストールされていると、最低限、仮想OSの中でディスクの内容をフラッシュするようになります。そうでない場合は、syncコマンド(linux等の場合)を利用し、保全する方が良いでしょう。
New Snapshot with memory
ディスク(ストレージ)とメモリ(RAM)のスナップショットを作成します。
このスナップショットはメモリを含むため、スナップショットにロールバックすると、メモリの内容まで復元されるため、サスペンドからレジュームしたような動きをします。
しかし、メモリを含んだスナップショットの作成は、全てのメモリ内容をディスクに書き出すため、その間、仮想マシンが一時停止し、メモリイメージの取得完了まで使用できない状態になります。
スナップショットの保持
スナップショットの最大値は、システムが自動的に作る物も含め、1仮想マシン当たり最大30です。
スナップショットの作成方法
HRPC6Gf Xen版では、次の方法でスナップショットを作成します。
- スナップショットの手動作成:ユーザーによる手動作成
- 定期スナップショットの自動作成:ローリングスナップショットによる定期スナップショットの自動作成
- レプリケーションによる自動作成: スナップショットレプリケーション処理による自動作成
Xenでのスナップショットの構造について
Xenのスナップショットは、バッキングストアを利用したスナップショット方式です。そのため、スナップショットを取得した時点で既存の仮想ディスクイメージを読み取り専用で確保し、その後の差分をバッキングストア(差分ディスク)に保存します。この結果、スナップショットの数だけ仮想ディスクイメージが増えていきます。
差分情報が増えていく程、読み込み処理のとき「差分n→差分n-1→・・・→差分1→元データ」と順に参照するため、読み込みが遅くなります。 また、不要なスナップショットをそのままにしておくと、この差分のディスクイメージがどんどん増えていき、ストレージの空き容量を圧迫します。
そのため、スナップショットの合計値は決められており、スナップショットの最大値は、システムが利用するものも含め、30個までとなっています。 また、このような形で元データは共有されているため、スナップショットはバックアップではなく、仮想マシンインスタンス内の論理的データ保護に留まり、ハイパバイザ層のディスクの破壊に耐えることはできません。そのため、バックアップは別途取得する必要があります。
スナップショットの削除時は、元のディスクと差分ディスクを結合する処理が走ります。
実際には、差分ディスクであるバッキングストア同士のマージ処理もあり、この場合、結合処理中の不慮の事故でデータが絶対に失われないように、ストレージには別途、2つの差分を結合したデータイメージを作り、最後に不要になった差分イメージを削除します。そのため、その領域分の空き領域も必要となります。目安として消すスナップショットのバッキングストアと同じ程度は必要です。
削除のための差分ディスクの結合処理は遅延して行われます。そのためスナップショットが消えて見えていても、その結合処理が終わるまでの間、一時的な領域を使う為、常に空き容量を確保しておく必要があります。スナップショットの削除のメカニズムについては、サポート情報/マニュアル/HRPC - Xen Orchestra/仮想マシンの管理/スナップショットの削除を参照してください。
スナップショットが一定量あるとき、ライブマイグレーションが動作しません。そのため、不要になったら削除をすることを心がけてください。