KVM之实现批量创建KVM虚拟机

KVM之通过virsh制作image 实现批量创建KVM虚拟机

*******通过KVM虚拟机xml模板文件创建虚拟机(制作一个raw格式的image,并安装Ubuntu操作系统)******************
一、准备工作
1、准备一个KVM虚拟机配置文件模板
KVM虚拟机配置文件模板文件已上传至附件:kvm_vm_raw_template.xml
复制一份虚拟机配置文件模板:kvm_vm_raw_template.xml
2、确定image的存储路径
3、创建raw格式的image文件
4、准备ubuntu14.4的ISO文件

二、定义kvm_vm_raw_template.xml虚拟机配置文件
注意:xml文件中的所有“%%”均为变量,比如:%VM_NAME%
通过sed 替换变量,这时候,虚拟机名称为:ubuntu14.04_temp

1、虚拟机整体信息配置
  <name>%VM_NAME%</name> 虚拟机名字
  <uuid>%UUID%</uuid>    UUID值
  <memory>1048576</memory>    内存总大小,已KB为单位
  <currentMemory>1048576</currentMemory>    当前内存大小
  <vcpu>1</vcpu>    CPU数量
配置如下:
sed -i "s,%VM_NAME%,ubuntu14.04_temp,g" ubuntu14.04.xml

通过uuidgen命令生成UUID值
uuid=`uuidgen`
sed -i "s,%UUID%,$uuid,g" ubuntu14.04.xml

2、系统信息配置
<os>
    <type arch='x86_64' machine='pc-0.14'>hvm</type> 系统架构和机器类型,hvm代表是基于硬件虚拟化,如要查看支持的机器类型:qemu-system-x86_64 -M ?
    <boot dev='hd'/>    启动介质,首先使用hard disk作为首选启动介质,比如cdrom,floppy
    <bootmenu enable='yes'/>    是否开启启动选项菜单,虚拟机启动时可按F12进入启动菜单
  </os>


3、创建image文件和配置
3.1、创建一个raw格式image
qemu-img create -f raw ubuntu14.04.raw 20G

sed -i "s,%IMAGE_PATH%,/datapool/vm/ubuntu14.04.raw,g" ubuntu14.04.xml

<disk type='file' device='disk'>
      <driver type='raw' cache='none'/>
      <source file='/datapool/vm/ubuntu14.04.raw'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </disk>


4、挂载ISO
    <disk type='file' device='cdrom'>
      <driver type='raw' cache='none'/>
      <source file='/datapool/iso/ubuntu-14.04.3-server-amd64.iso'/> #指定ISO文件路径
      <target dev='hda' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>

5、虚拟网卡
随机生成mac地址命令:openssl rand -hex 6 | sed 's/(..)/1:/g; s/.$//'
40:d9:44:0c:55:ac

<interface type='bridge'>
      <mac address='40:d9:44:0c:55:ac'/>
      <source bridge='br100'/>
      <target dev='vnet0'/>
      <alias/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

6、定义虚拟机
virsh define ubuntu14.04.xml    定义虚拟机,define告诉libvirt,要被libvirt管理

#查看虚拟机列表
root@kvmhost1:/datapool/vm# virsh list --all
 Id    名称                        状态
----------------------------------------------------
 -    ubuntu14.04_temp              关闭

#启动虚拟机
virsh start ubuntu14.04_temp

7、vnc查看虚拟机,#查看VNC端口
root@kvmhost1:/datapool/vm# virsh vncdisplay ubuntu14.04_temp   
:0

安装vncviewer工具
apt-get -y install vncviewer
vncviewer 192.168.89.3:0    连接,注意这里的IP地址为br100的IP

8、接着开始安装操作系统,当操作系统和需要的软件安装好之后,将虚拟机关闭,并且将虚拟机raw格式image保存

至此,一个raw格式image文件就已经创建完成,而且操作系统也完成安装,等会利用raw格式的image作为backing_file,批量创建qcow2磁盘(作为虚拟机的磁盘)

***************************利用raw格式image作为backing_file,批量创建qcow2磁盘(作为虚拟机的磁盘)********************************
一、批量创建ubuntu虚拟机解决方案:
方案1、手动安装,繁琐、蛋疼
方案2、直接复制,复制已经安装好系统的raw格式image文件,需要创建多少台虚机就复制多少份,分别利用备份文件创建虚拟机,但主要的时间会花费在复制image上
方案3、qcow2快速创建,利用已经安装好系统的raw格式image文件作为backing_file文件,需要创建多少台虚机就复制多少份qcow2格式image,再分别利用qcow2文件创建虚拟机,时间花费非常少

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/79a135a42b20e6b7b66d44cc7ffd90a5.html