14.6. CLI を使用した仮想ディスクイメージの管理

仮想ディスクイメージは、仮想ストレージボリューム の一種であり、ハードドライブが物理マシンにストレージを提供するのと同様に、仮想マシンにストレージを提供します。

新しい仮想マシンを作成する 場合、特に指定しない限り、libvirt は新しいディスクイメージを自動的に作成します。ただし、ユースケースによっては、仮想マシンとは別にディスクイメージを作成して管理することが必要になる場合があります。

14.6.1. qemu-img を使用した仮想ディスクイメージの作成

新しい仮想マシンとは別に新しい仮想ディスクイメージを作成する必要があり、ストレージボリュームの作成 が実行できない場合は、qemu-img コマンドラインユーティリティーを使用できます。

手順

  • qemu-img ユーティリティーを使用して仮想ディスクイメージを作成します。

    # qemu-img create -f <format> <image-name> <size>

    たとえば、次のコマンドは、test-image という名前の、30 GB の 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

14.6.2. 仮想ディスクイメージの整合性のチェック

ディスクイメージを仮想マシンにアタッチする前に、ディスクイメージに破損や著しい断片化などの問題がないことを確認します。確認には、qemu-img check コマンドを使用します。

必要に応じて、このコマンドを使用してディスクイメージの修復を試みることもできます。

前提条件

  • ディスクイメージを使用する仮想マシンがすべてシャットダウンしている。

手順

  1. テストするイメージに対して 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
  2. qemu-img check コマンドで -r all オプションを指定して、問題を修復します。ただし、問題の一部しか解決されない可能性があることに注意してください。

    警告

    ディスクイメージを修復すると、データの破損やその他の問題が発生する可能性があります。修復を試みる前に、ディスクイメージをバックアップしてください。

    # 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

    この出力は、修復後にディスクイメージで見つかった問題の数を示しています。

  3. さらにディスクイメージの修復が必要な場合は、guestfish シェル のさまざまな libguestfs ツールを使用できます。

関連情報

  • qemu-img の man ページ
  • guestfish の man ページ

14.6.3. 仮想ディスクイメージのサイズ変更

既存のディスクイメージに追加の領域が必要な場合は、qemu-img resize ユーティリティーを使用して、ユースケースに合わせてイメージのサイズを変更できます。

前提条件

  • ディスクイメージのバックアップを作成している。
  • ディスクイメージを使用する仮想マシンがすべてシャットダウンしている。

    警告

    実行中の仮想マシンのディスクイメージのサイズを変更すると、データの破損やその他の問題が発生する可能性があります。

  • ホストのハードディスクに、意図したディスクイメージサイズに対して十分な空き領域がある。
  • オプション: ディスクイメージにデータの破損や同様の問題がないことを確認済みである。手順については、仮想ディスクイメージの整合性のチェック を参照してください。

手順

  1. サイズを変更する仮想マシンのディスクイメージファイルの場所を判別します。以下に例を示します。

    # virsh domblklist <vm-name>
    
     Target   Source
    ----------------------------------------------------------
     vda      /home/username/disk-images/example-image.qcow2
  2. オプション: 現在のディスクイメージをバックアップします。

    # cp <example-image.qcow2> <example-image-backup.qcow2>
  3. qemu-img resize ユーティリティーを使用して、イメージのサイズを変更します。

    たとえば、<example-image.qcow2> のサイズを 10 GB 増やすには、次のようにします。

    # qemu-img resize <example-image.qcow2> +10G
  4. ディスクイメージ内のファイルシステム、パーティション、または物理ボリュームのサイズを変更して、使用する領域を追加します。RHEL ゲストオペレーティングシステムでこれを行うには、ストレージデバイスの管理 および ファイルシステムの管理 の手順を使用します。

検証

  1. サイズを変更したイメージに関する情報を表示し、意図したサイズになっているかを確認します。

    # 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
  2. サイズを変更したディスクイメージに潜在的なエラーがないか確認します。手順については、仮想ディスクイメージの整合性のチェック を参照してください。

14.6.4. 仮想ディスクイメージの形式の変換

qemu-img convert コマンドを使用して、仮想ディスクイメージを別の形式に変換できます。たとえば、別のハイパーバイザーで実行している仮想マシンにディスクイメージをアタッチする場合、仮想ディスクイメージの形式の変換が必要になることがあります。

前提条件

  • ディスクイメージを使用する仮想マシンがすべてシャットダウンしている。

手順

  • qemu-im convert コマンドを使用して、既存の仮想ディスクイメージを別の形式に変換します。たとえば、raw ディスクイメージを QCOW2 ディスクイメージに変換するには、次のようにします。

    # qemu-img convert -f raw <original-image.img> -O qcow2 <converted-image.qcow2>

検証

  1. 変換したイメージに関する情報を表示し、意図した形式とサイズであるかどうかを確認します。

    # 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
  2. ディスクイメージに潜在的なエラーがないか確認します。手順については、仮想ディスクイメージの整合性のチェック を参照してください。

関連情報