Jan 302013
 

今年据说国内要大力搞OpenStack的培训。其实IAAS这个东西,并不难,麻烦在于设备。一般人,很难有真实的服务器来测试。那么能不能在OpenStack下的虚拟机,测试OpenStack呢?

记忆非常清楚,2007年初,我倒腾vmware 的ESX3.0的时候,当时你是无法在workstation下进行测试。搞虚拟化培训,需要用物理服务器,这其实是有点讽刺的。后来vmware让workstation支持ESX,大家可以在workstation里安装ESX,并且可以搞一个虚拟机,朋友用的是NT4.0,在上面进行迁移演示,比较酷。以前一直都有一个梦想,有一台这样比较牛逼的笔记本,可以装一套这个,到处给别人演示。

上次有朋友专门谈到:OpenStack下测试OpenStack,会有问题,我就专门测试一下,看看有啥问题。由于现在有脚本,可以大大减少我的工作量。

测试结论:可以在Openstack下的虚拟机,安装Openstack,并且还能再启动一个虚拟机,这个虚拟机的网络基本正常,不过肯定是没法用Floating IP,还有就是默认的DNS设置有点问题,你可以直接通过IP访问外网,或者自己手工修改DNS。

 

安装脚本使用

1:安装Openstack

单网卡,安装OpenStack,采用nova network,FlatDHCP。这个我很熟悉,完全没任何的问题。

创建一个2G内存大小的虚拟机,命名为test1,作为测试使用。

2:虚拟机下安装OpenStack

由于脚本是包含cinder volume,所以需要用文件进行模拟,另外好像虚拟机对iscsi支持有bug,你需要处理一下,就可以运行脚本。

装完后,需要把kvm改成qemu,重启nova服务就可以。

3:在虚拟机下创建虚拟机

其实这个时候,你可以通过浏览器,访问第一个虚拟机的floating IP,登陆dashboard。创建一个虚拟机,命名为test2。不过你访问这个虚拟机,就需要折腾一下

从物理服务器,ssh到test1虚拟机,再从test1虚拟机里,ssh到test2虚拟机里。

有朋友说,在test2虚拟机里无法访问外网,不过我测试没问题,不能ping 域名,是因为DNS设置,可以ping通公网IP。

虚拟机的密钥注入都没啥问题。感觉就是nova-manage 创建网络的时候,指定DNS,好像这个设置在Folsom版本失效,改天再研究吧。

  8 Responses to “OpenStack下测试OpenStack”

  1. 陈老师,您试过在指定的host上boot虚拟机吗?就是–availability-zone :这个选项。我用的12.04+Folsom,nova-network,在nova.conf里面也都加上了nova_availability_zone=的选项,但是一直没有效果。是不是需要选特定的filter(AvailabilityZoneFilter)或者是scheduler才能实现啊?
    谢谢!

    • 你说的是把vm创建在指定的物理机器上,这个我同事测试过,没啥问题。

      • 是的,是把vm创建在指定的机器上。但是我用nova boot –image $IMAGE_ID –flavor $FLAVOR –availability-zone $ZONE:$HOSTNAME vm1创建vm的时候,总是什么error或者warning都没有,然后vm1就跑到zone里面其他的host上了。好像根本没有按照指定的host来创建。您有什么建议么?或者您能告诉我那个同事的邮箱吗?我发邮件问问。谢谢您!

  2. 沙克老师,请问您关于DNS的问题解决了吗?我现在用G版本装,也遇到了这个问题,ping得通外网,但是DNS不管用

  3. 陈老师,您好,谢谢分享您的openstack博客,通过您的博客,我受益匪浅,搭建了一个简单的openstack测试平台。但是还有一个问题没有解决,希望您能够指教下!我的环境是controller双网卡,compute节点双网卡,网络是multi_host模式,由于我们使用的校园网,网段是10.103.240.0/20,我们平时使用校园网是先通过dhcp获取ip(随机分配的),然后经过认证。我的nova 实例私有ip是172.16.0.0/24,关键在于如何设定floating ip实现连接外网,现在我的解决方案是分配floating ip为10.103.243.0/24,能够实现NAT转化,并且可以连接宿主机,宿主机也能够连接虚拟机,但问题是每次分配floating ip时是根据nova 本地数据库分配的,即不能同步校园网dhcp数据库,无法避免ip冲突。我需要的功能是,能够直接从校园网中dhcp获取ip,请问该如何实现呢?谢谢!

 Leave a Reply

(required)

(required)