deles 发表于 2012-9-16 19:30:23

为 OpenStack Nova 制作 Windows 镜像



上次 VPSee 给
OpenStack Nova 制作 Ubuntu 的时候忘了介绍制作 Windows 镜像和在 Nova 上运行 Windows 虚拟机的情况,前几天刚好有人在微薄上问到这个问题。在 Nova 上运行 Windows 的虚拟机其实很容易,和运行 Linux 虚拟机差不多:先制作一个 Windows 虚拟机镜像(模板),然后再以这个镜像为模板来创建 Windows 虚拟机(实例)。

安装 Windows 镜像

创建一个 10GB 大小的 “硬盘”(raw 格式):

$ kvm-img create -f raw windowsxp.img 10G

Formatting 'windowsxp.img', fmt=raw size=10737418240

openstack 启动虚拟机实例的时候使用的是 virtio 接口,但是 windows 默认没有这个接口的驱动,所以需要额外的驱动。然后使用 ISO 文件的 windowsxp.iso 安装盘来安装 Windows:

$ wget
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/

virtio-win-1.1.16.vfd



$ sudo kvm -m 1024 -cdrom windowsxp.iso -drive
file=windowsxp.img,if=virtio,boot=on \

-fda virtio-win-1.1.16.vfd -boot d -nographic -vnc :0

在另外一台机器上使用 vnc 客户端就可以看到 windows 安装过程和进行操作:

$ vncview 172.16.39.111:5900

安装完 windows 后可以进行一些必要的定制,比如打开 RDP 访问、设置防火墙不要屏蔽 RDP 等,这时候也可以安装一些必要软件,要注意的是这个是以后的模板,要尽量保持系统原样,最好不要做定制也不要装任何软件,可以留给客户自己做,定制这东西每个人口味都不同。

发布 Windows 镜像

windows 虚拟机镜像做好以后就可以发布到云里了,注册镜像后会得到一个标志符
ami-00000004,以后就用这个 ami-00000004 来识别云里面的镜像(还记得我们上次做的 ubuntu 镜像的标志符是 ami-00000003 吗?):

$ euca-bundle-image -i windowsxp.img

Checking image

Encrypting image

Splitting image...

Part: windowsxp.img.part.00

Part: windowsxp.img.part.01

...

Part: windowsxp.img.part.65

Generating manifest /tmp/windowsxp.img.manifest.xml



$ euca-upload-bundle -b mybucket -m
/tmp/windowsxp.img.manifest.xml

Checking bucket: mybucket

Uploading manifest file

Uploading part: windowsxp.img.part.00

...

Uploading part: windowsxp.img.part.65

Uploaded image as mybucket/windowsxp.img.manifest.xml



$ euca-register mybucket/windowsxp.img.manifest.xml

IMAGE   ami-00000004

检验一下 windows 镜像是否上传成功,ami-00000004 就是我们刚做的 windows 镜像:

$ euca-describe-images

IMAGE   aki-00000001   mybucket/vmlinuz-2.6.32-28-server.manifest.xml               available      public         x86_64kernel         

IMAGE   ari-00000002   mybucket/initrd.img-2.6.32-28-server.manifest.xml            available      public         x86_64ramdisk         

IMAGE   ami-00000003   mybucket/ubuntutemplate.img.manifest.xml            available      public         x86_64machine aki-00000001   ari-00000002

IMAGE   ami-00000004   mybucket/windowsxp.img.manifest.xml         untarring      public          x86_64machine

第一个 Windows 虚拟机实例

有了这个 windows 模板(镜像)以后我们就可以以这个 “镜像” 为模板来为云计算用户创建 n 个
windows 虚拟机,运行之前需要 key:

$ euca-describe-keypairs

KEYPAIR mykey   76:7d:93:88:a0:e5:3e:5d:4b:62:cd:85:c5:23:7a:05



$ euca-run-instances -k mykey -t m1.small ami-00000004

RESERVATION    r-er0zkjm7   mycloud default

INSTANCE       i-00000003   ami-00000004                   scheduling   mykey
(mycloud, None)   0       m1.small       2011-06-20T14:08:45Z   unknown zone

然后用 nova-manage 命令检查是否成功运行 windows 虚拟机,状态栏 state 应该是 running 状态:

$ sudo nova-manage vm list

instance
node            type       state      launched            image      kernel       ramdisk       project    user      
zone       index

i-00000003 node01         running    2011-06-20 14:12:49 7                                       mycloud    vpsee      
None       0

大功告成,用一个 RDP 客户端连接 windows 就可以了(这个 windows 云虚拟机使用的是内部 IP):

# rdesktop 192.168.3.4




darkpoon 发表于 2013-3-14 00:39:46

沙发!沙发!

hudeya 发表于 2013-5-15 22:41:47

死亡教会人一切,如同考试之后公布的结果——虽然恍然大悟,但为时晚矣~!

zjp0633 发表于 2013-5-16 07:57:11

这是什么东东啊

xiaowei8782088 发表于 2013-5-16 22:34:32

我是个凑数的。。。

虚幻0516 发表于 2013-5-17 14:31:53

爱护环境,人人有病。

k668 发表于 2013-5-18 01:48:57

男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。
页: [1]
查看完整版本: 为 OpenStack Nova 制作 Windows 镜像