COW技术原理(Copy On Write,写时复制)
——针对随时变化的数据进行备份
Ø 直接映射原始盘的数据内容
Ø 当原始盘的旧数据有修改时,在修改之前自动将旧数据存入前端盘
Ø 对前端盘的修改不回写到原始盘
前端盘:永远显示在制作出前端盘那一瞬间原始盘所有数据内容
###############################################################################
镜像管理
常用虚拟机的磁盘镜像类型:RAW QCOW2
特点/类型 | RAW | QCOW2 |
KVM默认 | 否 | 是 |
I/O效率 | 高 | 较高 |
占用空间 | 大 | 小 |
压缩 | 不支持 | 支持 |
后端盘复用 | 不支持 | 支持 |
快照 | 不支持 | 支持 |
创建虚拟机磁盘镜像
创建新的镜像盘文件:qemu-img create -f 类型 磁盘路径 [大小]
#qemu-img create -f qcow2 /var/lib/libvirt/images/disk1.qcow2 20G
查询镜像盘文件的信息:qemu-img info 磁盘路径
#qemu-img info /var/lib/libvirt/images/disk1.qcow2
快建qcow前端盘:qemu-img通过-b选项复用指定后端盘
qemu-img create -f 类型 -b 后端盘 前端盘
生成前端盘(增量盘),-f 指定磁盘文件类型 -b 指定后端盘(原始盘)
qemu-img convert -O 新类型 旧磁盘 新磁盘
快建新虚拟机
准备模板虚拟机
模板机的选择:可以用现有的虚拟机,也可再安装一台新虚拟机
模板机的初始化;1)virt-install 新建及安装
2)预装软件/系统优化/关闭SELinux等
3)生产环境可以标记/.unconfigured,方便新虚拟机的配置(相当于出厂设置,提示用户初始化)
4)备份好模板磁盘、xml配置文件
5)删除模板机(undefine)
配置新虚拟机
拷贝模板机的xml配置:按照需要修改,并据此定义新虚拟机
新虚拟机的交付使用:正常运行快建的新虚拟机
检查已有装好的操作系统,登入后与模板机一样
用户自行修改主机名/IP地址等参数
###############################################################################
快速新建虚拟机(真机上)
注意:模板虚拟机删除 Channel设备,会影响快速重建虚拟机操作(有唯一标示的作用)
操作:虚拟机关机;通过图形进行删除channel设备
确保虚拟机example已经关机# virsh list --all | grep example
1.创建新的虚拟磁盘文件——利用原始盘,生成增量盘
# cd /var/lib/libvirt/images/
# qemu-img create -f qcow2 -b example.qcow2 test02.qcow2
查看增量盘的信息# qemu-img info /var/lib/libvirt/images/test02.qcow2
2.创建新的虚拟机描述文件
# cd /etc/libvirt/qemu/
# cp example.xml test02.xml
3.修改虚拟机描述文件
# vim test02.xml //修改:“虚拟机名称”、“UUID”、“磁盘路径”、“网卡MAC”
4.导入新虚拟机信息
# virsh define /etc/libvirt/qemu/test02.xml
# virsh list --all
三合一修改
# virsh edit test02
修改四部分:虚拟机的名称、UUID、虚拟磁盘文件、网卡MAC
开启新虚拟机# virsh start test02
虚拟机快建技术 ——
1. 利用qcow2快速复制新虚拟机的磁盘
2. 为新虚拟机准备xml配置文件
3. 定义新的虚拟机
##############################################################################
快建虚拟机的思路 ——
1. 准备一个模板虚拟机
2. 以模板机为参照,快速创建新虚拟机
模板机的XML配置 --> 新虚拟机的配置
模板机的虚拟磁盘 --> 新虚拟机的磁盘
三步快建虚拟机
准备模板虚拟机资源(磁盘、xml配置)
[root@room9pc13 ~]# mkdir /kvmdata
[root@room9pc13 ~]# cd /var/lib/libvirt/images/
[root@room9pc13 images]# cp .rh7_template.img /kvmdata/ 模板磁盘
[root@room9pc13 images]# cp .rhel7.xml /kvmdata/ 模板配置
二、快建新虚拟机
1)新建前端磁盘
[root@room9pc13 ~]# cd /kvmdata
[root@room9pc13 kvmdata]# qemu-img create -f qcow2 -b .rh7_template.img svr7.qcow2
2)新建虚拟机配置文件
[root@room9pc13 kvmdata]# cp .rhel7.xml /tmp/svr7.xml
[root@room9pc13 kvmdata]# vim /tmp/svr7.xml
.... 修改name、uuid、disk、mac
3)导入/定义新虚拟机
[root@room9pc13 kvmdata]# virsh define /tmp/svr7.xml
###############################################################################
Win2008还原的机制(脚本):
#!/bin/bash
#############
IMG_DIR=/var/lib/libvirt/images/
id=`virsh dominfo win2008 2> /dev/null | grep running`
if [ -n "$id" ];then
/usr/bin/virsh destroy win2008 &> /dev/null
fi
virsh undefine win2008 2> /dev/null
if [ -e /var/lib/libvirt/images/win.img ]; then
rm -rf $IMG_DIR/win.img
fi
echo "正在还原....."
sleep 2
qemu-img create -f qcow2 -b $IMG_DIR/.win2008.img $IMG_DIR/win.img &> /dev/null
virsh define /root/.win2008.xml &> /dev/null
echo "还原成功....."
sleep 2
exit
###############################################################################