广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪
广告!请自辨真伪 广告!请自辨真伪 广告!请自辨真伪
广告!请自辨真伪
 

KVM虚拟化平台更改默认存储池(default pool)的详细方法

AI 概述
在 KVM 虚拟化环境中,默认存储池位于根分区下,空间有限,易致存储不足影响虚拟机运行。文章先检查当前 KVM 环境与存储配置,规划将 default 存储池迁移到 /myvmdata/vmimages。接着创建目标、检查空间,可选迁移现有虚拟机文件。然后停止、取消定义 default 池,重新定义并构建、启动新存储池,设置开机自启动。最后验证配置,查看池状态、XML 配置,确认默认存储池路径已变更。
目录
文章目录隐藏
  1. 1.当前环境检查
  2. 2.存储空间规划
  3. 3.更改 default 存储池
  4. 4.验证配置

在 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)的详细方法的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » KVM虚拟化平台更改默认存储池(default pool)的详细方法

发表回复