本文主要是介绍kvm压缩虚拟机磁盘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
kvm压缩虚拟机磁盘
kvm通过图形界面创建虚拟机后,如果指定的磁盘为200G,创建后查看物理位置文件大小为200G,注意,这里创建的时候并没有勾选“立即分配磁盘空间”。
出现以上原因会造成虚拟机安装完操作系统或者其他软件后,物理位置虚拟机文件大小会超过200G!明显是不合理的。如果用图形化界面创建虚拟机后,会造成“镜像空洞”。
解决方案:
1.创建的时候提前在需要保存的路径使用命令先创建镜像文件:
# 使用qemu-img命令创建kvm虚拟机镜像文件
qemu-img create -f qcow2 xxx.qcow2 200G
2.或者虚拟机创建完成后使用相应工具压缩镜像文件
#第一种方案
qemu-img convert -c -O qcow2 /path/xxx.qcow2 /newpath/xxx.qcow2
#第二种方案
sudo apt-get install libguestfs-tools
sudo virt-sparsify --compress /path/xxx.qcow2 /newpath/xxx.qcow2
注意:如果是执行qemu-img命令创建的,这个文件创建后会非常小,安装完操作系统后文件会随之变大。
例如:
1.使用命令创建
# 此时创建的文件122k
qemu-img create -f qcow2 win2022.qcow2 200G
2.kvm创建虚拟机,选择win2022.qcow2文件
3.设置kvm虚拟机其他选项
4.安装windows操作系统后清理windows磁盘,优化windows磁盘
5.关闭kvm虚拟机
6.查看win2022.qcow2文件大小为12G
7.使用命令压缩:
sudo virt-sparsify --compress /home/temp/win.qcow2 /home/temp/test/win2022.qcow2
注意:使用virt-sparsify压缩的时候,会产生临时文件到/tmp目录中,如果/tmp目录比较小,则建议进行如下操作,否则压缩会失败
注意,一定要用root的身份登录后操作,不要使用sudo
# mkdir /home/temp/linux-temp
# chmod 1777 /home/temp/linux-temp
# export TEMP=/home/temp/linux-temp
# export TMPDIR=/home/temp/linux-temp
8.将压缩后的虚拟机镜像移动到指定存放路径后重新迁移虚拟机(其实这里就就相当于把虚拟机磁盘优化到最小后,重新指定了镜像位置)
这篇关于kvm压缩虚拟机磁盘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!