七:如何在线添加/更改虚拟磁盘

本文将演示如何添加虚拟磁盘活LUN到KVM guest虚拟机,以及如何在线更改现有虚拟磁盘大小。整个操作无须停止guest操作系统。KVM支持物理LUN映射和虚拟磁盘映射到虚拟机。要映射虚拟磁盘,需要使用qemu-img命令来创建虚拟磁盘映像,而磁盘格式或者是img或者是qcow2。当然,你还是使用dd命令创建一个"无空隙"磁盘映像。

映射SAN或SCSI磁盘到KVM虚拟机

  • 使用root账号登录到KVM Hypervisor主机(物理服务器)

  • 这里假设我们在hypervisor节点从SAN存储获得了"/dev/sdb" LUN

  • 使用virsh命令列出运行的虚拟机

[root@UA-HA ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 32    UAKVM2                         running
[root@UA-HA ~]#
  • 检查UAKVM2虚拟机的设备映射

[root@UA-HA ~]# virsh domblklist UAKVM2 --details
Type       Device     Target     Source
------------------------------------------------
file       disk       vda        /var/lib/libvirt/images/UAKVM2.qcow2
block      cdrom      hda        -
[root@UA-HA ~]#
  • 将LUN连接到UAKVM2虚拟机作为vdb设备

  • 检查完成的工作

  • 登录到UAKVM2 KVM虚拟机中查看新添加的磁盘

以上已经成功在线将SAN LUN映射到KVM虚拟机的/dev/sdb

添加新虚拟磁盘到KVM Guests

要映射一个虚拟磁盘到KVM虚拟机需要以下步骤:

  • 使用qemu-img命令创建一个新的虚拟磁盘

  • 连接虚拟磁盘到guest domain

  • 登录到UAKVM2虚拟机内部检查连接的虚拟磁盘

  • 登录到KVM Hypervisor主机(物理服务器)

  • 使用qemu-img命令创建一个新的虚拟磁盘

注意:所有环境中的存储池路径将不同

也可以使用以下方式创建虚拟磁盘,即raw格式:

或者创建预分配存储磁盘(预分配存储可以获得更好的性能)

检查存储池中的虚拟磁盘大小

  • 将虚拟磁盘添加到KVM虚拟机

  • 验证工作

  • 登录到虚拟机(UAKVM2)检查新添加的磁盘

以上我们成功地在线添加了KVM虚拟机的虚拟磁盘

在KVM中调整虚拟磁盘

  • 登录到Guest VM(UAKVM2)检查磁盘

  • 登录到KVM Hypervisor主机(物理服务器)

  • 检查已经映射到KVM虚拟机的虚拟磁盘

  • 刷新KVM存储池

  • 使用virsh vol-list命令列出虚拟磁盘(vdc = UAKVM2.disk2.qcow2

  • 使用qemu-monitor列出UAKVM2域分配到块设备

上述命令输出显示UAKVM2.disk2.qcow2被影射到drive-virtio-disk2

  • 增加虚拟磁盘大小(注意:千万不要缩小磁盘)

  • 登录到KVM虚拟机UAKVM2然后检查vdc磁盘大小

  • 扩展文件系统,这里使用的文件系统是XFS

以上成功增加了虚拟机磁盘大小

系列教程编译

本系列教程根据 UnixArena Linux KVM 系列教程编译,共分以下文章:

Last updated

Was this helpful?