12.4. 仮想マシンへのストレージの接続


仮想マシン (VM) にストレージを追加するには、ストレージリソースを仮想ディスクとして仮想マシンに接続します。仮想ディスクは、物理ストレージデバイスと同様に、接続されている仮想マシンから独立しており、他の仮想マシンに移動できます。

複数の種類のストレージリソースを使用して、仮想ディスクを仮想マシンに追加できます。

12.4.1. コマンドラインを使用してファイルベースの仮想ディスクを仮想マシンに接続する

仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。

コマンドラインでこれを行うには、次のいずれかの方法を使用できます。

  • libvirt によって管理されるディレクトリーベースのストレージプールに、ファイルベースのストレージボリュームを作成します。これには複数のステップが必要ですが、ハイパーバイザーとの統合が強化されます。

    RHEL 10 ホストで最初の仮想マシンを作成するときに、デフォルトのディレクトリーベースのストレージボリュームが自動的に作成されることに注意してください。このストレージプールの名前は、ディスクイメージを保存するディレクトリーの名前に基づいています。たとえば、libvirtsystem セッションでは、デフォルトでディスクイメージが /var/lib/libvirt/images/ ディレクトリーに保存され、ストレージプールの名前が images になります。

  • qemu-img コマンドを使用して、ホストファイルシステム上のファイルとして仮想ディスクを作成します。これはより高速な方法ですが、libvirt との統合は提供されません。

    そのため、qemu-img を使用して仮想ディスクを作成すると、作成後にディスクを管理するのが難しくなります。

注記

コマンドラインで新しい仮想マシンを作成するときに、ファイルベースの仮想ディスクを作成して接続することもできます。これを行うには、virt-install ユーティリティーで --disk オプションを使用します。詳細な手順は、仮想マシンの作成 を参照してください。

手順

  1. オプション: 仮想ディスクをストレージボリュームとして作成するが、ホスト上のデフォルトの images ストレージプールまたは別の既存のストレージプールを使用しない場合は、新しいディレクトリーベースのストレージプールを作成して設定します。

    1. ディレクトリータイプのストレージプールを設定します。たとえば、/guest_images ディレクトリーを使用する guest_images_dir という名前のストレージプールを作成するには、次のコマンドを実行します。

      # virsh pool-define-as guest_images_dir dir --target "/guest_images"
      Pool guest_images_dir defined
      Copy to Clipboard Toggle word wrap
    2. 以前に定義した設定に基づいて、ストレージプールのターゲットパスを作成します。

      # virsh pool-build guest_images_dir
        Pool guest_images_dir built
      Copy to Clipboard Toggle word wrap
    3. ストレージプールを起動します。

      # virsh pool-start guest_images_dir
        Pool guest_images_dir started
      Copy to Clipboard Toggle word wrap
    4. オプション: ホストの起動時にストレージプールが起動するように設定します。

      # virsh pool-autostart guest_images_dir
        Pool guest_images_dir marked as autostarted
      Copy to Clipboard Toggle word wrap
    5. オプション: ストレージプールが running 状態であることを確認します。報告されるサイズが期待どおりであるか、また、自動開始が正しく設定されているかを確認してください。

      # virsh pool-info guest_images_dir
        Name:           guest_images_dir
        UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
        State:          running
        Persistent:     yes
        Autostart:      yes
        Capacity:       458.39 GB
        Allocation:     197.91 MB
        Available:      458.20 GB
      Copy to Clipboard Toggle word wrap
  2. ファイルベースの仮想ディスクを作成します。これを行うには、以下のいずれかの方法を使用します。

    • libvirt によって管理されないファイルベースの仮想マシンディスクをすばやく作成するには、qemu-img ユーティリティーを使用します。

      たとえば、次のコマンドは、サイズが 30 ギガバイトの test-image という名前の qcow2 ディスクイメージを作成します。

      # qemu-img create -f qcow2 test-image 30G
      
      Formatting 'test-image', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
      Copy to Clipboard Toggle word wrap
    • libvirt によって管理されるファイルベースの仮想マシンディスクを作成するには、既存のディレクトリーベースのストレージプールに基づいてディスクをストレージボリュームとして定義します。

      たとえば、次のコマンドは、guest_images_dir ストレージプールに基づいて、vm-disk1 という名前の 20 GB の qcow2 ボリュームを作成します。

      # virsh vol-create-as --pool guest_images_dir --name vm-disk1 --capacity 20GB --format qcow2
      
      Vol vm-disk1 created
      Copy to Clipboard Toggle word wrap
  3. 作成した仮想ディスクの場所を確認します。

    • qemu-img で作成した仮想マシンディスクの場合、これは通常カレントディレクトリーです。
    • ストレージボリュームの場合は、ボリュームが属するストレージプールを調べます。

      # virsh vol-list --pool guest_images_dir --details
      
       Name        Path                          Type   Capacity    Allocation
      --------------------------------------------------------------------------
       vm-disk1    /guest-images/vm-disk1      file   20.00 GiB   196.00 KiB
      Copy to Clipboard Toggle word wrap
  4. ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。

    # virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda      /home/VirtualMachines/vm-name.qcow2
     file   cdrom    vdb      -
    Copy to Clipboard Toggle word wrap
  5. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
  6. virsh attach-disk コマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。

    たとえば、次のコマンドは、以前に作成した test-disk1vdc デバイスとして testguest1 仮想マシンに接続します。

    # virsh attach-disk testguest1 /guest-images/vm-disk1 vdc --persistent
    Copy to Clipboard Toggle word wrap

