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文件创建虚拟机,时间花费非常少