为了是不同的后端设备以统一的接口供虚拟机使用,libvirt将存储管理分为两个方面:存储卷(Volume)和存储池(Pool)
下面先介绍已有环境下创建Libvirt存储池
目录
(1) 此次实验采用的是LVM分区,先创建两个空白分区,并且创建为PV(物理卷组),再将两个PV创建为VG(Volume Group)卷组,此部分前两篇文章都有介绍,请移步阅读,至此不再赘述。
(2)编写存储池的XML配置文件,可以仿照Default存储池的配置稍加修改
(3)创建存储池,使用create只会临时创建,使用define先定义,再开启,方为永久创建。
(4)查看存储池的基本信息
(5)查看存储池的xml文件
(6)给存储池扩容:由于采用了LVM的存储池类型,存储池扩容也变得很方便,只需要fdisk创建一个分区,然后partprobe命令添加到内核,然后将这个分区创建为PV并加到现有的VG中。这相当于是给卷组扩容,当卷组的容量变大了,存储池的容量也会随之增大。
(7)删除存储池:与前面创建客户机的方法类似,由于之前是通过define来定义存储池再启动的,所以删除也是先关闭再undefine。
在安装完libvirt后,libvirt的安装脚本会自动添加一个默认(Default)的存储池
在root用户下查看
查看一下它的xml文件
《Linux/CentOS下用创建/删除硬盘分区、分区格式化及挂载/去挂载命令》
(52条消息) Linux/CentOS下用创建/删除硬盘分区、分区格式化及挂载/去挂载命令_超级中央电脑的博客-CSDN博客https://blog.csdn.net/m0_59483606/article/details/127180221?spm=1001.2014.3001.5501《LVM管理逻辑卷技术》
(52条消息) LVM管理逻辑卷技术_超级中央电脑的博客-CSDN博客https://blog.csdn.net/m0_59483606/article/details/127313880?spm=1001.2014.3001.5501
touch lvm_pool.xml
vim lvm_pool.xml
文件内容
lvm_pool
lvm_pool
⬆ 注意:
其中,Pool的类型为logical,表示使用的存储类型为LVM,device path为创建的空白分区路径,大小不需要定义,在创建完成后会自动将两个分区的大小汇总,“target”下的路径为VG卷组名。
virsh pool-define lvm_pool.xml
virsh pool-list --all
virsh pool-start lvm_pool
virsh pool-info lvm_pool
记住结果里面的多少多少GB
vgs
再看一下多少g
对比后可以看出存储池和卷组的大小是一样的,我也不知道为什么。
virsh pool-dumpxml lvm_pool
可以看出,Libvirt已经将存储池的XML配置信息进行了完善
lsblk
fdisk回车 n 回车p 回车 三次回车 w回车好了
fdisk回车l回车查看信息,选择lvm对应编号8e,然后t回车8e回车w回车
(不想保存就q,保存就w)
fdisk回车p回车看到Linux lvm 就好了
我这里采用新硬盘/dev/sdc下的分区sdc1,因为sdb一共10G被我两次分完了。
partprobe保存
lsblk查看
pvcrate /dev/sdc1
vgextend lvm_pool /dev/sdc1
vgs
再次查看,会变大
刷新
virsh pool-refresh lvm_pool
查看信息
virsh pool-info lvm_pool
可以看到,将卷组扩容,存储池的大小也同卷组一样被扩大了
virsh pool-destroy lvm_pool
virsh pool-undefine lvm_pool