kvm虚拟化中用增量镜像创建vm的脚本(已测OK)

简介:
#kvm虚拟化中用增量镜像(差量镜像)创建vm的脚本
说明:本例是通过现有的一台kvm虚拟机vmx0的磁盘镜像vmx0.img作为基础镜像(后备镜像)来创建增量镜像vmx?.img(差量镜像),新虚拟机vmx?的磁盘使用增量镜像(差量镜像),新虚拟机的数据写入到增量镜像中,基础镜像vmx0.img(后备镜像)设置为只读且不写入任何新数据。

#创建新虚拟机vmx0,并安装好centos7.3系统,作为模板:
mkdir   -pv   /vmdisk/     #创建存放磁盘镜像的目录

virt-install \
   --name=vmx0  \
   --ram 1024  \
   --vcpus=1 \
   --disk path=/vmdisk/vmx0.img,size=5,format=qcow2  \
   --vnc --vncport=5910 --vnclisten=0.0.0.0 \
   --
location=ftp://192.168.10.7/dvd

--------------------------------------------------------------------

#kvm虚拟化中用增量镜像创建vm的脚本
vi    kvmz.sh    脚本如下(脚本已测OK-金,可直接复制代码)
#--------------------------------------
#!/bin/bash
#定义变量
virsh  list  --all
simg=vmx0
svm_name=vmx0
dvname=vmx5
vport=5915
mac="00:"`echo $RANDOM | md5sum | sed 's/\(..\)/&:/g' | cut -c1-14`
vmuid=$(uuidgen)
echo $dvname
echo $mac
echo $vmuid


#提示用户输入信息
read  -p  '请输入虚拟机的模板机名称,例:vmx0:'   svm_name
read  -p  '请输入新虚拟机的名称,例:vmx0:'   dvname
read  -p  '请输入新虚拟的vnc端口,例:5912:'   vport

#用simg基础镜像来创建增量镜像
#-b指定后备镜像(即基础镜像),-f指定格式。只有格式为qcow2才能实现后备镜像和增量镜像功能。
mkdir   -pv   /vmdisk
cd   /vmdisk
qemu-img  create  -b ${svm_name}.img -f qcow2  ${dvname}.img
chmod  -v  444  ${svm_name}.img
qemu-img  info   ${svm_name}.img
qemu-img  info   ${dvname}.img


#编辑新虚拟机的xml配置文件
cd  /etc/libvirt/qemu/
cp  -pv  ${svm_name}.xml  ${dvname}.xml
sed  -i   "/uuid/c\<uuid>$vmuid</uuid>"   ${dvname}.xml
sed  -i   "s/${svm_name}/${dvname}/"   ${dvname}.xml
sed  -i   "/mac address/c\<mac address='$mac'/>"   ${dvname}.xml
sed  -i   "s/5910/${vport}/"  ${dvname}.xml
grep  $vmuid   ${dvname}.xml
grep  $mac    ${dvname}.xml
grep  $dvname    ${dvname}.xml

grep  $vport    ${dvname}.xml

#根据虚拟机的xml模板文件创建新虚拟机
virsh   define   /etc/libvirt/qemu/${dvname}.xml
virsh  start   ${dvname}
virsh  autostart   ${dvname}
virsh  list  --all
ls   /vmdisk/

#功能说明
#virsh  start   ${dvname}   --console    #启动虚拟机并进入console控制台
#virsh  console  ${dvname}    #按ctl+]退出console控制台
#virt-viewer   ${dvname}

read  -p  "按回车键进入${dvname}的console控制台,进入console后按ctrl+]退出..."
virsh  console  ${dvname} 


###脚本编写完毕
#--------------------------------------

测试脚本的运行:
chmod   +x   kvmz.sh

sh  kvmz.sh





      本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1964939,如需转载请自行联系原作者




相关文章
|
机器学习/深度学习 Linux KVM
Debian11安装KVM虚拟化并安装Centos
grep --color --perl-regexp 'vmx | svm' /proc/cpuinfo 首先检查其是否支持虚拟化. 分别用以下条命令查看
1116 0
Debian11安装KVM虚拟化并安装Centos
|
机器学习/深度学习 存储 Linux
CentOS 7 部署 KVM 虚拟化
CentOS 7 部署 KVM 虚拟化
630 0
|
安全 IDE KVM
[ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序) 因为这也不是我的本职工作,只是这次恰巧碰到了,帮着解决了以下,我就没深究原理了,问我原理可能我也不知道,只是这个操作步骤吧,亲测有效。
456 0
[ 云计算相关 ] KVM虚拟化平台windows虚拟机迁移到openstack虚拟化平台(KVM虚拟化环境中Windows虚拟机安装Virtio驱动程序)
|
16天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
27 0
|
10月前
|
存储 监控 网络安全
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
846 0
|
10月前
|
KVM 虚拟化 Windows
【KVM虚拟化】· KVM中的网络
【KVM虚拟化】· KVM中的网络
196 0
|
10月前
|
存储 KVM 文件存储
【KVM虚拟化】· 存储池、存储卷
【KVM虚拟化】· 存储池、存储卷
377 0
|
10月前
|
存储 监控 安全
【KVM虚拟化】· virsh文件管理
【KVM虚拟化】· virsh文件管理
318 0
|
10月前
|
XML Shell API
【KVM虚拟化】· virsh管理命令
【KVM虚拟化】· virsh管理命令
242 0
|
10月前
|
XML 存储 安全
【KVM虚拟化】· 命令行KVM安装linux
【KVM虚拟化】· 命令行KVM安装linux
126 0