使用Btrfs部署KVM
在CentOS 7环境部署kvm虚拟化时,默认的VM镜像存储在/var/lib/libvirt/images
目录。不过,对于服务器部署环境,/var
目录直接建立在/
根文件系统上,该分区只提供了20G左右的空闲空间,无法满足生产环境使用。
Btrfs是Linux平台的下一代文件系统,结合了卷管理和多项文件系统优势,也是最接近ZFS的GPL开源文件系统。
为了能够充分发挥存储性能,提供高效(支持压缩)和高性能的存储特性,通过本文实践,将KVM的镜像存储目录/var/libvirt
转换成Btrfs文件系统。
磁盘分区
通过
fdisk
或parted
磁盘工具划分好一个primary
分区作为Btrfs文件系统所使用的分区,此处使用的分区是/dev/sda4
。
部署Btrfs
安装btrfs工具包
使用Btrfs格式化文件系统
这里使用
-f
参数是因为sda4
分区原先创建过其他文件系统,这里需要强制创建以忽略提示分区中有其他分区表信息的报错。
检查btrfs文件系统
显示输出
挂载btrfs文件系统方法
复制/var/libvirt
目录
/var/libvirt
目录首先检查系统中当前是否有访问
/var/libvirt
的文件句柄处于打开状态,例如libvirtd
服务需要关闭以便能够迁移目录
如果有虚拟机在运行,则需要先停止虚拟机
此外需要停止
libvirtd
和virtlogd.socket
完成后再次检查是否还有进程在访问 /var/libvirt
目录,确定没有以后则可以执行下一步
重命名
/var/lib/libvirt
目录
创建Btrfs /data/libvirt
子卷
/data/libvirt
子卷创建
/data/libvirt
子卷,这个子卷将挂载为/var/lib/libvirt
创建
/var/lib/libvirt
配置
/etc/fstab
挂载
/data
挂载
/var/lib/libvirt
复制/var/lib/libvirt
/var/lib/libvirt
采用如下命令将原先备份恢复
恢复虚拟化服务
启动对应的虚拟机,例如
部署思考
作为生产系统,可以采用将数据存放在 /var
目录下的子目录,从服务器开始安装部署就将 /var
作为一个Btrfs卷,为后续部署做好准备。
例如,RHEL/CentOS/Debian发行版会将web目录默认存放在 /var/www/html
目录;虚拟化数据存放在 /var/lib/libvirt
目录。
Last updated