1. 创建新的存储卷
首先,需要创建一个新的存储卷。可以使用 qemu-img
工具来创建一个新的虚拟磁盘文件。例如,创建一个大小为10GB的QCOW2格式的磁盘文件:
1
qemu-img create -f qcow2 /var/lib/libvirt/images/new_volume.qcow2 10G
2. 编辑虚拟机配置
接下来,需要编辑虚拟机的XML配置文件,以添加新的存储卷。可以使用 virsh edit
命令来编辑虚拟机的配置。例如,如果虚拟机名为 myvm
,可以使用以下命令:
1
virsh edit myvm
在编辑器中打开的XML文件中,找到 <devices>
部分,然后添加一个新的 <disk>
条目:
1
2
3
4
5
6
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/new_volume.qcow2'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
注意:
<source file='/var/lib/libvirt/images/new_volume.qcow2'/>
:指定新创建的卷的路径。<target dev='vdb' bus='virtio'/>
:dev
表示设备名称,应该是一个未使用的设备名称(例如,vdb
、vdc
等)。<address>
部分可能需要根据虚拟机的配置进行调整。
保存并关闭编辑器。
3. 重新启动虚拟机
编辑完成后,重新启动虚拟机以应用更改:
1
2
virsh shutdown myvm
virsh start myvm
4. 在虚拟机中配置新卷(进入虚拟机)
登录到虚拟机,使用 lsblk
或 fdisk -l
命令检查新磁盘是否已被识别。例如:
1
lsblk
应该能看到一个新的设备,例如 /dev/vdb
。
5. 格式化并挂载新卷
格式化新磁盘:
1
mkfs.ext4 /dev/vdb
创建一个挂载点并挂载新卷:
1
2
mkdir /mnt/new_volume
mount /dev/vdb /mnt/new_volume
6. 持久化挂载(可选)
为了在重启后仍然保持挂载,可以将其添加到 /etc/fstab
中。编辑 /etc/fstab
文件,并添加以下内容:
1
/dev/vdb /mnt/new_volume ext4 defaults 0 0
总结
以上步骤概述了如何向KVM虚拟机添加新的存储卷。创建新的卷文件后,通过编辑虚拟机的XML配置文件将其添加到虚拟机中,然后在虚拟机内部进行格式化和挂载操作。如果有任何问题,请确保检查虚拟机的日志文件以获取更多详细信息。
另外一种方法动态添加卷
1. 创建新的存储卷
首先,需要创建一个新的存储卷。可以使用 qemu-img
工具来创建一个新的虚拟磁盘文件。例如,创建一个大小为10GB的QCOW2格式的磁盘文件:
1
qemu-img create -f qcow2 /var/lib/libvirt/images/new_volume.qcow2 10G
2. 生成 XML 定义文件:
我们需要创建一个 XML 文件来描述要添加的磁盘设备。 可以使用以下内容创建一个名为 disk.xml 的文件:
1
2
3
4
5
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/new_volume.qcow2'/>
<target dev='vdb' bus='virtio'/>
</disk>
3. 使用 virsh attach-device 命令添加磁盘:
1
virsh attach-device <虚拟机名称> disk.xml --persistent
4.查看虚拟机块设备
1
virsh domblklist <虚拟机名称>