kvm实现快速增量盘模式的克隆脚本
转自:http://zxlwz.blog.51cto.com/6952946/1852424
要求:备份的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.步骤一
[root@room liuwenzhi]# kvm_clone #运行脚本
###########KVM clone ###########
# #
# Welcome Use #
# #
################################
Enter a number :1
2.步骤二
[root@room liuwenzhi]# virsh list --all 查看克隆机器
2 linux7-clone1 closed
3.步骤三
[root@room liuwenzhi]# virsh start linux7-clone1 开机
4.进入系统后修改ip搞定了
[root@room liuwenzhi]#nmtui #我的机器是centos7,所以setup没有,改成nmtui了
[root@room 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=$[RANDOM%]
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
fi
expr $num "+" &>/dev/null
if [ $? -ne ] ;then
echo -e "\033[33mplease input a number !\033[0m"
exit
fi
if [ $num -eq ] ;then
echo -e "\033[33minput a number not range !\033[0m"
exit
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
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
done
最新文章
- MySQL ERROR 1698 (28000) 错误
- 源程序版本管理软件和项目管理软件,Github注册流程
- Java多态:upcast和downcast
- Fedora 21 安装桌面环境
- 安装Ubuntu小计
- ORA-01045: user XXZY lacks CREATE SESSION privilege; logon denied
- “快的打车”创始人陈伟星的新项目招人啦,高薪急招Java服务端/Android/Ios 客户端研发工程师/ mysql DBA/ app市场推广专家,欢迎大家加入我们的团队! - V2EX
- cubieboard 配置WIFI
- 以往CSDN博文目录
- Django2中文文档--目录及介绍部分
- 转-Web Service中三种发送接受协议SOAP、http get、http post
- ORA-12737: Instant Client Light: unsupported server character set CHS16GBK
- windows之如何把iso文件转换为VHD文件
- [macOS开发.NET Core] 一个简单的WEB程序
- Java作业五(2017-10-15)
- python多线程爬取-今日头条的街拍数据(附源码加思路注释)
- HDU6191(01字典树启发式合并)
- INNODB insert buffer 简单分析
- SQL查询日历
- push(),pop(),unshift(),shift()