5.快建新虚拟机
问题
本案例要求利用LVM逻辑卷来提供虚拟机磁盘,并用来构建模板虚拟机,其中创建并安装RHEL6虚拟机的操作要从命令行来实现。主要任务如下:
1)新建模板虚拟机muban1,名称为muban1,磁盘类型qcow2、大小20G,并配置出厂初始化
2)快建两台新虚拟机,作为后续练习环境,其中一台为svr5.tarena.com、另一台为pc205.tarena.com,完成配置后将新虚拟机关机,做快照备份
方案
新建的qcow2格式磁盘可以直接作为KVM虚拟机的磁盘来使用,不需要格式化。
而从命令行创建并安装虚拟机的操作需要使用virt-install命令,基本用法如下:
virt-install
–name 虚拟机名称 --vcpus=CPU核心数 --ram=内存大小
–disk path=虚拟机磁盘文件路径,format=格式
–network network=网络接口名称 --pxe
如果采用的虚拟机磁盘是默认的RAW格式,则上述操作中的format=可以省略;另外–pxe表示采用PXE方式来装系统,对于非PXE安装来说,应把 --pxe改成 --location=安装源URL。关于virt-install命令的更多用法,可参考man手册页。
步骤
实现此案例需要按照如下步骤进行。
步骤一:为模板虚拟机准备磁盘
新建一个qcow2格式的磁盘镜像文件muban1.qcow2,容量大小设为20G:
[root@kvmsvr ~]# mkdir -p /data/images
[root@kvmsvr ~]# cd /data/images/
[root@kvmsvr images]# qemu-img create -f qcow2 muban1.qcow2 20G
… …
[root@kvmsvr images]# qemu-img info muban1.qcow2
… …
virtual size: 20G (21474836480 bytes)
disk size: 136K
步骤二:为模板虚拟机安装RHEL6操作系统
将虚拟机的名称设为muban1,配单颗CPU、内存1024MB,使用的磁盘为步骤一新建的muban1.qcow2,同时通过PXE的方式安装操作系统:
[root@kvmsvr ~]# virt-install --name muban1
–vcpus=1 --ram=1024
–disk path=/data/images/muban1.qcow2,format=qcow2
–network network=network1 --pxe
开始安装…
创建域… | 0 B 00:00
… …
注意:此处将虚拟机的网卡类型设为隔离的network1,若要设为桥接方式,应该将上述操作中的network=network1改成bridge=br0。
成功新建虚拟机以后,会自动弹出virt-viewer窗口,启动新虚拟机进行装机,如图-3所示。
图-3
后续过程与正常的PXE选择装机一样,此处不再赘述。
步骤三:模板机的出厂设置
为虚拟机muban1装好RHEL6系统以后,可以根据实际需要做一些应用或服务配置方面的调整,最后将其关机作为模板虚拟机(平时应关闭不启用),以便用来快速创建装配好的新虚拟机。比如,建议清空网卡的udev规则文件、删除网卡配置文件中的MAC地址及UUID设置语句。
[root@localhost ~]# > /etc/udev/rules.d/70-persistent-net.rules
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
EVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
#UUID=5db61050-18d7-423a-b478-95ddc99584e0 //移除此行
#HWADDR=00:0C:29:65:21:3C //移除此行
在实际应用当中,根据模板建立的虚拟机会要求管理员做一些基本设置,比如选择键盘类型、设置系统时区、重设root口令、配置网络等相关信息。要达到这个效果的话,只需要在模板虚拟机的根目录下建立一个.unconfigured隐藏文件即可:
[root@localhost ~]# touch /.unconfigured //先标记为未配置
[root@localhost ~]# shutdown -h now //再关闭系统
步骤四:快建新虚拟机
由于模板虚拟机是已经装配好系统的,因此可以利用qcow2增量盘方式来快速生成新虚拟机的磁盘,这个时间是非常短的;然后只要为新虚拟机建立相应的XML描述文件,一台装配好系统的新虚拟机就迅速诞生了。
1)模板机的处理
在使用增量盘作为新虚拟机的磁盘时,为了减少COW带来的负担,最好不要对模板机的磁盘再有所更改。因此,可以先导出muban1的XML配置,然后删除此模板机的定义。
[root@kvmsvr ~]# virsh dumpxml muban1 > /root/muban1.xml
[root@kvmsvr ~]# virsh undefine muban1
域 muban1 已经被取消定义
2)从模板机的磁盘建立两个qcow2增量盘
[root@kvmsvr ~]# cd /data/images/
[root@kvmsvr images]# qemu-img create -f qcow2 -b muban1.qcow2 svr5.qcow2
… …
[root@kvmsvr images]# qemu-img create -f qcow2 -b muban1.qcow2 pc205.qcow2
… …
3)建立新虚拟机svr5
[root@kvmsvr images]# vim /root/muban1.xml
… … //注意修改name、uuid、disk、mac
svr5
9d00dfd7-9070-b891-7f86-640e2c15d555
… …
… …
… …
[root@kvmsvr images]# virsh define /root/muban1.xml
定义域 svr5(从 /root/muban1.xml)
4)建立新虚拟机pc205
[root@kvmsvr images]# vim /root/muban1.xml
… … //注意修改name、uuid、disk、mac
pc205
9d00dfd7-9070-b891-7f86-640e2c15d666
… …
… …
… …
[root@kvmsvr images]# virsh define /root/muban1.xml
定义域 pc205(从 /root/muban1.xml)
5)新虚拟机的设置及备份
将新建的两台虚拟机svr5、pc205开机,并登入系统,按照网络服务实验环境的要求进行设置,其中svr5.tarena.com的IP地址设为192.168.4.5、pc205.tarena.com的IP地址设为192.168.4.205,并配置好YUM仓库,然后将这两台虚拟机关机。
为虚拟机svr5、pc205的磁盘制作好快照备份:
[root@svr5 images]# qemu-img snapshot -c snap1 svr5.qcow2
[root@svr5 images]# qemu-img snapshot -l svr5.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 snap1 0 2015-12-17 02:54:45 00:00:00.000[root@svr5 images]# qemu-img snapshot -c snap1 pc205.qcow2
[root@svr5 images]# qemu-img snapshot -l pc205.qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 snap1 0 2015-12-17 02:54:50 00:00:00.000