kvm-磁盘基础和创建raw磁盘、raw转为qcow2格式命令介绍
1、基础知识
1.1、磁盘模式
1.1.1、磁盘模式介绍
根据存储数据方式的不同可以分为两种格式,一种是稀疏模式、一种是全镜像模式,全镜像模式无法做快照,IO层面是有qemu模拟的,CPU和内存是有KVM实现的
1.1.2、常用模式类型
raw:
指定多大就创建多大,直接占用指定大小的空间:老牌的格式了,性能上来说的话还是不错的。由于原生的裸格式,不支持snapshot。在虚拟机迁移方面还是有很大的限制。
qcow2:
是openstack默认也是比较推荐的格式,将差异保存在一个文件,文件比较小而且做快照也比较小,空间是动态增长的.
现在比较主流的一种虚拟化镜像格式,支持快照功能。
1.2、命令介绍
# 查看虚拟机支持的磁盘格式种类 qemu-img --help # 支持的种类 Supported formats: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug
1.3、磁盘命令语法
1.3.1、创建磁盘
qemu-img create [-q] [-f fmt] [-o options] filename [size] # 查看某个具体磁盘格式的帮助信息: qemu-img create -f qcow2 -o ? file.qcow # 注意:在“-o”选项中各个选项用逗号来分隔
1.3.2、查看磁盘
qemu-img info 磁盘名称
1.3.3、磁盘转换
qemu-img convert -f 原格式 旧磁盘名称 -O 转换后格式 新磁盘名称
2、实战
2.1、创建一个3G大小的raw格式的虚拟磁盘CentOS-8-x86_64.raw
2.1.1、基本动作执行命令
qemu-img create -f raw /data/CentOS-8-x86_64.raw 2G
2.1.2、创建一个基于前后端模式的qcow2的磁盘文件
qemu-img create -f qcow2 -o backing_file=/data/CentOS-8-x86_64.raw front-CentOS-8-x86_64.qcow2 2G
2.1.3、检查效果
# ls /data/ CentOS-8-x86_64.raw
2.2、raw转为qcow2格式
2.2.1、raw磁盘转换qcow2
cd /opt && qemu-img convert -f raw CentOS-8-x86_64.raw -O qcow2 CentOS-8-x86_64.qcow2
2.2.2、检查效果
# qemu-img info /opt/CentOS-8-x86_64.qcow2 image: /opt/CentOS-8-x86_64.qcow2 file format: qcow2 virtual size: 10 GiB (10737418240 bytes) disk size: 1.61 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false # ll /opt/ -h total 3.3G drwxr-xr-x 2 root root 4.0K May 22 11:45 ./ drwxr-xr-x 21 root root 4.0K May 21 22:59 ../ -rw-r--r-- 1 root root 1.7G May 22 11:45 CentOS-8-x86_64.qcow2 -rw-r--r-- 1 libvirt-qemu kvm 10G May 22 11:44 CentOS-8-x86_64.raw
2.2.3、虚拟机磁盘硬盘为qcow2格式
# virsh edit CentOS-8-x86_64 <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/opt/CentOS-8-x86_64.qcow2'/> <backingStore/>
2.2.4、开启虚拟机
virsh start CentOS-8-x86_64
2.2.5、查看虚拟机是否启动成功