検証

  1. ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。

    # virsh dumpxml testguest1
    
    ...
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' discard='unmap'/>
          <source file='/guest-images/vm-disk1' index='1'/>
          <backingStore/>
          <target dev='vdc' bus='virtio'/>
          <alias name='virtio-disk2'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
    ...
    Copy to Clipboard Toggle word wrap
  2. 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.2. Web コンソールを使用してファイルベースの仮想ディスクを仮想マシンに接続する

仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。

これを行うには、libvirt によって管理されるディレクトリーベースのストレージプールに、ファイルベースのストレージボリュームを作成します。RHEL 10 ホストで最初の仮想マシンを作成するときに、デフォルトのディレクトリーベースのストレージボリュームが自動的に作成されます。このストレージプールの名前は、ディスクイメージを保存するディレクトリーの名前に基づいています。たとえば、libvirtsystem セッションでは、デフォルトでディスクイメージが /var/lib/libvirt/images/ ディレクトリーに保存され、ストレージプールの名前が images になります。

注記

Web コンソールで新しい仮想マシンを作成するときに、ファイルベースの仮想ディスクを作成して接続することもできます。これを行うには、Create virtual machine ダイアログの Storage オプションを使用します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。

前提条件

手順

  1. RHEL 10 Web コンソールにログインします。
  2. オプション: デフォルトの images ストレージプールを使用して新しい仮想ディスクを作成しない場合は、新しいストレージプールを作成します。

    1. Virtual Machines インターフェイスの上部にある Storage Pools Create storage pool をクリックします。
    2. Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
    3. Type ドロップダウンメニューで、Filesystem directory を選択します。
    4. 以下の情報を入力します。

      • Target path - ストレージプールの場所です。
      • 起動 - ホストの起動時にストレージプールが起動するかどうか
    5. Create をクリックします。

      ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。

  3. 既存のストレージプールに基づいて新しいストレージボリュームを作成します。

    1. Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、Storage Volumes Create volume を選択します。
    2. Create Storage Volume ダイアログに次の情報を入力します。

      • Name - ストレージボリュームの名前。
      • サイズ - ストレージボリュームのサイズ (MiB または GiB)。
      • フォーマット - ストレージボリュームの形式。サポートされているタイプは qcow2 および raw です。
    3. Create をクリックします。
  4. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
  5. 作成したストレージボリュームをディスクとして仮想マシンに追加します。

    1. Virtual Machines インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。

      新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。

    2. Disks までスクロールします。
    3. Disks セクションで、Add disk をクリックします。
    4. Add disks ダイアログで、Use existing を選択します。
    5. ディスクに使用するストレージプールとストレージボリュームを選択します。
    6. ディスクを永続化するかどうかを選択します。

      注記

      一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。

    7. オプション: Show additional options をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
    8. Add をクリックします。

検証

  • 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.3. コマンドラインを使用してディスクベースのストレージを仮想マシンに接続する

仮想マシン (VM) にローカルストレージを提供する場合、ディスクベースのディスクイメージを使用できます。このタイプのディスクイメージは、ホスト上のディスクパーティションに基づいており、.qcow2 または .raw 形式を使用します。

コマンドラインを使用してディスクベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。

  • 新しい仮想マシンを作成する場合は、--disk オプションを使用して、virt-install コマンドによる操作の一部として新しいディスクを作成して接続します。詳細な手順は、仮想マシンの作成 を参照してください。
  • 既存の仮想マシンの場合は、ディスクベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。

前提条件

  • ハイパーバイザーがディスクベースのストレージプールをサポートしていることを確認します。

    # virsh pool-capabilities | grep "'disk' supported='yes'"
    Copy to Clipboard Toggle word wrap

    コマンドの出力が表示される場合には、ディスクベースのプールはサポートの対象です。

  • ストレージプールのベースとなるデバイスを準備します。この目的のために、パーティション (/dev/sdb1 など) または LVM ボリュームを優先します。ディスク全体またはブロックデバイス (/dev/sdb など) への書き込みアクセスを仮想マシンに提供すると、その仮想マシンはそれをパーティション分割するか、その上に独自の LVM グループを作成する可能性があります。これにより、ホストでシステムエラーが発生する可能性があります。

    ただし、ストレージプールにブロックデバイス全体を使用する必要がある場合、Red Hat は、デバイス上の重要なパーティションを GRUB の os-prober 機能から保護することを推奨します。これを行うには、/etc/default/grub ファイルを編集して、次のいずれかの設定を適用します。

    • os-prober を無効にします。

      GRUB_DISABLE_OS_PROBER=true
      Copy to Clipboard Toggle word wrap
    • 使用するパーティションが os-prober によって検出されないようにします。以下に例を示します。

      GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
      Copy to Clipboard Toggle word wrap
  • ストレージプールを作成する前に、選択したストレージデバイス上のデータをバックアップします。使用されている libvirt のバージョンによっては、ディスクをストレージプール専用にすると、ディスクデバイスに現在保存されているすべてのデータが再フォーマットされ、消去される可能性があります。

