当前位置: 首页 > 工具软件 > COW > 使用案例 >

COW技术原理

丁茂
2023-12-01

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

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

 类似资料: