kvm实现快速增量盘模式的克隆脚本

要求:备份的img磁盘格式只有qcow2格式支持增量盘使用和快照功能
当你的一个虚拟机格式是raw格式时,请先格式转换
如:linux7.raw 是raw格式
qemu-img convert -c -O qcow2 linux7.raw linux7.qcow2

默认的img或硬盘存放在/var/lib/libvirt/images/
默认的xml文件存放在/etc/libvirt/qemu/

脚本:
先创建了一个模板机,怎么创建用KVM创建虚拟机这里省略,阿铭老师都讲的很详细。
我这里创建虚拟的信息如下
ls /var/lib/libvirt/images/
linux7.img   
ls /etc/libvirt/qemu/
linux7.xml   
作为模板机,我不允许或不让别人知道上面那两个文件。
mv /var/lib/libvirt/images/linux7.img /var/lib/libvirt/images/.linux7.img
mv /etc/libvirt/qemu/linux7.xml /etc/libvirt/qemu/.linux7.xml
修改vim /etc/libvirt/qemu/.linux7.xml
在这行修改
为
后续,当要克隆机器后,直接运行脚本克隆即可!
解决问题:
解决了每次克隆完后还要修改xml文件,进系统后还要进行>/etc/udev/70*。
效果图,步骤
1.步骤一
[[email protected] liuwenzhi]# kvm_clone    #运行脚本
      ###########KVM clone ###########
      #                              #
      #       Welcome Use            #
      #                              #
      ################################
Enter a number :1
2.步骤二
[[email protected] liuwenzhi]# virsh list --all  查看克隆机器
2    linux7-clone1                  closed
3.步骤三
[[email protected] liuwenzhi]# virsh start linux7-clone1   开机
4.进入系统后修改ip搞定了
[[email protected] liuwenzhi]#nmtui       #我的机器是centos7,所以setup没有,改成nmtui了

脚本代码
[[email protected] liuwenzhi]# cat kvm_clone
#!/bin/bash

#定义磁盘放置目录
img_dir=/var/lib/libvirt/images/
#定义XML文件放置目录
xml_dir=/etc/libvirt/qemu/
#模板机器IMG
src_name=linux7
src_img=.linux7.img
src_xml=.linux7.xml
menu (){
        abc=3$[RANDOM%8]
        echo -e "\033[${abc};1m      ###########KVM clone ###########\033[0m"
        echo -e "\033[${abc};1m      #                              #\033[0m"
        echo -e "\033[${abc};1m      #       Welcome Use            #\033[0m"
        echo -e "\033[${abc};1m      #                              #\033[0m"
        echo -e "\033[${abc};1m      ################################\033[0m"
}
KVM_CLONE(){
read -p "Enter a number :" num
dst_name=$src_name-clone${num}
dst_img=$src_name-clone${num}.img
dst_xml=$src_name-clone${num}.xml
if [ -z $num ] ;then
        echo -e "\033[33mplease input a number !\033[0m"
        exit 10
fi
expr $num "+" 1 &>/dev/null
if [ $? -ne 0 ] ;then
        echo -e "\033[33mplease input a number !\033[0m"
        exit 11
fi
if [ $num -eq 0 ] ;then
        echo -e "\033[33minput a number not range !\033[0m"
        exit 12
fi
if [ -f $img_dir$dst_img -o -f $xml_dir$dst_xml ] ;then
        echo -e "\033[33mclone--->clone${num} exists,fail!\033[0m"
        exit 13
fi
echo -en "wait ... clone KVM image\t"
qemu-img create -f qcow2 -b $img_dir$src_img $img_dir$dst_img  &>/dev/null
echo -e "\033[32;1m[OK]\033[0m"
echo -en "wait ... Copy KVM xml\t\t"
cat /etc/libvirt/qemu/.linux7.xml > /tmp/kvm.xml
sed -i "//s/$src_name/$dst_name/" /tmp/kvm.xml
sed -i "//c\$(uuidgen)" /tmp/kvm.xml
sed -i "//dev/null
echo -e "\033[32;1m[OK]\033[0m"
echo  "done"
}
while :
do
        menu
        KVM_CLONE        
        exit 0
done
时间: 2024-10-10 21:23:37

kvm实现快速增量盘模式的克隆脚本的相关文章

linux kvm虚拟机快速构建及磁盘类型

KVM命令管理 virsh命令:用来管理各虚拟机的接口命令查看/创建/停止/关闭...支持交互模式格式:virsh 控制指令 [虚拟机名称] [参数] [[email protected] 桌面]# virsh nodeinfo(查看虚拟机服务器的cpu信息)CPU 型号: x86_64CPU: 2CPU 频率: 1900 MHzCPU socket: 2每个 socket 的内核数: 1每个内核的线程数: 1NUMA 单元: 1内存大小: 1906912 KiB[[email protecte