手順

  1. ディスクベースのストレージプールがまだない場合は、新しいディスクベースのストレージプールを作成して設定します。

    1. ディスクタイプのストレージプールを定義および作成します。次の例では、/dev/sdb デバイスを使用し、/dev ディレクトリーにマウントされる guest_images_disk という名前のストレージプールを作成します。

      # virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev
      Pool guest_images_disk defined
      Copy to Clipboard Toggle word wrap
    2. フォーマット済みのファイルシステムストレージプールのストレージプールターゲットパスを作成し、ストレージソースデバイスを初期化して、データのフォーマットを定義します。

      # virsh pool-build guest_images_disk
        Pool guest_images_disk built
      Copy to Clipboard Toggle word wrap
    3. オプション: プールが作成されたことを確認します。

      # virsh pool-list --all
      
        Name                 State      Autostart
        -----------------------------------------
        default              active     yes
        guest_images_disk    inactive   no
      Copy to Clipboard Toggle word wrap
    4. ストレージプールを起動します。

      # virsh pool-start guest_images_disk
        Pool guest_images_disk started
      Copy to Clipboard Toggle word wrap
      注記

      virsh pool-start コマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。

    5. オプション: 自動起動をオンにします。

      デフォルトでは、virsh で定義したストレージプールは、仮想化サービスが起動するたびに自動的に起動するように設定されません。virsh pool-autostart コマンドを使用して、ストレージプールを自動的に起動するように設定します。

      # virsh pool-autostart guest_images_disk
        Pool guest_images_disk marked as autostarted
      Copy to Clipboard Toggle word wrap
  2. ディスクベースのストレージボリュームを作成します。たとえば、次のコマンドは、guest_images_disk ストレージプールに基づいて、vm-disk1 という名前の 20 GB の qcow2 ボリュームを作成します。

    # virsh vol-create-as --pool guest_images_disk --name sdb1 --capacity 20GB --format extended
    
    Vol vm-disk1 created
    Copy to Clipboard Toggle word wrap
  3. ストレージボリュームを仮想ディスクとして仮想マシンに接続します。

    1. 作成したストレージボリュームの場所を確認します。これを行うには、ボリュームが属するストレージプールを調べます。

      # virsh vol-list --pool guest_images_disk --details
      
       Name        Path                      Type   Capacity    Allocation
      ---------------------------------------------------------------------
       sdb1      /dev/sdb1                  block   20.00 GiB   20.00 GiB
      Copy to Clipboard Toggle word wrap
    2. ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。

      # virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda      /home/VirtualMachines/vm-name.qcow2
       file   cdrom    vdb      -
      Copy to Clipboard Toggle word wrap
    3. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
    4. virsh attach-disk コマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。

      たとえば、次のコマンドは、以前に作成した vm-disk1vdc デバイスとして testguest1 仮想マシンに接続します。

      # virsh attach-disk testguest1 /dev/sdb1 vdc --persistent
      Copy to Clipboard Toggle word wrap

検証

  1. ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。

    # virsh dumpxml testguest1
    
    ...
      <disk type="block" device="disk">
        <driver name="qemu" type="raw"/>
        <source dev="/dev/sdb1" index="2"/>
        <backingStore/>
        <target dev="vdc" bus="virtio"/>
        <alias name="virtio-disk2"/>
        <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
      </disk>
    ...
    Copy to Clipboard Toggle word wrap
  2. 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.4. Web コンソールを使用してディスクベースのストレージを仮想マシンに接続する

仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。

Web コンソールを使用してディスクベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。

  • 新しい仮想マシンを作成する場合は、Create virtual machine ダイアログの Storage オプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。
  • 既存の仮想マシンの場合は、ディスクベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。

前提条件

手順

  1. RHEL 10 Web コンソールにログインします。
  2. ディスクベースのストレージプールがまだない場合は、新しいディスクベースのストレージプールを作成して設定します。

    1. Virtual Machines インターフェイスの上部にある Storage Pools Create storage pool をクリックします。
    2. Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
    3. Type ドロップダウンメニューで、Physical disk device を選択します。

      注記

      ドロップダウンメニューに Physical disk device オプションが表示されない場合、ハイパーバイザーによってディスクベースのストレージプールがサポートされていません。

    4. 以下の情報を入力します。

      • Target Path - ターゲットデバイスを指定するパス。ストレージプールに使用されるパスになります。
      • Source path - ストレージデバイスを指定するパス。たとえば、/dev/sdb です。
      • Format - パーティションテーブルのタイプ。
      • 起動 - ホストの起動時にストレージプールが起動するかどうか
    5. Create をクリックします。

      ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。

  3. 既存のストレージプールに基づいて新しいストレージボリュームを作成します。

    1. Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、Storage Volumes Create volume を選択します。
    2. Create Storage Volume ダイアログに次の情報を入力します。

      • Name - ストレージボリュームの名前。
      • サイズ - ストレージボリュームのサイズ (MiB または GiB)。
      • フォーマット - ストレージボリュームの形式。
    3. Create をクリックします。
  4. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
  5. 作成したストレージボリュームをディスクとして仮想マシンに追加します。

    1. Virtual Machines インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。

      新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。

    2. Disks までスクロールします。
    3. Disks セクションで、Add disk をクリックします。
    4. Add disks ダイアログで、Use existing を選択します。
    5. ディスクに使用するストレージプールとストレージボリュームを選択します。
    6. ディスクを永続化するかどうかを選択します。

      注記

      一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。

    7. オプション: Show additional options をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
    8. Add をクリックします。

