15.6. CLI を使用した仮想ディスクイメージの管理
仮想ディスクイメージは、仮想ストレージボリューム の一種であり、ハードドライブが物理マシンにストレージを提供するのと同様に、仮想マシンにストレージを提供します。
新しい仮想マシンを作成する 場合、特に指定しない限り、libvirt は新しいディスクイメージを自動的に作成します。ただし、ユースケースによっては、仮想マシンとは別にディスクイメージを作成して管理することが必要になる場合があります。
15.6.1. qemu-img を使用した仮想ディスクイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
新しい仮想マシンとは別に新しい仮想ディスクイメージを作成する必要があり、ストレージボリュームの作成 が実行できない場合は、qemu-img コマンドラインユーティリティーを使用できます。
手順
qemu-imgユーティリティーを使用して仮想ディスクイメージを作成します。# qemu-img create -f <format> <image-name> <size>たとえば、次のコマンドは、test-image という名前の、30 ギガバイトの qcow2 ディスクイメージを作成します。
# qemu-img create -f qcow2 test-image 30G Formatting 'test-img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
検証
作成したイメージに関する情報を表示し、必要なサイズであること、および破損が報告されないことを確認します。
# qemu-img info <test-img> image: test-img file format: qcow2 virtual size: 30 GiB (32212254720 bytes) disk size: 196 KiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false
15.6.2. 仮想ディスクイメージの整合性のチェック リンクのコピーリンクがクリップボードにコピーされました!
ディスクイメージを仮想マシンにアタッチする前に、ディスクイメージに破損や著しい断片化などの問題がないことを確認します。確認には、qemu-img check コマンドを使用します。
必要に応じて、このコマンドを使用してディスクイメージの修復を試みることもできます。
前提条件
- ディスクイメージを使用する仮想マシンがすべてシャットダウンしている。
手順
テストするイメージに対して
qemu-img checkコマンドを使用します。以下に例を示します。# qemu-img check <test-name.qcow2> No errors were found on the image. 327434/327680 = 99.92% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 21478375424チェックでディスクイメージに問題が見つかった場合、コマンドの出力は次のようになります。
167 errors were found on the image. Data may be corrupted, or further writes to the image may corrupt it. 453368 leaked clusters were found on the image. This means waste of disk space, but no harm to data. 259 internal errors have occurred during the check. Image end offset: 21478375424検出された問題の修復を試みるために、
-r allオプションを指定したqemu-img checkコマンドを使用します。ただし、問題の一部しか解決されない可能性があることに注意してください。警告ディスクイメージを修復すると、データの破損やその他の問題が発生する可能性があります。修復を試みる前に、ディスクイメージをバックアップしてください。
# qemu-img check -r all <test-name.qcow2> [...] 122 errors were found on the image. Data may be corrupted, or further writes to the image may corrupt it. 250 internal errors have occurred during the check. Image end offset: 27071414272この出力は、修復後にディスクイメージで見つかった問題の数を示しています。
-
さらにディスクイメージの修復が必要な場合は、
guestfishシェル のさまざまなlibguestfsツールを使用できます。
15.6.3. 仮想ディスクイメージのサイズ変更 リンクのコピーリンクがクリップボードにコピーされました!
既存のディスクイメージに追加の領域が必要な場合は、qemu-img resize ユーティリティーを使用して、ユースケースに合わせてイメージのサイズを変更できます。
前提条件
- ディスクイメージのバックアップを作成済みである。
ディスクイメージを使用する仮想マシンがすべてシャットダウンしている。
警告実行中の仮想マシンのディスクイメージのサイズを変更すると、データの破損やその他の問題が発生する可能性があります。
- ホストのハードディスクに、意図したディスクイメージサイズに対して十分な空き領域がある。
- オプション: ディスクイメージにデータの破損や同様の問題がないことを確認済みである。手順は、仮想ディスクイメージの整合性のチェック を参照してください。
手順
サイズを変更する仮想マシンのディスクイメージファイルの場所を判別します。以下に例を示します。
# virsh domblklist <vm-name> Target Source ---------------------------------------------------------- vda /home/username/disk-images/example-image.qcow2オプション: 現在のディスクイメージをバックアップします。
# cp <example-image.qcow2> <example-image-backup.qcow2>qemu-img resizeユーティリティーを使用して、イメージのサイズを変更します。たとえば、<example-image.qcow2> のサイズを 10 GB 増やすには、次のようにします。
# qemu-img resize <example-image.qcow2> +10G- ディスクイメージ内のファイルシステム、パーティション、または物理ボリュームのサイズを変更して、使用する領域を追加します。RHEL ゲストオペレーティングシステムでこれを行うには、ストレージデバイスの管理 および ファイルシステムの管理 の手順を使用します。
検証
サイズを変更したイメージに関する情報を表示し、意図したサイズになっているかを確認します。
# qemu-img info <converted-image.qcow2> image: converted-image.qcow2 file format: qcow2 virtual size: 30 GiB (32212254720 bytes) disk size: 196 KiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false- サイズを変更したディスクイメージに潜在的なエラーがないか確認します。手順は、仮想ディスクイメージの整合性のチェック を参照してください。
15.6.4. 仮想ディスクイメージの形式の変換 リンクのコピーリンクがクリップボードにコピーされました!
qemu-img convert コマンドを使用して、仮想ディスクイメージを別の形式に変換できます。たとえば、別のハイパーバイザーで実行している仮想マシンにディスクイメージをアタッチする場合、仮想ディスクイメージの形式の変換が必要になることがあります。
前提条件
- ディスクイメージを使用する仮想マシンがすべてシャットダウンしている。
- QEMU による変換を行うには、ソースディスクイメージ形式がサポートされている必要があります。詳細なリストは、サポートされているディスクイメージ形式 を参照してください。
手順
qemu-img convertコマンドを使用して、既存の仮想ディスクイメージを別の形式に変換します。たとえば、raw ディスクイメージを QCOW2 ディスクイメージに変換するには、次のようにします。# qemu-img convert -f raw <original-image.img> -O qcow2 <converted-image.qcow2>
検証
変換したイメージに関する情報を表示し、意図した形式とサイズであるかどうかを確認します。
# qemu-img info <converted-image.qcow2> image: converted-image.qcow2 file format: qcow2 virtual size: 30 GiB (32212254720 bytes) disk size: 196 KiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false- ディスクイメージに潜在的なエラーがないか確認します。手順は、仮想ディスクイメージの整合性のチェック を参照してください。
15.6.5. サポートされているディスクイメージ形式 リンクのコピーリンクがクリップボードにコピーされました!
RHEL で仮想マシン (VM) を実行するには、サポートされている形式のディスクイメージを使用する必要があります。サポートされていない特定のディスクイメージをサポートされている形式に変換することもできます。
仮想マシンでサポートされているディスクイメージ形式
RHEL で仮想マシンを実行するには、次の形式のディスクイメージを使用できます。
- qcow2 - 圧縮などの追加機能を提供します。
- raw - より良いパフォーマンスが得られる可能性があります。
- luks - Linux Unified Key Setup (LUKS) 仕様を使用して暗号化されたディスクイメージ。
変換でサポートされているディスクイメージ形式
-
必要に応じて、
qemu-img convertコマンドを使用して、ディスクイメージをraw形式とqcow2形式間で変換できます。 -
vmdk ディスクイメージを
rawまたはqcow2形式に変換する必要がある場合は、virt-v2vユーティリティーを使用 して、ディスクを使用する仮想マシンを KVM に変換します。 他のディスクイメージ形式を
rawまたはqcow2に変換するには、qemu-img convertコマンド を使用できます。このコマンドで使用できる形式のリストは、QEMU のドキュメント を参照してください。ほとんどの場合、非 KVM 仮想マシンのディスクイメージ形式を
qcow2またはrawに変換するだけでは、仮想マシンを RHEL KVM 上で正しく実行するのに十分ではないことに注意してください。ディスクイメージを変換するだけでなく、対応するドライバーを仮想マシンのゲストオペレーティングシステムにインストールして設定する必要があります。サポートされているハイパーバイザー変換には、virt-v2vユーティリティーを使用します。