KVM虚拟化平台更改默认存储池(default pool)的详细方法
在 KVM 虚拟化环境中,默认存储池(default pool)通常指向/var/lib/libvirt/images目录。这个目录位于根分区(/)下,而根分区的空间往往有限。随着虚拟机数量的增加和磁盘文件的膨胀,很容易导致存储空间不足,从而影响虚拟机的正常运行,所以需要更改默认存储池位置。
1.当前环境检查
1.1 查看 KVM 版本和存储信息
在开始操作之前,先检查当前的 KVM 环境和存储配置,default 池大小,只有 93.22GB 空间:
# 查看版本信息 [root@mybj ~]# qemu-img --version qemu-img version 9.1.0 (qemu-kvm-9.1.0-29.el9_7.3) Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers [root@mybj ~]# # 查看当前 default 存储池的详细信息 [root@mybj ~]# virsh pool-info default Name: default UUID: 477900a4-0bd5-4ca8-84fa-1b7d31f82852 State: running Persistent: yes Autostart: yes Capacity: 99.94 GiB Allocation: 6.72 GiB Available: 93.22 GiB [root@mybj ~]#
1.2 查看当前 default 存储池的详细信息
[root@mybj images]# virsh pool-dumpxml default <pool type='dir'> <name>default</name> <uuid>477900a4-0bd5-4ca8-84fa-1b7d31f82852</uuid> <capacity unit='bytes'>0</capacity> <allocation unit='bytes'>0</allocation> <available unit='bytes'>0</available> <source> </source> <target> <path>/var/lib/libvirt/images</path> </target> </pool> [root@mybj images]#
1.3 查看所有存储池状态
[root@mybj ~]# virsh pool-list --all Name State Autostart ------------------------------------ default active yes mysysiso active yes [root@mybj ~]#
2.存储空间规划
在本文中,规划将 default 存储池迁移到新的目录:/myvmdata/vmimages
(1)创建目标目录
[root@mybj ~]# mkdir -p /myvmdata/vmimages [root@mybj ~]# chown root:root /myvmdata/vmimages [root@mybj ~]# chmod 755 /myvmdata/vmimages
(2)检查新分区空间
确保新分区有足够空间,先查看一下:
[root@mybj ~]# df -h /myvmdata Filesystem Size Used Avail Use% Mounted on /dev/mapper/rl-myvmdata 4.3T 49G 4.3T 2% /myvmdata [root@mybj ~]#
可以看到该目录下有 4TB 的大容量空间。
(3)迁移现有虚拟机文件(可选)
该步骤为可选,如果已有虚拟机就需要迁移到新存储池:
# 停止相关虚拟机 virsh shutdown <虚拟机名称> # 迁移磁盘文件 cp -a /var/lib/libvirt/images/* /myvmdata/vmimages/ # 确认文件完整性 ls -lh /myvmdata/vmimages/
3.更改 default 存储池
3.1 停止 default 池
[root@mybj ~]# virsh pool-destroy default Pool default destroyed [root@mybj ~]#
注意:
pool-destroy命令只会停止存储池,不会删除其中的数据。
3.2 取消定义 default 池
将 default 存储池从libvirt配置中取消定义:
[root@mybj ~]# virsh pool-undefine default Pool default has been undefined [root@mybj ~]#
重要说明:此操作不会删除存储池中的实际文件,仅移除 libvirt 的配置信息。
3.3 重新定义 default 池
使用新的路径重新定义 default 存储池,将 default 池指向/myvmdata/vmimages
[root@mybj ~]# virsh pool-define-as default dir - - - - "/myvmdata/vmimages" Pool default defined [root@mybj ~]#
# 命令参数解释:
pool-define-as:定义存储池的命令default:存储池名称dir:存储池类型(目录类型)- 中间的
-表示使用默认值 /myvmdata/vmimages:新的存储路径
3.4 构建并启动新存储池
# 构建存储池结构:
[root@mybj ~]# virsh pool-build default Pool default built [root@mybj ~]#
此命令会在目标目录创建必要的目录结构。
# 启动存储池:
[root@mybj ~]# virsh pool-start default Pool default started [root@mybj ~]#
# 设置开机自启动:
[root@mybj ~]# virsh pool-autostart default Pool default marked as autostarted [root@mybj ~]#
4.验证配置
以上操作完成后,再次查看 default 池状态,大小已变为 4.25TB:
[root@mybj ~]# virsh pool-info default Name: default UUID: 72f5e330-1df6-478d-bda1-563bfdb2f7ed State: running Persistent: yes Autostart: yes Capacity: 4.25 TiB Allocation: 35.85 GiB Available: 4.22 TiB [root@mybj ~]#
同时存储池 XML 配置也可以查看一下:
[root@mybj ~]# virsh pool-dumpxml default <pool type='dir'> <name>default</name> <uuid>72f5e330-1df6-478d-bda1-563bfdb2f7ed</uuid> <capacity unit='bytes'>4678190366720</capacity> <allocation unit='bytes'>51062726656</allocation> <available unit='bytes'>4627127640064</available> <source> </source> <target> <path>/myvmdata/vmimages</path> <permissions> <mode>0755</mode> <owner>0</owner> <group>0</group> </permissions> </target> </pool> [root@mybj ~]#
也可以登录cockpit的 WEB 界面,查看虚拟机下存储池的详细信息:

同样,默认存储池的路径为/myvmdata/vmimages。
以上关于KVM虚拟化平台更改默认存储池(default pool)的详细方法的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » KVM虚拟化平台更改默认存储池(default pool)的详细方法


微信
支付宝