検証

  • 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.5. コマンドラインを使用して LVM ベースのストレージを仮想マシンに接続する

仮想マシン (VM) にローカルストレージを提供する場合、LVM ベースのストレージボリュームを使用できます。このタイプのディスクイメージは LVM ボリュームグループに基づいており、.qcow2 または .raw 形式を使用します。

コマンドラインを使用して LVM ベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。

  • 新しい仮想マシンを作成する場合は、Create virtual machine ダイアログの Storage オプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。
  • 既存の仮想マシンの場合は、LVM ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
重要

LVM ベースのストレージボリュームには次の制限があることに注意してください。

  • LVM ベースのストレージプールは、LVM の柔軟性を完全には提供しません。
  • LVM ベースのストレージプールは、ボリュームグループです。virsh ユーティリティーを使用してボリュームグループを作成できますが、この方法では、作成したボリュームグループには 1 つのデバイスしか作成できません。複数のデバイスを持つボリュームグループを作成する場合は、代わりに LVM ユーティリティーを使用します。詳細は、How to create a volume group in Linux with LVM を参照してください。
  • LVM ベースのストレージプールには、完全なディスクパーティションが必要です。virsh コマンドを使用して新しいパーティションまたはデバイスをアクティブにすると、パーティションがフォーマットされ、すべてのデータが消去されます。次の手順で説明しているように、ホストの既存のボリュームグループを使用している場合は、何も消去されません。

前提条件

  • ハイパーバイザーが LVM ベースのストレージプールをサポートしていることを確認します。

    # virsh pool-capabilities | grep "'logical' supported='yes'"
    Copy to Clipboard Toggle word wrap

    コマンドの出力が表示される場合には、LVM ベースのストレージプールはサポートの対象です。

  • ホスト上に LVM ボリュームグループが存在することを確認します。作成手順は、LVM ボリュームグループの作成 を参照してください。
  • ストレージプールを作成する前に、選択したストレージデバイス上のデータをバックアップします。ディスクパーティションをストレージプール専用にすると、ディスクデバイスに現在保存されているすべてのデータが再フォーマットされ、消去されます。

手順

  1. LVM ベースのストレージプールがまだない場合は、新しい LVM ベースのストレージプールを作成して設定します。

    1. LVM タイプのストレージプールを定義します。たとえば、次のコマンドは、lvm_vg ボリュームグループを使用し、/dev/lvm_vg ディレクトリーにマウントされる guest_images_lvm という名前のストレージプールを定義します。

      # virsh pool-define-as guest_images_lvm logical --source-dev /dev/sdb --target /dev/lvm_vg
      Pool guest_images_lvm defined
      Copy to Clipboard Toggle word wrap
    2. 以前に定義した設定に基づいてストレージプールを作成します。

      # virsh pool-build guest_images_lvm
        Pool guest_images_lvm built
      Copy to Clipboard Toggle word wrap
    3. オプション: プールが作成されたことを確認します。

      # virsh pool-list --all
      
        Name                   State      Autostart
        -------------------------------------------
        default                active     yes
        guest_images_lvm       inactive   no
      Copy to Clipboard Toggle word wrap
    4. ストレージプールを起動します。

      # virsh pool-start guest_images_lvm
        Pool guest_images_lvm started
      Copy to Clipboard Toggle word wrap
      注記

      virsh pool-start コマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。

    5. オプション: 自動起動をオンにします。

      デフォルトでは、virsh で定義したストレージプールは、仮想化サービスが起動するたびに自動的に起動するように設定されません。virsh pool-autostart コマンドを使用して、ストレージプールを自動的に起動するように設定します。

      # virsh pool-autostart guest_images_lvm
        Pool guest_images_lvm marked as autostarted
      Copy to Clipboard Toggle word wrap
  2. LVM ベースのストレージボリュームを作成します。たとえば、次のコマンドは、guest_images_lvm ストレージプールに基づいて、vm-disk1 という名前の 20 GB の qcow2 ボリュームを作成します。

    # virsh vol-create-as --pool guest_images_lvm --name vm-disk1 --capacity 20GB --format qcow2
    
    Vol vm-disk1 created
    Copy to Clipboard Toggle word wrap
  3. ストレージボリュームを仮想ディスクとして仮想マシンに接続します。

    1. 作成したストレージボリュームの場所を確認します。これを行うには、ボリュームが属するストレージプールを調べます。

      # virsh vol-list --pool guest_images_lvm --details
      
       Name        Path                            Type   Capacity    Allocation
      -----------------------------------------------------------------------------
       vm-disk1   /dev/guest_images_lvm/vm-disk1   block   20.00 GiB   196.00 KiB
      Copy to Clipboard Toggle word wrap
    2. ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。

      # virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda      /home/VirtualMachines/vm-name.qcow2
       file   cdrom    vdb      -
      Copy to Clipboard Toggle word wrap
    3. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
    4. virsh attach-disk コマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。

      たとえば、次のコマンドは、以前に作成した vm-disk1vdc デバイスとして testguest1 仮想マシンに接続します。

      # virsh attach-disk testguest1 /dev/guest_images_lvm/vm-disk1 vdc --persistent
      Copy to Clipboard Toggle word wrap

