15.5. 使用 CLI 管理虚拟机存储卷
您可以使用 CLI 管理存储卷的以下方面来为虚拟机分配存储:
15.5.1. 使用 CLI 查看存储卷信息 复制链接链接已复制到粘贴板!
使用命令行,您可以查看主机上所有可用存储池的列表,以及指定存储池的详情
流程
使用
virsh vol-list
命令列出指定存储池中的存储卷。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
virsh vol-info
命令列出指定存储池中的存储卷。virsh vol-info --pool RHEL-Storage-Pool --vol RHEL_Volume.qcow2
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.5.2. 使用 CLI 创建并分配存储卷 复制链接链接已复制到粘贴板!
要获取磁盘镜像,并将其作为虚拟磁盘附加到虚拟机(VM),请创建一个存储卷,并将其 XML 配置分配到虚拟机。
先决条件
主机上存在带有未分配空间的存储池。
要验证,列出主机上的存储池:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您没有现有的存储池,请创建一个。如需更多信息,请参阅为虚拟机管理存储。
流程
使用
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 --pool guest-images-fs --name vm-disk1 --capacity 20 --format qcow2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要 :特定的存储池类型不支持
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>
<disk type='volume' device='disk'> <driver name='qemu' type='qcow2'/> <source pool='guest-images-fs' volume='vm-disk1'/> <target dev='hdk' bus='ide'/> </disk>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例指定一个在上一步中创建的
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>
<disk type='block' device='disk'> <driver name='qemu' type='raw'/> <source dev='/dev/mapper/mpatha' /> <target dev='sda' bus='scsi'/> </disk>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 基于 RBD 存储的池:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 XML 文件为虚拟机分配存储卷。例如,要将
~/vm-disk1.xml
中定义的磁盘分配给testguest1
虚拟机,请使用以下命令:virsh attach-device --config testguest1 ~/vm-disk1.xml
# virsh attach-device --config testguest1 ~/vm-disk1.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在虚拟机的客户机操作系统中,确认磁盘映像已作为未格式化和未分配的磁盘提供。
15.5.3. 使用 CLI 删除存储卷 复制链接链接已复制到粘贴板!
要从主机系统中删除存储卷,您必须停止池并删除它的 XML 定义。
先决条件
- 任何使用您要删除的存储卷的虚拟机都会被关闭。
流程
使用
virsh vol-list
命令列出指定存储池中的存储卷。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:使用
virsh vol-wipe
命令擦除存储卷。例如,要擦除与存储池RHEL-SP
关联的名为vm-disk1
的存储卷:virsh vol-wipe --pool RHEL-SP vm-disk1
# virsh vol-wipe --pool RHEL-SP vm-disk1 Vol vm-disk1 wiped
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
virsh vol-delete
命令来删除存储卷。例如,要删除与存储池RHEL-SP
关联的名为vm-disk1
的存储卷:virsh vol-delete --pool RHEL-SP vm-disk1
# virsh vol-delete --pool RHEL-SP vm-disk1 Vol vm-disk1 deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
再次使用
virsh vol-list
命令来验证存储卷是否已被删除。Copy to Clipboard Copied! Toggle word wrap Toggle overflow