Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

14.5.16. ブロックプルを使用してバッキングチェーンを短縮する

blockpull は、以下のアプリケーションで使用できます。
  • バッキングイメージチェーンからのデータをイメージに入力して、イメージをフラット化します。これにより、イメージファイルは自己完結型になり、背面イメージに依存しなくなり、以下のようになります。
    • 前: base.img ← Active
    • 後: base.img がゲストで使用されなくなり、Active にすべてのデータが含まれるようになりました。
  • バッキングイメージチェーンの一部を平坦化します。これを使用すると、スナップショットをトップレベルイメージに平坦化し、以下のようになります。
    • 前: base ← sn1 ←sn2 ← active
    • 後: base.img ← active.アクティブには、sn1 および sn2 のすべてのデータが含まれるようになりました。また、ゲストでは sn1 も sn2 も使用されないことに注意してください。
  • ディスクイメージを、ホストの新しいファイルシステムに移動します。これにより、ゲストの実行中にイメージファイルを移動できます。以下のようになります。
    • 前 (元のイメージファイル) - /fs1/base.vm.img
    • 後: /fs2/active.vm.qcow2 が新しいファイルシステムになり、/fs1/base.vm.img が使用されなくなります。
  • コピー後のストレージ移行を使用したライブマイグレーションに役立ちます。ディスクイメージは、ライブマイグレーションの完了後に、移行元ホストから移行先ホストにコピーされます。
    要するに、こういうことです: 前: /source-host/base.vm.img 後: /destination-host/active.vm.qcow2/source-host/base.vm.img は使用されなくなりました。

手順14.3 ブロックプルを使用してバッキングチェーンを短縮する

  1. blockpull を実行する前にこのコマンドを実行すると役立つ場合があります。
    # virsh snapshot-create-as $dom $name - disk-only
  2. チェーンが次のようになっている場合: base ← snap1 ← snap2 ← active 次を実行します。
    # virsh blockpull $dom $disk snap1
    このコマンドは、snap2 からデータをアクティブにプルすることで、snap1 のバッキングファイルをアクティブな状態にします。その結果、base ← snap1 ← active になります。
  3. blockpullが完了すると、チェーンに追加イメージを作成したスナップショットのlibvirt追跡は役に立ちなくなります。次のコマンドを使用して、古いスナップショットの追跡を削除します。
    # virsh snapshot-delete $dom $name - metadata
blockpull 追加アプリケーションは、以下のように実行できます。
  • 単一のイメージをフラット化し、そのバッキングイメージチェーンからのデータを取り込むには: # virsh blockpull example-domain vda - wait
  • バッキングイメージチェーンの一部をフラット化するには: # virsh blockpull example-domain vda - base /path/to/base.img - wait
  • ディスクイメージをホスト上の新しいファイルシステムに移動するには: # virsh snapshot-create example-domaine - xmlfile /path/to/new.xml - disk-only に続いて # virsh blockpull example-domain vda - wait
  • コピー後のストレージ移行でライブ移行を使用する
    • destination 実行時:
       # qemu-img create -f qcow2 -o backing_file=/source-host/vm.img /destination-host/vm.qcow2
    • ソース実行時:
      # virsh migrate example-domain
    • destination 実行時:
      # virsh blockpull example-domain vda - wait