検証

  1. ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。

    # virsh dumpxml testguest1
    
    ...
        <disk type="block" device="disk">
          <driver name="qemu" type="raw"/>
          <source dev="/dev/guest_images_lvm/vm-disk1" index="3"/>
          <backingStore/>
          <target dev="vdc" bus="virtio"/>
          <alias name="virtio-disk2"/>
          <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
        </disk>
    
    ...
    Copy to Clipboard Toggle word wrap
  2. 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.6. Web コンソールを使用して LVM ベースのストレージを仮想マシンに接続する

仮想マシン (VM) にローカルストレージを提供する場合、LVM ベースのストレージボリュームを使用できます。このタイプのディスクイメージは LVM ボリュームグループに基づいており、.qcow2 または .raw 形式を使用します。

Web コンソールを使用してディスクベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。

  • 新しい仮想マシンを作成する場合は、Create virtual machine ダイアログの Storage オプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。
  • 既存の仮想マシンの場合は、LVM ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
重要

LVM ベースのストレージボリュームには次の制限があることに注意してください。

  • LVM ベースのストレージプールは、LVM の柔軟性を完全には提供しません。
  • LVM ベースのストレージプールは、ボリュームグループです。virsh ユーティリティーを使用してボリュームグループを作成できますが、この方法では、作成したボリュームグループには 1 つのデバイスしか作成できません。複数のデバイスを持つボリュームグループを作成する場合は、代わりに LVM ユーティリティーを使用します。詳細は、How to create a volume group in Linux with LVM を参照してください。
  • LVM ベースのストレージプールには、完全なディスクパーティションが必要です。virsh コマンドを使用して新しいパーティションまたはデバイスをアクティブにすると、パーティションがフォーマットされ、すべてのデータが消去されます。次の手順で説明しているように、ホストの既存のボリュームグループを使用している場合は、何も消去されません。

前提条件

