15.5. CLI を使用した仮想マシンのストレージボリュームの管理
CLI を使用して、ストレージプボリュームの次の側面を管理し、仮想マシン (VM) にストレージを割り当てることができます。
15.5.1. CLI を使用したストレージボリューム情報の表示
コマンドラインを使用して、ホストで利用可能なすべてのストレージプールのリストと、指定したストレージプールの詳細を表示できます。
手順
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
virsh vol-info
コマンドを使用して、指定したストレージプール内のストレージボリュームをリスト表示します。# virsh vol-info --pool RHEL-Storage-Pool --vol RHEL_Volume.qcow2 Name: RHEL_Volume.qcow2 Type: file Capacity: 60.00 GiB Allocation: 13.93 GiB
15.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
- 既存のストレージプールがない場合は、作成します。詳細は、仮想マシンのストレージの管理 を参照してください。
手順
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 ベース - ファイバーチャンネルカードを事前に準備します。
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>
XML ファイルを使用して、ストレージボリュームをディスクとして仮想マシンに割り当てます。たとえば、
~/vm-disk1.xml
で定義されたディスクをtestguest1
仮想マシンに割り当てるには、次のコマンドを使用します。# virsh attach-device --config testguest1 ~/vm-disk1.xml
検証
- 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
15.5.3. CLI を使用したストレージボリュームの削除
ホストシステムからストレージボリュームを削除するには、プールを停止して、その XML 定義を削除する必要があります。
前提条件
- 削除するストレージボリュームを使用する仮想マシンがすべてシャットダウンしている。
手順
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
オプション:
virsh vol-wipe
コマンドを使用してストレージボリュームをワイプします。たとえば、ストレージプールRHEL-SP
に関連付けられているvm-disk1
という名前のストレージボリュームを削除する場合は、次のコマンドを実行します。# virsh vol-wipe --pool RHEL-SP vm-disk1 Vol vm-disk1 wiped
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