Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2262000
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: 虚拟化

2015-11-04 16:14:20


基于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格式的虚拟机磁盘,用法参考前面的基本操作。


##################################################################


阅读(3506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~