Linux的桌面虚拟化技术KVM(四)——虚拟机镜像格式对比与转换
Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机
Linux的桌面虚拟化技术KVM(二)——远程桌面管理
Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照
(1).常用镜像格式对比
目前常用虚拟机镜像格式:raw、cow、qcow、qcow2、vmdk。
1)raw
raw格式:老牌的镜像格式,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜像。由于裸的彻底,性能上来说的话还是不错的。centos6上KVM和XEN默认的格式还是这个格式。centos7以上默认是qcow2 。
裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(du -h看到的大小就是使用大小)。
例: qcow2 转为 vmdk 方法是: qcow2 转为 raw ,然后把raw转为vmdk 。也可以直接qcow2转为vmdk
佳能相机上的高保真用的就是这格式。RAW的原意就是“未经加工”。可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据。RAW理解为“数字底片”
缺点:不支持snapshot快照。
2)cow、qcow、qcow2
cow格式:还没有成熟,就被放弃了。后来被qcow格式所取代。
qcow格式:刚刚出现的时候有比较好的特性,但其性能和raw格式对比还是有很大的差距,目前已经被新版本的qcow2取代。
qcow2格式:现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw裸格式的性能。qcow2格式支持snapshot快照,可以在镜像上做多个快照,具有以下优点:更小的存储空间;支持创建image镜像;支持多个snapshot快照,对历史snapshot进行行管理;支持zlib的磁盘压缩;支持AES的加密。
3)vmdk
vmdk格式:VMware的格式,整体性能最好,因为VMware就是做虚拟化起家。从性能和功能上来说,vmdk应该算最出色的,由于vmdk结合了VMware的很多能力,目前来看,KVM和XEN使用这种格式的情况不是太多。但就VMware的企业级虚拟化Esxi来看,它的稳定性和各方面的能力都很好。
(2).常用镜像格式转换
格式转换使用qemu-img convert -f [源镜像格式] -O [目标镜像格式] [源镜像地址] [目标镜像地址]
例如,将centos7.0由qcow2格式转换为raw格式
1 2 3 4 5 6 | [root@youxi1 ~]# qemu-img convert -f qcow2 -O raw / var /lib/libvirt/images/centos7.0.qcow2 / var /lib/libvirt/images/centos7.0.raw [root@youxi1 ~]# qemu-img info / var /lib/libvirt/images/centos7.0.raw image: / var /lib/libvirt/images/centos7.0.raw file format: raw //可以看到格式已经变了 virtual size: 10G (10737418240 bytes) disk size: 1.3G |
注意:如果修改了镜像格式,需要去修改其相应的配置文件才能使用。
修改配置文件的方法一:该方法不需要重启libvirtd服务
1 2 3 4 | [root@youxi1 ~]# virsh edit centos7.0 //修改第33~34行 <driver name= 'qemu' type= 'raw' /> <source file= '/var/lib/libvirt/images/centos7.0.raw' /> |
修改配置文件的方法二:该方法需要重启libvirtd服务
1 2 3 4 5 | [root@youxi1 ~]# vim /etc/libvirt/qemu/centos7.0.xml //修改第40~41行 <driver name= 'qemu' type= 'raw' /> <source file= '/var/lib/libvirt/images/centos7.0.raw' /> [root@youxi1 ~]# systemctl restart libvirtd |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性