Oct 242013
 

目前Havana的step by step的安装文档还没有推出,不过采用Redhat的部署工具RDO,你还是很方便可以搞定。

网络采用Neutron+openvswitch,租户网络是vlan模式。单节点和多节点的安装,基本是一样的,只是需要多添加一个计算节点就可以。默认控制节点,同时也是计算节点。

参考文档

www.monkey-code.com/blog/2013/10/04/building-a-multi-node-openstack-cloud/

我的RDO的网络设置和应答文件 GRE模式:http://t.cn/8DDql5W Vlan模式:http://t.cn/8DDql5O 完成后,自己手工创建ifcfg-br-ex http://t.cn/8DDql50

2013年11月22日:目前RDO在多节点部署有bug,在计算节点创建的虚拟机都会失败。http://openstack.redhat.com/forum/discussion/910/havanna-issues-with-multi-node#Item_14  解决办法就是装完后在控制节点,添加一条iptables的规则:

iptables -I INPUT -s 172.28.1.12/32 -p tcp –dport 9696 -j ACCEPT

并保存规则:service iptables save ,172,28,1,12是我计算节点的IP地址。

基本情况

原文使用的是3块网卡,一块是管理网络使用,这个是可以和公网合用就可以,这样2块网卡就可以很好的实验.

服务器 公网 VM Net 角色
node10 eth0:172.28.1.10/16 eth1 控制节点,网络节点,存储节点,计算节点
node12 eth0:172.28.1.12/16 eth1 计算节点

 

网关:172.28.0.1

虚拟机使用的Floating IP:172.28.3.100,172.28.3.200

你需要把两台机器的eth1,设置成trunk.

虚拟机的通讯,是通过eth1,虚拟机访问外部网络,是通过node10上的L3agent,br-ex到eth0上访问外部网络。

这是龚永生的原理图,我稍微修改了一下,用eth0连接路由器

Snap1

 

网络设置

两台机器的网络设置基本都是一样,就是修改一下IP就可以.

/etc/sysconfig/network-scripts/ifcfg-eth0

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=00:E0:81:D8:43:BE
TYPE=Ethernet
BOOTPROTO=none
IPADDR=172.28.1.10
NETMASK=255.255.0.0

/etc/sysconfig/network-scripts/ifcfg-eth1

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes

设置源

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum list

Packstack安装

下面的操作,只需要在在node10上操作就可以。

LVM设置(可选)

这主要是为了给cinder-volumes单独一个分区,提高性能。

umount /dev/sda2
pvcreate /dev/sda2
vgcreate cinder-volumes /dev/sda2

修改/etc/fstab 去掉cinder-volume的开机挂载,不然会导致你无法重启

sed -i '/cinder-volume/s/^/#/' /etc/fstab

安装packstack

yum install -y http://rdo.fedorapeople.org/openstack/openstack-havana/rdo-release-havana.rpm
yum install -y openstack-packstack
yum -y update

重启机器

Packstack设置

创建一个应答文件

packstack --gen-answer-file=multi-node.txt

 

修改应答文件,由于我已经有专门的cinder volume, 所以不需要创建。如果你没有手工创建cinder volume,那么你就不修改就可以。

CONFIG_CINDER_VOLUMES_CREATE=n
CONFIG_HEAT_INSTALL=y
CONFIG_NTP_SERVERS=0.uk.pool.ntp.org
CONFIG_NAGIOS_INSTALL=y
CONFIG_KEYSTONE_ADMIN_PW=admin
CONFIG_NOVA_COMPUTE_HOSTS=172.28.1.10,172.28.1.12
CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=vlan
CONFIG_NEUTRON_OVS_VLAN_RANGES=physnet1:10:20
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-eth1
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-eth1:eth1
CONFIG_HEAT_CLOUDWATCH_INSTALL=y
CONFIG_HEAT_CFN_INSTALL=y
CONFIG_NAGIOS_PW=nagios

 

开始安装

packstack --answer-file=multi-node.txt

安装过程,有可能因为源的原因中断,你可以重复运行。

装完后,由于目前RDO的问题,没有创建br-ex,需要我们手工来创建

# cat /etc/sysconfig/network-scripts/ifcfg-br-ex 
DEVICE=br-ex
IPADDR=172.28.1.10
PREFIX=16
GATEWAY=172.28.0.1 
DNS1=114.114.114.114
ONBOOT=yes

修改 /etc/sysconfig/network-scripts/ifcfg-eth0,  注意:一定要加上eth0 的mac地址,不然会出错。

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=00:E0:81:D8:43:BE

然后运行下面命令

ovs-vsctl add-port br-ex eth0; service network restart

当运行 ovs-vsctl add-port的时候,网络就会中断,所以你两条命令需要一起执行。

Snap2

 

剩下的操作就是在Dashboard

Dashboard

http://172.28.1.10 登陆Dashboard,密码你可以查看

# cat /root/keystonerc_admin 
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://172.28.1.10:35357/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$