手順

  1. RHEL 10 Web コンソールにログインします。
  2. ディレクトリーベースのストレージプールがまだない場合は、新しいディレクトリーベースのストレージプールを作成して設定します。

    1. Virtual Machines インターフェイスの上部にある Storage Pools Create storage pool をクリックします。
    2. Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
    3. Type ドロップダウンメニューで、LVM volume group を選択します。

      注記

      ドロップダウンメニューに LVM volume group オプションが表示されない場合、ハイパーバイザーによってディスクベースのストレージプールがサポートされていません。

    4. 以下の情報を入力します。

      • Source volume group - 使用する LVM ボリュームグループの名前。
      • 起動 - ホストの起動時にストレージプールが起動するかどうか
    5. Create をクリックします。

      ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。

  3. 既存のストレージプールに基づいて新しいストレージボリュームを作成します。

    1. Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、Storage Volumes Create volume を選択します。
    2. Create Storage Volume ダイアログに次の情報を入力します。

      • Name - ストレージボリュームの名前。
      • サイズ - ストレージボリュームのサイズ (MiB または GiB)。
      • フォーマット - ストレージボリュームの形式。サポートされているタイプは qcow2 および raw です。
    3. Create をクリックします。
  4. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
  5. 作成したストレージボリュームをディスクとして仮想マシンに追加します。

    1. Virtual Machines インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。

      新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。

    2. Disks までスクロールします。
    3. Disks セクションで、Add disk をクリックします。
    4. Add disks ダイアログで、Use existing を選択します。
    5. ディスクに使用するストレージプールとストレージボリュームを選択します。
    6. ディスクを永続化するかどうかを選択します。

      注記

      一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。

    7. オプション: Show additional options をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
    8. Add をクリックします。

検証

  • 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.7. コマンドラインを使用して仮想マシンに NFS ベースのストレージを接続する

仮想マシン (VM) にネットワークストレージを提供する場合、ネットワークファイルシステム (NFS) サーバーに基づくストレージボリュームを使用できます。

コマンドラインを使用して NFS ベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。

  • 新しい仮想マシンを作成する場合は、Create virtual machine ダイアログの Storage オプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。
  • 既存の仮想マシンの場合は、NFS ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。

前提条件

  • ハイパーバイザーが NFS ベースのストレージプールに対応していることを確認します。

    # virsh pool-capabilities | grep "<value>nfs</value>"
    Copy to Clipboard Toggle word wrap

    コマンドの出力が表示される場合には、NFS ベースのストレージプールはサポートの対象です。

  • 使用できる NFS が必要です。詳細は、NFS 共有のマウント を参照してください。

手順

  1. NFS ベースのストレージプールがまだない場合は、新しい NFS ベースのストレージプールを作成して設定します。

    1. NFS タイプのストレージプールを定義および作成します。たとえば、ターゲットディレクトリー /var/lib/libvirt/images/nfspool を使用してサーバーディレクトリー /home/net_mount にマウントされ、IP が 111.222.111.222 の NFS サーバーを使用するストレージプールを、guest_images_netfs という名前で作成するには、以下を実行します。

      # virsh pool-define-as --name guest_images_netfs \
         --type netfs --source-host='111.222.111.222' \
         --source-path='/home/net_mount' --source-format='nfs' \
         --target='/var/lib/libvirt/images/nfspool'
      
      Pool guest_images_netfs defined
      Copy to Clipboard Toggle word wrap
    2. 以前に定義した設定に基づいてストレージプールを作成します。

      # virsh pool-build guest_images_netfs
        Pool guest_images_netfs built
      Copy to Clipboard Toggle word wrap
    3. オプション: プールが作成されたことを確認します。

      # virsh pool-list --all
      
        Name                   State      Autostart
        -------------------------------------------
        default                active     yes
        guest_images_netfs     inactive   no
      Copy to Clipboard Toggle word wrap
    4. ストレージプールを起動します。

      # virsh pool-start guest_images_netfs
        Pool guest_images_netfs started
      Copy to Clipboard Toggle word wrap
    5. オプション: 自動起動をオンにします。

      デフォルトでは、virsh で定義したストレージプールは、仮想化サービスが起動するたびに自動的に起動するように設定されません。virsh pool-autostart コマンドを使用して、ストレージプールを自動的に起動するように設定します。

      # virsh pool-autostart guest_images_netfs
        Pool guest_images_netfs marked as autostarted
      Copy to Clipboard Toggle word wrap
  2. NFS ベースのストレージボリュームを作成します。たとえば、次のコマンドは、guest_images_netfs ストレージプールに基づいて、vm-disk1 という名前の 20 GB の qcow2 ボリュームを作成します。

    # virsh vol-create-as --pool guest_images_netfs --name vm-disk1 --capacity 20GB --format qcow2
    
    Vol vm-disk1 created
    Copy to Clipboard Toggle word wrap
  3. ストレージボリュームを仮想ディスクとして仮想マシンに接続します。

    1. 作成したストレージボリュームの場所を確認します。これを行うには、ボリュームが属するストレージプールを調べます。

      # virsh vol-list --pool guest_images_netfs --details
      
       Name        Path                                       Type   Capacity    Allocation
      -------------------------------------------------------------------------------------
       vm-disk1   /var/lib/libvirt/images/nfspool/vm-disk1    file  20.00 GiB   196.00 KiB
      Copy to Clipboard Toggle word wrap
    2. ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。

      # virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda      /home/VirtualMachines/vm-name.qcow2
       file   cdrom    vdb      -
      Copy to Clipboard Toggle word wrap
    3. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
    4. virsh attach-disk コマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。

      たとえば、次のコマンドは、以前に作成した vm-disk1vdc デバイスとして testguest1 仮想マシンに接続します。

      # virsh attach-disk testguest1 /var/lib/libvirt/images/nfspool/vm-disk1 vdc --persistent
      Copy to Clipboard Toggle word wrap

