基于qcow2磁盘的KVM虚拟机管理
2015-11-04 TsengYia#126.com http://tsengyia.blog.chinaunix.net/
系统环境:
Deepin 2014.3 [3.13.0-49-generic]
KVM虚拟机两种磁盘镜像格式:
1)raw是QEMU默认的磁盘镜像格式,直接作为一个块设备给虚拟机使用;建立一个20G的raw格式的磁盘文件,ls看的时候就是20G,但是用du来看占用会很小。
2)qcow2是另一种磁盘镜像格式,在OpenStack中有用到,对于一个20G的qcow2格式的磁盘文件,无论用ls还是du来看,都是很小的。
一般认为raw格式的磁盘会比qcow2格式的IO效率高一些,有测试表明raw比qcow2高10~25%;但是raw格式不支持快照,而且在需要移动、备份虚拟机的时候,会消耗很多的数据量,比如cp、tar、scp之类的都会很麻烦。而qcow2格式在这些方面要出色很多。
qcow2基本应用————
KVM虚拟机的快速复制:1个模板机(原始磁盘) --> 多个新虚拟机(增量镜像盘)
KVM虚拟机的备份:1个虚拟机 <--> 多个状态备份(快照1、快照2、……)
##################################################################
一、qemu-img基本操作
1. raw磁盘与qcow2磁盘的格式转换
用法:qemu-img convert -c -O qcow2 disk.raw disk.qcow2
qemu-img convert -c -O raw disk.qcow2 disk.raw
选项 -c 表示压缩、-O 指定输出格式
[root@svr5 kvmdisk]# dd if=/dev/zero of=test.img bs=1M count=8000 //新建raw格式磁盘文件
.. ..
[root@svr5 kvmdisk]# qemu-img convert -c -O qcow2 test.img test.qcow2 //转换格式
.. ..
[root@svr5 kvmdisk]# ls -lh test.* //对比两种格式的文件大小
-rw-r--r-- 1 root root 7.9G 11月 4 13:19 test.img
-rw-r--r-- 1 root root 193K 11月 4 13:22 test.qcow2
2. 创建新的qcow2磁盘镜像
用法:qemu-img create -f 磁盘类型 磁盘文件名 磁盘大小
[root@svr5 kvmdisk]# qemu-img create -f qcow2 centos6-00.qcow2 16G //新建qcow2格式磁盘文件
.. ..
[root@svr5 kvmdisk]# ls -lh centos6-00.qcow2 //确认文件大小
-rw-r--r-- 1 root root 193K 11月 4 13:08 centos6-00.qcow2
[root@svr5 kvmdisk]# qemu-img info centos6-00.qcow2 //查看磁盘镜像信息
image: centos6-00.qcow2
file format: qcow2
virtual size: 16G (17179869184 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
3. 为qcow2磁盘建立增量镜像文件
用法:qemu-img create -f qcow2 -b 原始磁盘文件 增量磁盘文件
应用:原始磁盘文件
[root@svr5 kvmdisk]# qemu-img create -f qcow2 -b centos6-00.qcow2 centos6-add1.qcow2
.. ..
[root@svr5 kvmdisk]# qemu-img create -f qcow2 -b centos6-00.qcow2 centos6-add2.qcow2
.. ..
[root@svr5 kvmdisk]# qemu-img info centos6-add1.qcow2
image: centos6-add1.qcow2
file format: qcow2
virtual size: 16G (17179869184 bytes)
disk size: 196K
cluster_size: 65536
backing file: centos6-00.qcow2
Format specific information:
compat: 1.1
lazy refcounts: false
[root@svr5 kvmdisk]# ls -lh centos6-add*
-rw-r--r-- 1 root root 193K 11月 4 13:27 centos6-add1.qcow2
-rw-r--r-- 1 root root 193K 11月 4 13:28 centos6-add2.qcow2
4. 针对qcow2磁盘的快照管理
1)建立快照 ———— 备份
用法:qemu-img snapshot -c 快照名 原始磁盘文件
[root@svr5 ~]# cd /kvmdisk/
[root@svr5 kvmdisk]# qemu-img snapshot -c centos6-snap1 centos6-00.qcow2
.. .. //使用一段时间以后
[root@svr5 kvmdisk]# qemu-img snapshot -c centos6-snap2 centos6-00.qcow2
2)查看快照
用法:qemu-img snapshot -l 原始磁盘文件
[root@svr5 kvmdisk]# qemu-img snapshot -l centos6-00.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 centos6-snap1 0 2015-11-04 15:05:56 00:00:00.000
2 centos6-snap2 0 2015-11-04 15:16:02 00:00:00.000
3)恢复快照 ———— 还原
用法:qemu-img snapshot -a 快照名 原始磁盘文件
[root@svr5 kvmdisk]# qemu-img snapshot -a centos6-snap1 centos6-00.qcow2
4)删除快照
用法:qemu-img snapshot -d 快照名 原始磁盘文件
[root@svr5 kvmdisk]# qemu-img snapshot -d centos6-snap2 centos6-00.qcow2
[root@svr5 kvmdisk]# qemu-img snapshot -l centos6-00.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 centos6-snap2 0 2015-11-04 15:05:56 00:00:00.000
二、在KVM虚拟机中的应用
1. 转换现有虚拟机(raw-->qcow2)
要点:转换出新格式磁盘,然后调整虚拟机的磁盘设置
[root@svr5 ~]# virsh destroy cos6 //关闭虚拟机
[root@svr5 ~]# qemu-img convert -c -O qcow2 /kvmdisk/cos6.img /kvmdisk/cos6.qcow2 //转磁盘格式
[root@svr5 ~]# virsh edit cos6 //修改虚拟机配置
.. ..
//改磁盘类型
//改磁盘文件路径
.. ..
[root@svr5 ~]# virsh start cos6 //重新开启虚拟机
[root@svr5 ~]# virt-viewer cos6 & //确保新的虚拟机可正常使用
[root@svr5 ~]# rm -rf /kvmdisk/cos6.img //删除旧的磁盘文件
2. 基于qcow2磁盘新建虚拟机
要点:先建磁盘,再建配置(virt-manager或virt-install均可),导入已有磁盘
[root@svr5 kvmdisk]# qemu-img create -f qcow2 /kvmdisk/cos6-00.qcow2 16G
.. ..
[root@svr5 kvmdisk]# virt-install --name cos6-00 --ram 1024 --vcpus 1 --disk path=/kvmdisk/cos6-00.qcow2,format=qcow2 --network network=network1 --import
—— 若要直接装系统,则需要将--import改成--cdrom、--location、--pxe等方式并提供相应资源
[root@svr5 kvmdisk]# virsh list
Id 名称 状态
----------------------------------------------------
13 cos6-00 running
3. 根据qcow2增量盘快速新建虚拟机
要点:模板机的磁盘作为原始备份(可U盘携带),增量盘提供给新虚拟机使用。
[root@svr5 ~]# virsh destroy cos6-00 //关闭模板机
[root@svr5 ~]# qemu-img create -f qcow2 -b /kvmdisk/cos6-00.qcow2 /kvmdisk/cos6-s1.qcow2
.. ..
[root@svr5 ~]# virsh edit cos6-00 //调用模板机配置做更改
cos6-s1 //改成新虚拟机名
8b1685d5-9ec2-240a-3753-b40be070bd53 //改UUID,可用uuidgen工具生成
.. ..
//确认磁盘类型
//改磁盘文件路径(增量盘)
.. ..
.. ..
//改网卡MAC地址
.. ..
[root@svr5 ~]# virsh list --all //确认新生成的新虚拟机
Id 名称 状态
----------------------------------------------------
- cos6-00 关闭
- cos6-s1 关闭
.. ..
4. 基于快照的虚拟机备份、还原
———— 针对采用qcow2格式的虚拟机磁盘,用法参考前面的基本操作。
##################################################################
阅读(3699) | 评论(0) | 转发(0) |