四、emergency模式,rescue模式,克隆虚拟机,Linux机器相互登录

四.emergency模式,rescue模式,克隆虚拟机,Linux机器相互登录一.emergency模式(centos6及之前叫单用户模式)需要在物理机上操作,不能远程操作.前提没有设置grub密码.1.重启系统重启命令:reboot,init 6,shutdown -r now.关机:init 0,poweroff.在开机界面按方向键,选择第一行,按"e(edit)"编辑它.2.进入emergency模式进入的界面就是grub界面.它找到系统里的启动盘,引导硬盘启动加载内核.把光标

KVM虚机克隆脚本

#!/bin/sh ############################################# ###         Auto Clone VM                 ### ###         2014-5-9                      ### ###         Owner: YiQiang.Wei            ### ###         Lastedit: 5-11                ### ###      

红米Note移动版MTP模式修改为U盘模式的教程和方法

相信使用WIN7或者WIN8的朋友对于红米note的MTP传输模式,没什么所谓,但是我们XP党则是麻烦大大了,起码我一直都没办法装好MTP模式所需要的驱动!小米的开发团队真的有点蛇精病啊! 哥还是非常吸引原先的U盘模式,所以特意花了点时间寻找资料,终于成功解决了红米note的MTP模式修改为U盘模式的问题了! 1.必须使用ROOT教程破解权限! 2.安装一个RE管理器,别说你不知道哪里下载哦 3.打开RE管理器,根据下面的这个路径寻找文件data/property/persist.sys.usb

Java 原型模式(克隆模式)

  Java 的设计模式有 23 种,前段时间小编已经介绍了单例模式,由于我们在学习 Spring 的时候在 bean 标签的学习中碰到了今天要讲的原型模式,那么小编就已本文来介绍下原型模式. 原型模式  在java中我们知道通过new关键字创建的对象是非常繁琐的(类加载判断,内存分配,初始化等),在我们需要大量对象的情况下,原型模式就是我们可以考虑实现的方式.  原型模式我们也称为克隆模式,即一个某个对象为原型克隆出来一个一模一样的对象,该对象的属性和原型对象一模一样.而且对于原型对象没有任何

.NET应用架构设计—表模块模式与事务脚本模式的代码编写

阅读目录: 1.背景介绍 2.简单介绍表模块模式.事务脚本模式 3.正确的编写表模块模式.事务脚本模式的代码 4.总结 1.背景介绍 要想正确的设计系统架构就必须能正确的搞懂每个架构模式的用意,而不是胡子眉毛一把抓.现在有一个现象是什么呢,项目的结构从表面上看是很不错,层分的很合理,其实对业务系统来说也就那么几种层设计方法,但是现在很多项目的逻辑架构的设计不是理想,有很多概念大家并不是很了解,当然也许每个人对技术的追求不同罢了.不管你追求不追求,事实我们还是要去往正确的方向努力才对的. 很多人包

KVM——复制xml文件与磁盘文件复制克隆虚拟机

kvm虚拟机克隆有如下两种方式: 1.KVM本机虚拟机直接克隆 2.通过复制xml文件与磁盘文件复制克隆 (适用于异机的静态迁移和状态保存便于以后使用). 本次主要介绍如何复制xml文件与磁盘文件复制克隆虚拟机: 简易版原理图: A(模板)            B(克隆) disk                disk xml                 xml 需要更改内容          会变的内容 udev-mac            uuid yum             

05 【创建型】原型模式 理解克隆对象~

原型模式(克隆对象) 用于创建重复的对象,用克隆对象的方式代替new 关键字的使用. 就好比细胞分裂,最开始的一个细胞通过自我复制,分裂成两个.两个分裂成四个,依次指数增长 这里就涉及到一个概念,就是创建重复的对象,就好比细胞分裂的时候就是在重复创建对象,我们可以让对象实现Cloneable接口 通过父类的clone() 方法进行创建相同的对象,这里的相同是指有相同的属性,但是他们在内存中却有不同的引用存在 代码理解 对象实现Cloneable 重写父类的clone方法 public class

kvm(libivrt)bridge和nat模式共存互通

需求说明: 为了配合项目验收,及验保证收过程的流畅,现将原部署在一台公网服务器的7台kvm 虚拟机迁移至方便携带的线下(dell precision m6800/i7/32G/256SSD+2T). 7台kvm虚拟机中4台是windows7,3台是国产kylin,每台都配有公网IP(目的是为了远程演示).因为项目代码中IP被写死,所以线下vm主机IP 必须使用原公网线上的IP地址:4 台windows,和3台kylin 位于不同的网段,示例: 3. 目前只有两个网段,物理机windows7使用的