KVM虚拟机的快速添加及删除
2014-05-02 TsengYia#126.com http://tsengyia.blog.chinaunix.net/
KVM虚拟化平台,已准备好模板虚拟机系统(rhel59),使用单个LV逻辑卷存储。
通过为模板系统创建虚拟机快照,再使用virsh工具导出、建立新的xml配置文件,快速生成新的虚拟机节点。
×× 若出现 virsh console 连接故障,可参考以下设置调整客户机:
/boot/grub/grub.conf,在 kernel 行添加 console=ttyS0
/etc/securetty,添加 ttyS0
##############################################################################
系统环境:
Ubuntu Kylin 14.04 [3.13.0-24-generic]
软件环境:
bridge-utils 1.5-6ubuntu2
libvirt-bin 1.2.2-0ubuntu
qemu 2.0.0~rc1+dfs
virt-manager 0.9.5-1ubuntu
virt-viewer 0.5.6-2
##############################################################################
一、快速新建虚拟机
1. 建立可重用脚本
tsengyia@xyzhost:~$ sudo vim /usr/local/sbin/kvm-add
#!/bin/bash
#### by TsengYia 2014.05 ####
if [ $# -ne 1 ]
then
echo "Usage:$0 "
exit 1
else
NODE1="rhel59" # 模板虚拟机的名称
NODE2="$1" # 将要新建的kvm虚拟机的名称
KVM_VG="/dev/kvmvg" # kvm专用的LVM卷组
# 生成新的UUID、MAC地址
UUID_NEW=$(uuidgen)
MAC_NEW="52:54:00:f8:$[RANDOM%90+10]:$[RANDOM%90+10]"
# 新建快照卷
lvcreate -L 10G -n $NODE2 -s $KVM_VG/$NODE1
# 导出模板系统的xml配置
virsh dumpxml $NODE1 > "/tmp/$NODE2.xml"
# 建立快照xml配置
sed -i "//s/$NODE1/$NODE2/" "/tmp/$NODE2.xml"
sed -i "//c$UUID_NEW" "/tmp/$NODE2.xml"
sed -i "/" "/tmp/$NODE2.xml"
sed -i "/" "/tmp/$NODE2.xml"
# 定义新的kvm虚拟机
virsh define /tmp/$NODE2.xml && rm -rf /tmp/$NODE2.xml
fi
tsengyia@xyzhost:~$ sudo chmod 755 /usr/local/sbin/kvm-add
2. 运行测试效果
tsengyia@xyzhost:~$ sudo kvm-add rhel59_new1
Logical volume "rhel59_new1" created
定义域 rhel59_new1(从 /tmp/rhel59_new1.xml)
tsengyia@xyzhost:~$ sudo kvm-add rhel59_new2
Logical volume "rhel59_new2" created
定义域 rhel59_new2(从 /tmp/rhel59_new2.xml)
tsengyia@xyzhost:~$ sudo virsh list --all
Id 名称 状态
----------------------------------------------------
- rhel59 关闭
- rhel59_new1 关闭
- rhel59_new2 关闭
二、快速删除虚拟机
1. 建立可重用脚本
tsengyia@xyzhost:~$ sudo vim /usr/local/sbin/kvm-del
#!/bin/bash
#### by TsengYia 2014.05 ####
if [ $# -ne 1 ]
then
echo "Usage:$0 "
exit 1
else
NODE="$1" # 将要删除的kvm虚拟机的名称
KVM_VG="/dev/kvmvg" # kvm专用的LVM卷组
virsh destroy $NODE 2> /dev/null # 关闭待删除节点
virsh undefine $NODE # 取消节点定义
lvremove -f $KVM_VG/$NODE # 删除逻辑卷
fi
tsengyia@xyzhost:~$ sudo chmod 755 /usr/local/sbin/kvm-del
2. 运行测试效果
tsengyia@xyzhost:~$ sudo kvm-del rhel59_new1
域 rhel59_new1 已经被取消定义
Logical volume "rhel59_new1" successfully removed
tsengyia@xyzhost:~$ sudo virsh list --all
Id 名称 状态
----------------------------------------------------
- rhel59 关闭
- rhel59_new2 关闭
##############################################################################
阅读(2292) | 评论(0) | 转发(0) |