将 kvm 虚拟机的虚拟磁盘移出根分区

libvirt 默认的存储池位于 /var/lib/libvirt/images,如果是在自己的PC上装个虚拟机玩玩,通常根分区不会很大,磁盘空间马上就告急了。本文描述了一种将现存虚拟机磁盘文件移动到其它位置的方法。

1、首先关闭正在运行的虚拟机

[root@UA-HA ~]# virsh shutdown UAKVM2
[root@UA-HA ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     UAKVM2                         shut off

2、列出所有存储池

 [root@UA-HA ~]# virsh pool-list
 Name                 State      Autostart
-------------------------------------------
 default              active     yes

3、查看 default 存储池的信息

 [root@UA-HA ~]# virsh pool-info default
 Name:           default
 UUID:           3599dd8a-edef-4c00-9ff5-6d880f1ecb8b
 State:          running
 Persistent:     yes
 Autostart:      yes
 Capacity:       17.50 GiB
 Allocation:     7.67 GiB
 Available:      9.82 GiB

4、检查并确认default存储池的路径

[root@UA-HA ~]# virsh pool-dumpxml default |grep -i path
    <path>/var/lib/libvirt/images</path>

5、检查并确认存储池中的虚拟磁盘

[root@UA-HA ~]# virsh vol-list default |grep "/var/lib/libvirt/images"
 UAKVM2.qcow2         /var/lib/libvirt/images/UAKVM2.qcow2
[root@UA-HA ~]#
[root@UA-HA ~]# virsh vol-list default
 Name                 Path
------------------------------------------------------------------------------
 UAKVM2.qcow2         /var/lib/libvirt/images/UAKVM2.qcow2

6、停止存储池

[root@UA-HA ~]# virsh pool-destroy default
Pool default destroyed

7、编辑default存储池的配置

 [root@UA-HA ~]# virsh pool-edit default

<path>/var/lib/libvirt/images</path> 改为指定的路径,我的home位于独立的分区,剩余空间比较巨大,干脆就把它给移到 home 分区里去了

<path>/home/images</path>

退出编辑器后配置自动生效。

8、启动存储池

[root@UA-HA ~]# virsh pool-start default
Pool default started

9、确认存储池的路径

[root@UA-HA ~]# virsh pool-dumpxml default |grep -i path
<path>/home/images</path>

10、在虚拟机可以运行之前,需要先建立好相关的目录,并且把虚拟磁盘文件移动过去

[root@UA-HA ~]# mkdir /home/images
[root@UA-HA ~]# mv /var/lib/libvirt/images/UAKVM2.qcow2 /home/images

11、编辑虚拟机配置

[root@UA-HA ~]# virsh edit UAKVM2

修改虚拟磁盘的定义,指向新的位置

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/home/images/UAKVM2.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'>
</disk>

12、启动虚拟机,确认虚拟机运行正常

[root@UA-HA kvmpool]# virsh start UAKVM2
Domain UAKVM2 started
posted @ 2020-11-15 17:12  fmcdr  阅读(295)  评论(0编辑  收藏  举报