剩下的就是你登陆Dashboard来进行设置。这个vlan和GRE网络设置是一样的。我专门写一个文档来介绍。

  53 Responses to “CentOS 6.4 Openstack Havana 多节点安装(OVS+VLAN)”

  1. OVS在哪?包含在RDO中了?

  2. 陈老师,看您截图外部网关一直是DOWN状态,请问是还要设置什么吗?

  3. 支持博主,帮助很大。

  4. 请问陈老师,RDO 多节点方式下,一个网卡可以么?vlan 还需要交换机上进行设置,请问可以支持 flatDHCP 方式么?多谢!

  5. 陈老师:
    1.我在openstack运行虚拟机时在超过系统实际内存1.5倍后会报错,是否openstack最多只能使用实际内存的1.5倍?

    2.devstack里面有重启脚本,如果我用RDO安装OPENSTACK,一个节点重启是否需要一些控制脚本?

    谢谢您到回答

  6. Ping from VM2 to VM4, this should succeed.

    Ping from VM1/VM3 to VM2/VM4, this should not succeed(unless you have a router configured to forward between the VLANs, in which case, packets arriving at VM3 should have the source MAC address of the router, not of VM1).

    按照网站上的说法:实体机内部的虚拟机不能ping,然而不同实体机的虚拟机可以ping(除非路由器做了一些设置)。

  7. 请问陈老师:eth1 没有连网线是否也可以(主要原因是刀片机上eth1模块没有装,系统里能看到一个虚拟的eth1,但是实际上机器只有一块网卡)?我的理解是这里 eth1 只是用来在虚拟机之间的内部 ip 进行通信用的,虚拟机对外 ip 走的还是 eth0,请问对么?请问单网卡多节点的机器还有别的好的解决方案么?比如虚拟出来一个网卡(eth0:1).

    • 理论是可以,不过我是没测试过,就不好说了。单块网卡,应该也是可以安装,我blog有篇是介绍单块网卡的。

      • 我照着你的那篇文章成功安装了单节点,但是多节点下网络就不正常了,主要是第二个节点。
        按照这种双网卡方式,用外网 ip 访问虚拟机的时候,走的是 eth0 还是 eth1 呢?

  8. 根据这个文章,顺利搞出两个节点的安装,虽然还不甚清楚其所以然,大体了解了一下框架。也有个疑问,openstack如何保护自身的?万一其中一个节点崩了,里面的service如何backup?

  9. 你好陈老师,首先非常感谢,我用双网卡跑通了多节点(只是网络的设置部分有点出入,我最后是参照这个文档来的:http://docs.openstack.org/network-admin/admin/content/under_the_hood_openvswitch.html#under_the_hood_openvswitch_scenario2)

    现在还有一个问题是:起来的虚拟机在nova compute 所在的机器上(他们都连到一个交换机)都可以正常 ping 和 ssh,但是在其它网段(跨了几个交换机),ping 和 ssh 都不工作了。但是单网卡all in one单节点的方式是一切正常的。感觉是虚拟机走的 eth1 的网络,而这个网络默认从交换机以外的地方连不上来。

    所以想请教一下是不是和你提到的 “需要把两台机器的eth1,设置成trunk” 是有关的?因为这一步需要网络管理员帮忙,我还没做呢。还是需要有别的设置?谢谢!

  10. 当redhat 开足火力支持openstack,效果惊人

  11. 陈老师,ifcfg-eth1 里为什么不加上eth1的mac地址啊?

  12. 陈老师,修改 ifcfg-br-ex 和 ifcfg-eth0 是每台机器都要做吧?那岂不是都走的计算节点的 eth0?

    • 只需要在控制节点做,只需要在一台机器上做。或者说,只需要在网络节点去做。因为我们目前就只有一台网络节点,装在控制节点上。

      • 我在网络节点上设置完 ifcfg-br-ex 和 ifcfg-eth0 并重启网络后,在这台机器上运行的虚拟机一切正常了,远程 ping 和 ssh floating ip 都可以了,但是在其它计算节点上运行的虚拟机还是访问不了。

        我从好使的虚拟机里去ping 无法访问的这台vm的内网ip(10.0.0.2)也不通。

        是不是和路由器上没设置trunk有关?他们连到同一个路由器上的。

        • 应该是。反正看文档,基本都是这样操作。我也正在测试中。

          • 我和网管一起把eth1 对应的 port 都设置为 trunk 了,还是不行。准备放弃了,准备试试gre 模式了。但是不知道gre模式性能差的多么?

        • 按照这个guide来装并没有产生cfg-br-ex呀,请教?

  13. 从图里面来看,所有节点的eth1需要划到一个vlan里。不知道这个vlan和VLAN_RANGES=physnet1:10:20里的vlan有什么关系?

    • 我的理解,应该是在交换机把虚拟机通讯的端口设置trunk模式,vlan的id是从10到20.

  14. 陈老师,“在交换机把虚拟机通讯的端口设置trunk模式”,没太理解这句话的意思。我让我们网管帮忙把eth0和eth1分别划到vlan10和vlan20里了,但是网管说trunk模式只是在上行的端口上设置,所以没设置。这种情况下还是一样不通(只有network节点上的 vm 是通的)。

    • 试一下gre,他不需要交换机进行设置。

      • 陈老师,gre模式下发现vm之间的网速只有20-30k/s,但是物理机之间能达到10-100M/s左右,物理网络是千兆的网络,是不是哪里配置不对?

  15. 陈老师,在您的博客里面好像没有看到怎样安装和添加计算节点。这个是怎么配置的呢?

    • 很简单,你就修改那个配置文件,把计算节点加上,再运行一次就可以。

      • 请问是哪个配置文件。multi-node还是其他文件?刚刚接触,不太会

        • 就是那个应答文件,修改nova compute为新的计算节点IP就可以了。

          • 我明白了您的意思了。但是与我的本意还是有出入的。我想安装完以后,能否动态地添加或者删除计算节点或者存储节点?

          • 目前我测试的情况是,计算节点可以删除,但比较麻烦,要修改mysql数据库。而存储节点暂时还没有测试,这个应该要使用分布式存储才可行的。

          • 明白你的意思,目前Openstack没有提供类似的接口,删除节点。所以还没啥太好的办法。添加节点,openstack上添加节点,是自动的,你装好一个计算节点,他自己就加入。和别的vmware是不一样的。

  16. 我按照您的教的做法给cinder-volumes的分区设置是新加的硬盘/dev/sdb1, 有3TB。貌似没有加上去。请问需要怎么做呢?

  17. 请问这个是什么类型的错误?应该怎么改啊?
    Error appeared during Puppet run: 192.168.137.26_prescript.pp
    Error: Execution of ‘/usr/bin/yum -d 0 -e 0 -y install openstack-selinux’ returned 1: Error: Package: openstack-selinux-0.1.3-2.el6ost.noarch (openstack-havana)
    You will find full trace in log /var/tmp/packstack/20131211-170522-1mjsiY/manifests/192.168.137.26_prescript.pp.log
    PS:请问这个有群么?可以常常问Openstack的问题的。

  18. 陈老师,您好。我想问一下,您画的网络拓扑结构图中,计算节点的eth0是做什么用的?感觉没有用到啊。我按照您的方法搭好了平台。但是现在建立的虚拟机不能访问外网。不是很清楚这个构造。可以讲解一下么?我参考了您http://www.chenshake.com/openstack-havana-dashboard-to-test-and-use/#Instances这篇文章,但是还是不清楚外部网络是怎么配的?求指导

  19. 陈老师,您好。根据你的步骤,完成之后,虚拟机能ping通网关,但是ping不通外网,大概是什么原因呢。求指导

    • vlan模式,我没有完整测试。等我测试完把。一个可能是你没有创建br-ex

  20. 你好,想请教您一下关于neutron中cisco插件的安装和使用方法。Openstack和Cisco虽然有相关文档,但看的不是很明白.不知道你有没有研究过呢?我现在主要是乡安装这个插件来配置物理交换机Nexus 5000和7000,但是文档中一直会涉及openvsxitch的plugin, 希望陈老师能解答一下。

  21. 陈老师,我装完后,dashboard里不能创建项目。
    “Error:发生错误。请稍后再试。”

  22. 陈老师,我按照日志里步骤部署上了,可是dashboard web上创建和删除云主机时,一直是spawning和deleting的状态,nova的日志里也没有错误产生。再者,就是日志里说把eth1设置成trunk,在vmware下,怎么把eth1设置好呢。刚开始时我把eth1设置成host-only模式,能相互ping通,后来又按照日志把eth1改成日志里的样子,ping不通。请教下,是哪里我理解错误了,造成这样的结果

  23. 我试了, 但是虚机无法获取IP, console log 有”No lease, failing”的错误, 如何trouble-shooting 啊?

  24. ERROR : Error appeared during Puppet run: 10.10.70.251_prescript.pp
    Error: Execution of ‘/usr/bin/yum -d 0 -e 0 -y install openstack-selinux’ returned 1: Error: Package: openstack-selinux-0.1.5-5.el6ost.noarch (openstack-havana)
    You will find full trace in log /var/tmp/packstack/20150210-135847-u2JMbS/manifests/10.10.70.251_prescript.pp.log

    RHEL6.5安装报错,查看日志如下:
    Warning: The package type’s allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please explicitly set allow_virtual to false.
    (at /usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:430:in `default’)
    Error: Execution of ‘/usr/bin/yum -d 0 -e 0 -y install openstack-selinux’ returned 1: Error: Package: openstack-selinux-0.1.5-5.el6ost.noarch (openstack-havana)
    Requires: selinux-policy-base >= 3.7.19-260.el6
    Installed: selinux-policy-targeted-3.7.19-231.el6.noarch (@anaconda-RedHatEnterpriseLinux-201311111358.x86_64/6.5)
    selinux-policy-base = 3.7.19-231.el6
    ……………..

 Leave a Reply

(required)

(required)