admin管理员组

文章数量:1530085

测试环境:openstack mitaka 。 需要启动 nova,glance 和 cinder 服务。

问题 Openstack是一个通用的云计算架构。虚拟机的生命周期管理,涉及很多操作。官方dashboard界面提供了诸如镜像导入,创建虚拟机,指定网络接口,挂载云硬盘等功能。但是,dashboard没有涉及一个重要的问题:镜像从何而来?dashboard界面上并没有提供制作虚拟机镜像模板的功能。制作kvm虚拟机镜像,一般是求助于libvirt工具,例如virt-manager。 希望在openstack平台上解决虚拟机模板制作问题,例如,如何在openstack制作win10虚拟机模板?

基本思路
  1. 创建nova虚拟机,可以从iso镜像启动,也就是从win10系统光盘启动虚拟机。
  2. windows系统安装,需要加载virtio磁盘驱动,否则虚拟机看不到硬盘。win10系统光盘不提供virtio驱动。virtio驱动光盘是一个独立的ISO,先导入glance,然后以cinder volume形式挂载到虚拟机,设备是CDROM,总线使用IDE。
  3. 虚拟机硬盘以nova临时磁盘的形式提供。在系统安装完成之后,临时磁盘仍然存在。利用qemu-img工具将临时磁盘导出为独立镜像,然后再导入glance,作为win10虚拟机模板。
操作过程 下载 win10 安装光盘。进行 SHA1SUM 校验。 054c741ded8989f4d0d419946eb37182f20e4482 cn_windows_10_multiple_editions_version_1703_updated_march_2017_x64_dvd_10194190.iso
下载 virtio 驱动光盘。例如,virtio-win-0.1.112.iso 。进行 SHA1SUM 校验。 b4a46bec520cadc7346cb1b8e74bd4ee5f067232 virtio-win-0.1.112.iso
为 win10 光盘创建 glance 镜像。 # wincd="f5af2a14-373b-4b46-8896-d3a3421c55aa" # openstack image create --id ${wincd} --container-format bare --disk-format iso --file cn_windows_10_multiple_editions_version_1703_updated_march_2017_x64_dvd_10194190.iso --public win10-ver1703-x64.iso
为 virtio 光盘创建 glance 镜像。 # drvcd="64d860dc-c7fc-49fb-afee-4d0e66c5d537" # openstack image create --id ${drvcd} --container-format bare --disk-format iso --file virtio-win-0.1.112.iso --public virtio-win-0.1.112.iso
生成一个拥有临时磁盘的 nova flavor。disk 5G用于安装光盘ISO。临时磁盘50G。 # flavorid="902b0d8d-7dc0-41ec-b5ff-c4546706202c" # openstack flavor create --id ${flavorid} --ram 4096 --disk 5 --ephemeral 50 --vcpus 2 --public install-iso
查看neutron网络。 # neutron net-list 指定一个网络。 # netid="c07149bb-654a-4393-a5a8-240c220cf177" 或任意指定一个 # netid=$(neutron net-list -f value --field id|head -n 1)
创建虚拟机。用 cinder 映射 virtio-win 驱动盘。 # nova boot --image ${wincd} --flavor ${flavorid} --block-device id=${drvcd},source=image,dest=volume,bus=ide,type=cdrom,size=1 --nic net-id=${netid} install-os
接下来,安装操作系统。直到安装完成,然后关机。




虚拟机的uuid。 # vmuuid="a50cc4ff-639f-4a74-a927-276b5e1a9f09"
转换虚拟机临时磁盘,保存到合适的目录。 # qemu-img convert -p -O qcow2 -S 4k /var/lib/nova/instances/${vmuuid}/disk.eph0 test.qcow2
创建win10模板。 # openstack image create --container-format bare --disk-format qcow2 --file test.qcow2 --public win10-template
删除临时镜像。 # rm test.qcow2
删除install-os虚拟机实例。 # openstack server delete $vmuuid
现在从 glance 镜像 win10-template,可以启动 win10 虚拟机。至此全部完成。

本文标签: 镜像安装光盘模板OpenStackglance