Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2263795
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2014-05-03 02:08:09


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                    关闭

##############################################################################
阅读(2159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~