web-dev-qa-db-ja.com

仮想マシンのスナップショットがどのように機能するかの詳細な説明

仮想マシンのスナップショットがどのように機能するかを完全に理解したいと思います。私はこのテーマを調査しましたが、スナップショットが実際にどのように機能するかについての「高レベル」の概要を見つけることができないようです。私の質問は次のとおりです。

シナリオ例:Ubuntu12.04ホストを実行しているKVM Ubuntuゲストを使用しています。仮想マシンはRAW形式です。virshコマンドを使用してスナップショットを作成します。

  1. 結果のファイル(スナップショット)は起動可能ですか?それとも、ベースイメージを使用可能にする必要があるデータを変更するだけですか?
  2. どのようにして前の状態にロールバックしますか?
  3. スナップショットチェーンが長いと、仮想マシンのパフォーマンスが低下しますか?もしそうなら、なぜですか?
  4. スナップショットをどのように管理/整理しますか?
2
sardean
  • スナップショットは一連のイメージの一部であり、すべてのスナップショットの可用性が必要です。
  • スナップショットから起動できますが、以前のすべてのイメージもそのままにしておく必要があります
  • スナップショットチェーンがあると、パフォーマンスが低下します。高負荷のサーバーVMは、スナップショットで実行されるべきではありません。
  • スナップショットを管理するには、チェーンをできるだけ短く/フラットに保つようにします。 man qemu-img技術的な詳細
  • スナップショットを撮ると、新しい空の画像が作成されます。画像からブロックを読み取るとき、実際にはチェーン内の前のスナップショットへのポインターをヒットします(データのブロックをヒットするまでチェーンを下っていきます)。スナップショットに書き込むと、ポインターは実際のデータブロックに置き換えられ、スナップショットイメージはそのブロックによって大きくなります。

理解を深めるには、開始 ここ

7
dyasny