qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:
更小的空间占用,即使文件系统不支持空洞(holes);
支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;
支持快照(snapshot),镜像文件能够包含多个快照的历史;
可选择基于 zlib 的压缩方式
可以选择 AES 加密
Raw 格式与 qcow2 转化
QEMU 软件包里面提供的 qemu-img 工具可用于 image 镜像一些常用操作。
将 raw 格式转化为 qcow2 格式的文件命令如下:qemu-img convert -f raw -O qcow2 test.raw test.raw.qcow2
qcow2 格式的镜像比 Raw 格式文件更小,只有在虚拟机实际占用了磁盘空间时,其文件才会增长,能方便的减少迁移花费的流量,更适用于云计算系统,同时,它还具有加密,压缩,以及快照等 raw 格式不具有的功能。
qemu-img create安装过程
创建qwo2磁盘格式,大小为10G,文件名为lcentos7.qcow2
qemu-img create -f qcow2 lcentos7.qcow2 10G
执行后会在该目录下生成lcentos7.qcow2文件,可以通过如下命令
qemu-img info lcentos7.qcow2
查看详细信息,执行结果如下
image: lcentos7.qcow2file format: qcow2virtual size: 10G (10737418240 bytes)disk size: 196Kcluster_size: 65536Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
创建虚拟机
virt-install --virt-type kvm --name lcentos7 --ram 1024 \> --cdrom=/home/liyubo/attempt/CentOS-7-x86_64-DVD-1804.iso\> --disk=/home/liyubo/attempt/lcentos7.qcow2,format=qcow2 \> --network network=default \> --graphics vnc,listen=0.0.0.0 --noautoconsole \> --os-type=linux
virt-install 参数详解
-n --name= 客户端虚拟机名称
-r --ram= 客户端虚拟机分配的内存
-u --uuid= 客户端UUID 默认不写时,系统会自动生成
-v --hvm 全虚拟化
-p --paravirt 半虚拟化
-l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
--vnc 使用vnc ,另有--vnclient=监听的IP
--vncport =VNC监听的端口
-c --cdrom= 光驱 安装途径
--disk= 使用不同选项作为磁盘使用安装介质
-w NETWORK, --network=NETWORK 连接客户机到主机网络
-s --file-size= 使用磁盘映像的大小 单位为GB
-f --file= 作为磁盘映像使用的文件
--cpuset=设置哪个物理CPU能够被虚拟机使用
--os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
--os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
--host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
--accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
-x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
--nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户
使用virsh create 创建虚拟机
编辑centos7.xml文件,并在aevices标签下包含以下内容
其中.ios文件为系统的安装文件,.img为创建的qcw2文件
使用virsh create 命令创建
virsh create centos7.xml
之后通过 vnc连接,安装系统
系统会安装在.img 文件中,再次启动可以删除img 项