ISO创建实例
从ISO创建实例有两个关键配置:云主机类型flavor和ISO镜像参数。
云主机类型:openstack使用ISO镜像创建虚拟机实例时,会将选择的云主机类型flavor中的根磁盘(Disk)设置为cdrom,作为ISO的启动的光驱设备,用于OS的安装源;临时磁盘(OS-FLV-EXT-DATA:ephemeral)作为虚拟机实例的系统盘,作为安装目标。因此在配置用于ISO启动的云主机类型flavor时,需要设置根磁盘(disk)值,可以略大约ISO镜像文件,5G/10G均可,可根据现场配置;临时磁盘作为系统的启动盘,需要根据业务需要设置大小,一般100G以上。
ISO镜像参数:ISO镜像参数按照kvm/vsphere/xen等虚拟化类型设置,具体参数可参考http://docs.openstack.org/cli-reference/content/chapter_cli-glance-property.html进行设置。针对centos6.7操作系统,KVM虚拟化,需要设置属性为os_distro、os_version、hw_boot_menu,具体设置命令glance image-update,详细使用请使用glance help image-update查看
正确设置云主机类型和ISO镜像属性后一般可以正常启动虚拟机并完成操作系统的安装。对于windows的操作系统,默认不能识别磁盘,需要加载安装对应的virtio驱动,特定OS版本请google之。
ISO虚拟机实例生成qcow2快照
从iso虚拟机实例生成的qcow2关键的问题是需要解决虚拟机的OS引导源的顺序。目前在kvm虚拟化上没有开放BIOS的配置选项(也可能是笔者没有找到入口,若有请告知笔者,跪谢),虚拟机第一启动选项为从CD/DVD启动。所以为了解决虚拟机的启动顺序,我们需要eject cdrom,可以采用如下办法:
使用virsh attach-disk空设备,弹出cdrom
找到需要生成快照的虚拟机所在物理主机,执行如下命令找到虚拟机的ID
#virsh list
找到对应虚拟机的ID。执行如下命令弹出cdrom
#virsh attach-disk --type cdrom --mode readonly 35 "" hda --live
其中35为虚拟机的ID,通过virsh list可以查询。此时可以在虚拟机中执行reboot重启虚拟机验证,可以发现虚拟机会直接启动OS
生成centos的虚拟机快照
生成centos快照主要是用来作为镜像模版,快速启动虚拟机,省去安装操作系统的耗时操作并自动完成配置。从实践看,主要是需要解决网卡设备名称递增的问题,例如新生成的虚拟机网卡启动失败、网卡名字变成eth1等。可以通过如下办法解决:
a、删除关于网卡/etc/sysconfig/network-scripts/ifcfg-eth0的特定系数,比如MAC参数、UUID,建议只保留如下参数:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=yes
b、删除/etc/udev/70-persistent-net.rules,避免镜像生成的虚拟机网卡名称序号递增为eth1
ubuntu操作系统的虚拟机快照建议参考centos的要求适配修改。
windows操作系统的虚拟机快照主要是配置防火墙以及开启远程桌面服务,并允许远程访问,具体开启方式请google之