一、KVM磁盘的格式介绍
1.raw磁盘格式介绍
原始格式是磁盘映像的纯二进制映像,非常便于移植。在支持稀疏文件的文件系统上,这种格式的图像只使用其中记录的数据实际使用的空间。你随便dd一个file就模拟了一个raw格式的镜像。由于裸的彻底,性能上来说的话还是不错的。目前来看,KVM和XEN默认的格式好像还是这个格式。因为其原始,有很多原生的特性,例如直接挂载也是一件简单的事情。
(1)格式简单支持镜像格式的转换,平时也会被用在中间格式转换,
(2)支持磁盘容量的扩容和减少
(3)不支持创建snapshot(虚拟机快照),
它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案。然而,也正因为它不存储元数据,因此不能支持某些高级特性,比如快照和压缩等
2.qcow2磁盘格式介绍
现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw裸格式的性能,对于qcow2的格式,几点还是比较突出的,qcow2的snapshot,可以在镜像上做N多个快照
按需进行分配磁盘空间,不管文件系统是否支持
(1)支持快照
(2)支持zlib的磁盘压缩
(3)支持AES的加密
3.vmdk磁盘格式介绍(扩展)
VMDK(VMWareVirtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统)。一个VMDK文件代表VMFS在虚拟机上的一个物理硬盘驱动。所有用户数据和有关虚拟服务器的配置信息都存储在VMDK文件中,VMware环境当中默认使用的磁盘格式。
二、磁盘格式转换
#创建一块qcow2的虚拟硬盘 [root@kvm01 ~]# qemu-img create -f qcow2 test.qcow2 2G Formatting 'test.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 lazy_refcounts=off [root@kvm01 ~]# ll -h -rw-r--r-- 1 root root 193K 2020-07-30 19:53 test.qcow2 #查看硬盘信息 [root@kvm01 ~]# qemu-img info test.qcow2 image: test.qcow2 file format: qcow2 virtual size: 2.0G (2147483648 bytes) disk size: 196K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false #将raw格式转换为qcow2格式 [root@kvm01 /opt]# qemu-img convert -f raw -O qcow2 Centos7_db01.raw Centos7_db01.qcow2 [root@kvm01 /opt]# ll -h -rw-r--r-- 1 root root 1.4G 2020-07-30 19:53 Centos7_db01.qcow2 #修改配置文件 [root@kvm01 /opt]# virsh edit Centos7_db01 <driver name='qemu' type='qcow2'/> <source file='/opt/Centos7_db01.qcow2'/> [root@kvm01 /opt]# virsh shutdown Centos7_db01 Domain Centos7_db01 is being shutdown #重新启动虚拟机,确认硬盘可用 [root@kvm01 /opt]# virsh start Centos7_db01 Domain Centos7_db01 started [root@kvm01 /opt]# virsh list --all Id Name State ---------------------------------------------------- 2 Centos7_db01 running - centos6_web01 shut off [root@kvm01 /opt]# virsh console Centos7_db01 [root@web01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda3 8.5G 1001M 7.6G 12% / devtmpfs 485M 0 485M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 6.7M 489M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/vda1 509M 120M 389M 24% /boot tmpfs 100M 0 100M 0% /run/user/0 [root@web01 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 253:0 0 10G 0 disk ├─vda1 253:1 0 512M 0 part /boot ├─vda2 253:2 0 1G 0 part [SWAP] └─vda3 253:3 0 8.5G 0 part /