検証

  1. ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。

    # virsh dumpxml testguest1
    
    ...
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' discard='unmap'/>
          <source file='/var/lib/libvirt/images/nfspool/vm-disk1' index='1'/>
          <backingStore/>
          <target dev='vdc' bus='virtio'/>
          <alias name='virtio-disk2'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
    ...
    Copy to Clipboard Toggle word wrap
  2. 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。

12.4.8. Web コンソールを使用して仮想マシンに NFS ベースのストレージを接続する

仮想マシン (VM) にネットワークストレージを提供する場合、ネットワークファイルシステム (NFS) サーバーに基づくストレージボリュームを使用できます。

Web コンソールを使用して NFS ベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。

  • 新しい仮想マシンを作成する場合は、Create virtual machine ダイアログの Storage オプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。
  • 既存の仮想マシンの場合は、NFS ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。

前提条件

手順

  1. RHEL 10 Web コンソールにログインします。
  2. NFS ベースのストレージプールがまだない場合は、新しい NFS ベースのストレージプールを作成して設定します。

    1. Virtual Machines インターフェイスの上部にある Storage Pools Create storage pool をクリックします。
    2. Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
    3. Type ドロップダウンメニューで、Network file system を選択します。

      注記

      ドロップダウンメニューに Network file system オプションが表示されない場合、ハイパーバイザーによって NFS ベースのストレージプールがサポートされていません。

    4. 以下の情報を入力します。

      • Target path - ターゲットを指定するパス。ストレージプールに使用されるパスになります。
      • Host - マウントポイントがあるネットワークサーバーのホスト名。これは、ホスト名または IP アドレスになります。
      • Source path - ネットワークサーバーで使用されるディレクトリー。
      • 起動 - ホストの起動時にストレージプールが起動するかどうか
    5. Create をクリックします。

      ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。

  3. 既存のストレージプールに基づいて新しいストレージボリュームを作成します。

    1. Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、Storage Volumes Create volume を選択します。
    2. Create Storage Volume ダイアログに次の情報を入力します。

      • Name - ストレージボリュームの名前。
      • サイズ - ストレージボリュームのサイズ (MiB または GiB)。
      • フォーマット - ストレージボリュームの形式。サポートされているタイプは qcow2 および raw です。
    3. Create をクリックします。
  4. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
  5. 作成したストレージボリュームをディスクとして仮想マシンに追加します。

    1. Virtual Machines インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。

      新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。

    2. Disks までスクロールします。
    3. Disks セクションで、Add disk をクリックします。
    4. Add disks ダイアログで、Use existing を選択します。
    5. ディスクに使用するストレージプールとストレージボリュームを選択します。
    6. ディスクを永続化するかどうかを選択します。

      注記

      一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。

    7. オプション: Show additional options をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
    8. Add をクリックします。

検証

  • 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る