openstack镜像制作

来源:互联网 发布:java教程中创建数据包 编辑:程序博客网 时间:2024/04/27 13:56

本文摘自:http://blog.sina.com.cn/s/blog_98437f4001015iqt.html 。想原创致敬。

 

折腾了好几天,把自定义ubuntu、windows xp镜像网络问题解决了:kvm启动镜像没法联网,glance上传到云后,创建出的实例却可以。

 

 一、过程

    之前制作CentOS镜像的时候没有遇到这个问题,参考文档:http://os.51cto.com/art/201202/314888.htm

制作ubuntu、windowns xp镜像参考文档:

(1)http://www.vpsee.com/2011/06/create-ubuntu-kvm-image-for-openstack-nova/ 

(2)http://quake.iteye.com/blog/1266277

(3)http://blog.csdn.net/jb80400812/article/details/7000092

(4)http://www.linuxde.net/2011/11/2050.html

    大概的思路就4步:

1、创建镜像文件

2、用nova-compute自带的kvm,启动.iso文件,用vncviewer完成OS的安装过程

3、OS安装完毕,停止虚拟机,kvm重启镜像,安装必要的软件

4、后续:上传镜像到云中

 

二、centos.img制作:

(1)kvm-img create -f raw centos.img 10G

(2)kvm -m 512 -cdrom CentOS-6.3-x86_64-minimal.iso \
-drive file=centos.img -boot d -net nic -net tap -nographic -vnc :0

(3)kvm -m 512 -drive file=centos.img -boot c -net nic -net tap \
-nographic -vnc :0

(4)glance发布到云中
glance add name="CentOS 6.3 x86_64" is_public=true container_format=ovf \
disk_format=raw < /root/centos.img

 

三、ubuntu.img制作:

(1)kvm-img create -f raw ubuntu.img 10G
(2)kvm -m 512 -cdrom ubuntu-11.10-server-amd64.iso \
-drive file=ubuntu.img -boot d -nographic -vnc :0
(3)kvm -m 512 -drive file=ubuntu.img -boot c -net nic -net tap

-nographic -vnc :0

(4)glance发布到云中
glance add name="Ubuntu 12.04 server" is_public=true container_format=ovf \
disk_format=raw < /root/ubuntu.img

 

四、windowsxp.img制作

(1)kvm-img create -f raw windows_xp.img 10G 或者硬盘格式用qcow2

(2)kvm -m 1024 -cdrom windowsxp.iso -drive file=windowsxp.img,if=virtio \
-fda virtio-win-1.1.30.vfd -boot d -nographic -vnc :0

(3)kvm -m 1024 -drive file=windows_xp.img,if=virtio -cdrom virtio-win-0.1-30.iso \

-net nic,model=virtio -net tap -boot c -nographic -vnc :0
(4)glance发布到云中

glance add name="windows xp" is_public=true container_format=ovf \
disk_format=raw < /root/windows_xp.img

 

五、收获

1、在镜像制作的(2),须加上-net nic -net tap才能建立镜像到kvm网桥virbr0的映射,网络才通。之前制作镜像的时候只有centos.img加了,故能联网,而其他几个镜像的网络无论是dhcp,还是手动设置到kvm网段,都不通。参考kvm命令使用:http://8366.iteye.com/blog/1000575http://chapter09.sinaapp.com/?p=375

2、在单节点的openstack中,由ifconfig可以看到网络的分布情况——两个网桥br100,virbr0:其中br100是
实例的网桥,每创建一个实例都会有一个虚拟网卡vnet*生成,实例的内网Ip即floating ip,和vnet*对应,与br100在同一网段;而virbr0是kvm的网桥,用kvm启动的虚拟机(镜像)会自动生成tap*虚拟网卡,与镜像中的eth*对应,没有建立对应关系则网络不通,镜像自动获取的ip与vribr0在同一网段。另外,br100,virbro不在同一网段,最终都与eth0物理网卡相连。

3、不要机械的去copy某些命令,要能够理解,不然要多走很多弯路的;另一方面,需要加强理论的学习,唯有源头活水来,源头呢?直接去摸索,没有任何的基础可言,遇到问题没思路,要走的弯路自然多。

4、解决问题思路:不浮躁,切忌机械照搬,多动脑,不轻易发问。

(1)仔细查看错误,什么问题、是什么导致,分析错误原因

(2)查看log

(3)google,查看知名博客、openstack理论知识(PDF文档)

(4)QQ群询问

(5)总结