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,如需转载请自行联系原作者




相关文章
|
1月前
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
2月前
|
KVM 虚拟化
虚拟化技术概述及KVM环境安装
关于虚拟化技术概述及KVM环境安装的教程,涵盖了虚拟化的定义、分类、管理工具,以及KVM的系统需求、安装步骤和使用指南。
77 11
虚拟化技术概述及KVM环境安装
|
1月前
|
安全 KVM 虚拟化
OpenEuler 中配置 KVM 虚拟化环境指南
本文档详细介绍了如何在OpenEuler系统中配置和管理KVM虚拟化环境,包括环境准备、组件安装、虚拟机安装及管理命令等,适合初学者和有经验的用户。内容覆盖了从桥接网卡配置到虚拟机的安装与管理,以及常见问题的解决方法,帮助用户高效利用虚拟化技术。
|
3月前
|
Linux KVM 虚拟化
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
|
6月前
|
存储 Linux KVM
虚拟化技术之KVM安装与使用
虚拟化技术之KVM安装与使用
|
6月前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
101 0
|
6月前
|
大数据 Linux KVM
【云计算与大数据技术】虚拟化技术、开源技术Xen、KVM、OpenVZ的讲解(图文解释 超详细)
【云计算与大数据技术】虚拟化技术、开源技术Xen、KVM、OpenVZ的讲解(图文解释 超详细)
254 0
|
存储 监控 网络安全
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
【KVM虚拟化】· 虚拟机的冷迁移和热迁移
1240 0
|
KVM 虚拟化 Windows
【KVM虚拟化】· KVM中的网络
【KVM虚拟化】· KVM中的网络
263 0