14.5. CLI を使用した仮想マシンのストレージボリュームの管理

CLI を使用して、ストレージプボリュームの次の側面を管理し、仮想マシン (VM) にストレージを割り当てることができます。

14.5.1. CLI を使用したストレージボリューム情報の表示

コマンドラインを使用して、ホストで利用可能なすべてのストレージプールのリストと、指定したストレージプールの詳細を表示できます。

手順

  1. virsh vol-list コマンドを使用して、指定したストレージプールにあるストレージボリュームをリスト表示します。

    # virsh vol-list --pool RHEL-Storage-Pool --details
     Name                Path                                               Type   Capacity  Allocation
    ---------------------------------------------------------------------------------------------
     .bash_history       /home/VirtualMachines/.bash_history       file  18.70 KiB   20.00 KiB
     .bash_logout        /home/VirtualMachines/.bash_logout        file    18.00 B    4.00 KiB
     .bash_profile       /home/VirtualMachines/.bash_profile       file   193.00 B    4.00 KiB
     .bashrc             /home/VirtualMachines/.bashrc             file   1.29 KiB    4.00 KiB
     .git-prompt.sh      /home/VirtualMachines/.git-prompt.sh      file  15.84 KiB   16.00 KiB
     .gitconfig          /home/VirtualMachines/.gitconfig          file   167.00 B    4.00 KiB
     RHEL_Volume.qcow2   /home/VirtualMachines/RHEL8_Volume.qcow2  file  60.00 GiB   13.93 GiB
  2. virsh vol-info コマンドを使用して、指定したストレージプール内のストレージボリュームをリスト表示します。

    # vol-info --pool RHEL-Storage-Pool --vol RHEL_Volume.qcow2
    Name:           RHEL_Volume.qcow2
    Type:           file
    Capacity:       60.00 GiB
    Allocation:     13.93 GiB

14.5.2. CLI を使用したストレージボリュームの作成と割り当て

ディスクイメージを取得して、仮想ディスクとして仮想マシンに割り当てるには、ストレージボリュームを作成し、その XML 設定を仮想マシンに割り当てます。

前提条件

  • 空き領域が割り当てられていないストレージプールがホストに存在する。

    • ホストのストレージプールをリスト表示して確認します。

      # virsh pool-list --details
      
      Name               State     Autostart   Persistent   Capacity     Allocation   Available
      --------------------------------------------------------------------------------------------
      default            running   yes         yes          48.97 GiB    36.34 GiB    12.63 GiB
      Downloads          running   yes         yes          175.92 GiB   121.20 GiB   54.72 GiB
      VM-disks           running   yes         yes          175.92 GiB   121.20 GiB   54.72 GiB
    • 既存のストレージプールがない場合は、作成します。詳細は、仮想マシンのストレージの管理 を参照してください。

手順

  1. virsh vol-create-as コマンドを使用してストレージボリュームを作成します。たとえば、guest-images-fs ストレージプールをもとに 20 GB qcow2 ボリュームを作成するには以下を実行します。

    # virsh vol-create-as --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2

    重要: ストレージプールタイプによっては、virsh vol-create-as コマンドがサポートされないため、代わりにストレージボリューム作成の特定のプロセスが必要になります。

    • iSCSI ベース - iSCSI サーバーに事前に iSCSI LUN を準備します。
    • マルチパスベース - multipathd コマンドを使用して、マルチパスを準備または管理します。
    • vHBA ベース - ファイバーチャンネルカードを事前に準備します。
  2. XML ファイルを作成し、そのファイルに以下の行を追加します。このファイルは、ストレージボリュームをディスクとして仮想マシンに追加するために使用します。

    <disk type='volume' device='disk'>
        <driver name='qemu' type='qcow2'/>
        <source pool='guest-images-fs' volume='vm-disk1'/>
        <target dev='hdk' bus='ide'/>
    </disk>

    この例では、前の手順で作成した vm-disk1 ボリュームを使用する仮想ディスクを指定し、このボリュームを ide バスに hdk ディスクとして指定するように設定します。実際の環境に応じてそれぞれのパラメーターを変更します。

    重要: 特定のストレージプールタイプでは、別の XML 形式を使用してストレージボリュームディスクを記述する必要があります。

    • マルチパスベース のプールの場合:

      <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/mapper/mpatha' />
      <target dev='sda' bus='scsi'/>
      </disk>
    • RBD ベースのストレージ プールの場合:

        <disk type='network' device='disk'>
          <driver name='qemu' type='raw'/>
          <source protocol='rbd' name='pool/image'>
            <host name='mon1.example.org' port='6321'/>
          </source>
          <target dev='vdc' bus='virtio'/>
        </disk>
  3. XML ファイルを使用して、ストレージボリュームをディスクとして仮想マシンに割り当てます。たとえば、~/vm-disk1.xml で定義されたディスクを testguest1 仮想マシンに割り当てるには、次のコマンドを使用します。

    # virsh attach-device --config testguest1 ~/vm-disk1.xml

検証

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

14.5.3. CLI を使用したストレージボリュームの削除

ホストシステムからストレージボリュームを削除するには、プールを停止して、その XML 定義を削除する必要があります。

前提条件

  • 削除するストレージボリュームを使用する仮想マシンがすべてシャットダウンしている。

手順

  1. virsh vol-list コマンドを使用して、指定したストレージプールにあるストレージボリュームをリスト表示します。

    # virsh vol-list --pool RHEL-SP
     Name                 Path
    ---------------------------------------------------------------
     .bash_history        /home/VirtualMachines/.bash_history
     .bash_logout         /home/VirtualMachines/.bash_logout
     .bash_profile        /home/VirtualMachines/.bash_profile
     .bashrc              /home/VirtualMachines/.bashrc
     .git-prompt.sh       /home/VirtualMachines/.git-prompt.sh
     .gitconfig           /home/VirtualMachines/.gitconfig
     vm-disk1             /home/VirtualMachines/vm-disk1
  2. オプション - virsh vol-wipe コマンドを使用して、ストレージボリュームをワイプします。たとえば、ストレージプール RHEL-SP に関連付けられている vm-disk1 という名前のストレージボリュームを削除する場合は、次のコマンドを実行します。

    # virsh vol-wipe --pool RHEL-SP vm-disk1
    Vol vm-disk1 wiped
  3. virsh vol-delete コマンドを使用して、ストレージボリュームを削除します。たとえば、ストレージプール RHEL-SP に関連付けられている vm-disk1 という名前のストレージボリュームを削除する場合は、次のコマンドを実行します。

    # virsh vol-delete --pool RHEL-SP vm-disk1
    Vol vm-disk1 deleted

検証

  • virsh vol-list を再度実行して、ストレージボリュームが削除されたことを確認します。

    # virsh vol-list --pool RHEL-SP
     Name                 Path
    ---------------------------------------------------------------
     .bash_history        /home/VirtualMachines/.bash_history
     .bash_logout         /home/VirtualMachines/.bash_logout
     .bash_profile        /home/VirtualMachines/.bash_profile
     .bashrc              /home/VirtualMachines/.bashrc
     .git-prompt.sh       /home/VirtualMachines/.git-prompt.sh
     .gitconfig           /home/VirtualMachines/.gitconfig