如果想要dashboard上创建一个Windows的虚拟机,就要有一个Windows的镜像,而Windows的虚拟机里需要virtio作为网卡驱动。所以需要下载virtio-win iso

准备:
opentack环境下
1:一个Windows系统的iso镜像
2:wirtio-win iso 官方下载地址https://docs.fedoraproject.org/quick-docs/en-US/creating-windows-virtual-machines-using-virtio-drivers.html#Direct_download
3:在openstack下安装libvirt virt-install等
centos : yum install -y virt-install virt-manager
Ubuntu:apt-get install libvirt-bin virtinst

将下载后的Windows iso 和virt-win iso放置在一个目录下(方便操作),下面我的存放地址/home/windows_image/下

下面就是正式创建:
创建一个镜像文件

qemu-img create -f qcow2 windows.qcow2 20G

用virt-install命令开始安装
用vnc连接:

virt-install –connect qemu:///system \
–name windows –ram 2048 –vcpus 2 \
–network network=default,model=virtio \
–disk path=windows.qcow2,format=qcow2,device=disk,bus=virtio \
–cdrom /home/windows_image/win.iso \
–disk path=/home/windows_image/virtio-win.iso,device=cdrom \
–vnc 192.168.2.251:8 –os-type windows –os-variant win7
输出: Starting install…

这时候就要用virt-viewer来打开界面完成安装,如果virt-viewer打开失败

就网上下载一个vnc viewer

iso openstack 镜像下载 openstack windows镜像下载_添加virt-io驱动

如果vnc不能成功安装 就用spice连接

virt-install –connect qemu:///system \
–name windows –ram 2048 –vcpus 2 \
–network network=default,model=virtio \
–disk path=windows.qcow2,format=qcow2,device=disk,bus=virtio \
–cdrom /home/windows_image/win.iso \
–disk path=/home/windows_image/virtio-win.iso,device=cdrom \
–os-type windows –os-variant win7 –graphics spice,listen=0.0.0.0

iso openstack 镜像下载 openstack windows镜像下载_添加virt-io驱动_02


默认端口5900 多一个连接就+1(5901)

连接进去可以看到这样的界面

iso openstack 镜像下载 openstack windows镜像下载_创建Windows虚拟机_03


选择相应Windows系统

就等待安装完成,途中会重启虚拟机,如果vnc客户端断开关闭,重新再连接就好

整个完成后就开始创建一个在dashboard界面上能看到的镜像

openstack image create –disk-format qcow2 –file windows.qcow2 Windows

在界面上用镜像创建虚拟机,
或用命令nova boot
openstack flavor list
openstack image list
openstack network list
3个命令查看列表id

nova boot –flavor xxx –image xxx –nic net-id=xxxxxx –security_group default vm_name

上面的整个过程就完成了

相关问题:
上面用新建的镜像来创建虚拟机,虚拟机内就有virt-io网口驱动了。
如果虚拟机里没有virt-io驱动,则需要收到添加

(1)安装完Windows后,创建一块临时的硬盘,将其设置为virtio模式添加到Windows中,并设置网卡模式为virio
(2)开机后将提示检查到新硬件,然后安装驱动程序后关机
(3)删除新添加的临时硬盘,将原来的硬盘设置为virtio模式,开机即可识别到硬盘与网卡都为virtio模式

新建一个额外的磁盘 挂载到虚拟机上

qemu-img ceate -f qcow2 virt.img 10G

然后修改libvirt配置文件
使用虚拟机所在的计算节点中

virsh list

得到类似下面的结果

instance-00000002 running

然后直接编辑

virsh edit instance-00000002

添加

<disk type='file' device='disk'>  
  <driver name='qemu' type='qcow2'/>  
  <source file='/var/lib/windows-virtio/virt.img'/>  
  <target dev='vdb' bus='virtio'/>  
</disk>  
<disk type='file' device='cdrom'>  
  <driver name='qemu' type='raw'/>  
  <source file='/var/lib/windows-virtio/virtio-win.iso'/>  
  <target dev='hdc' bus='ide'/>  
</disk>

重启虚拟机。

iso openstack 镜像下载 openstack windows镜像下载_制作windows镜像_04


点击更新驱动程序(上面的是我更新后的结果)

iso openstack 镜像下载 openstack windows镜像下载_iso openstack 镜像下载_05

可以看到上面已经有挂载的virt-io驱动了
点解确认即可。

参考资料



https://docs.openstack.org/image-guide/windows-image.html