14.5.18. ライブブロックコピーを使用したディスクイメージ管理
注記
ライブブロックコピーは、Red Hat EnterpriseLinux で提供されているバージョンの KVM ではサポートされていない機能です。ライブブロックコピーは、RedHat Virtualization に付属しているバージョンの KVM で利用できます。この機能をサポートするには、このバージョンの KVM が物理ホストマシンで実行されている必要があります。詳細については、Red Hat の担当者にお問い合わせください。
ライブブロックコピーを使用すると、使用中のゲストディスクイメージを宛先イメージにコピーし、ゲストの実行中にゲストディスクイメージを宛先ゲストイメージに切り替えることができます。ライブマイグレーションがホストのメモリーとレジストリーの状態を移動する間、ゲストは共有ストレージに保持されます。ライブブロックコピーを使用すると、ゲストの実行中にゲストコンテンツ全体をその場で別のホストに移動できます。ライブブロックコピーは、永続的な共有ストレージを必要とせずにライブ移行に使用することもできます。この方法では、移行後、ゲストの実行中にディスクイメージが移行先ホストにコピーされます。
ライブブロックコピーは、次のアプリケーションで特に役立ちます。
- ゲストイメージをローカルストレージから中央の場所に移動する
- メンテナーンスが必要な場合、パフォーマンスを損なうことなく、ゲストを別の場所に移動できます
- 速度と効率のためにゲストイメージの管理を可能にします
- ゲストをシャットダウンせずにイメージ形式の変換を行うことができます
例14.1 ライブブロックコピーを使用した例
この例は、ライブブロックコピーが実行されたときに何が起こるかを示しています。この例には、ソースと宛先の間で共有されるバッキングファイル (ベース) があります。また、ソースにのみ存在し、コピーする必要がある 2 つのオーバーレイ (sn1 と sn2) があります。
- 最初のバッキングファイルチェーンは次のようになります。base ← sn1 ← sn2コンポーネントは以下のとおりです。
- ベース - 元のディスクイメージ
- sn1 - ベースディスクイメージから取得された最初のスナップショット
- sn2 - 最新のスナップショット
- アクティブ - ディスクのコピー
- イメージのコピーが sn2 の上に新しいイメージとして作成されると、結果は次のようになります。base ← sn1 ← sn2 ← active
- この時点で、読み取り権限はすべて正しい順序であり、自動的に設定されます。書き込み権限が適切に設定されていることを確認するために、ミラーメカニズムはすべての書き込みを sn2 とアクティブの両方にリダイレクトし、sn2 とアクティブがいつでも同じように読み取るようにします (このミラーメカニズムは、ライブブロックコピーとイメージストリーミングの本質的な違いです)。
- すべてのディスククラスターをループするバックグラウンドタスクが実行されます。クラスターごとに、次のケースとアクションが考えられます。
- クラスターはすでにアクティブに割り当てられており、何もする必要はありません。
- bdrv_is_allocated() を使用して、バッキングファイルチェーンを追跡します。クラスターが (共有されている) ベースから読み取られる場合、何もする必要はありません。
- bdrv_is_allocated() バリアントが実行可能でない場合は、イメージをリベースし、読み取りデータをベースの書き込みデータと比較して、コピーが必要かどうかを判断します。
- 他のすべての場合は、クラスターを
active
にコピーします
- コピーが完了すると、アクティブのバッキングファイルがベースに切り替えられます (リベースと同様)
一連のスナップショットの後でバッキングチェーンの長さを短くするには、blockcommit および blockpull のコマンドが役立ちます。詳細は、「blockcommit を使用してバッキングチェーンを短縮する」 を参照してください。