RDO是由红帽RedHat公司推出的部署OpenStack集群的一个基于Puppet的部署工具,可以很快地通过RDO部署一套复杂的OpenStack环境,当前的RDO默认情况下,使用Neutron进行网络管理,默认部署的是OpenStack Havana版本。
本文参考:RDO官方文档 陈沙克博客

1、物理环境

双网卡物理机三台、外网路由器一台、内网交换机一台
NIC1接路由器,NIC2接交换机

2、安装操作系统

RDO只支持RedHat或者基于RedHat衍生的Linux版本,如RHEL, Fedora, CentOS等
本环境中使用CentOS6.4的最小化安装
下载地址:http://mirror.bit.edu.cn/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso

3、修改网卡名称

采购的物理机器是DELL R410服务器,默认网卡名称为em1、em2,对于习惯了eth的我来说,不太方便,所以修改了一下网卡名称,步骤如下:
修改/etc/udev/rules.d/70-persistent-net.rules

1
2
3
4
5
# PCI device 0x14e4:0x163b (bnx2) (custom name provided by external tool) 
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d4:ae:53:c4:ff:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 
   
# PCI device 0x14e4:0x163b (bnx2) (custom name provided by external tool) 
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d4:ae:53:c4:ff:23", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

重命名并修改网卡配置文件

1
2
mv /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-eth0 
mv /etc/sysconfig/network-scripts/ifcfg-em2 /etc/sysconfig/network-scripts/ifcfg-eth1 

将其中的DEVICE=em1改为eth0,DEVICE=em2改为eth1
修改完之后重启机器。

4、配置IP地址
主机名 角色 NIC1 IP地址(外网) NIC2 IP地址(内网)
controller 控制节点、网络节点 eth0 10.68.19.61 eht1 50.50.0.11
compute01 计算节点 eth0 10.68.19.62 eth1 50.50.0.12
compute02 计算节点 eth0 10.68.19.63 eth1 50.50.0.13

网卡配置文件示例:
NIC1(/etc/sysconfig/network-scripts/ifcfg-eth0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
DEVICE=eth0 
TYPE=Ethernet 
UUID=bd14706a-5f1c-4d86-a3eb-362b4a89da26 
ONBOOT=yes 
NM_CONTROLLED="no" 
BOOTPROTO=none 
IPADDR=10.68.19.61 
NETMASK=255.255.255.0 
GATEWAY=10.68.19.1 
HWADDR=90:B1:1C:23:72:0E 
DEFROUTE=yes 
PEERDNS=yes 
PEERROUTES=yes 
IPV4_FAILURE_FATAL=yes 
IPV6INIT=no 
NIC2(/etc/sysconfig/network-scripts/ifcfg-eth1)
1
DEVICE=eth1 
HWADDR=90:B1:1C:23:72:0F 
TYPE=Ethernet 
UUID=2f620087-adf5-4bff-acf8-ff20c16fee25 
ONBOOT=yes 
NM_CONTROLLED="no" 
BOOTPROTO=none 
IPADDR=50.50.0.11 
NETMASK=255.255.255.0 
5、创建cinder-volumes

这一步可以无需配置,而采用RDO自动设置的分区,但是本环境中控制节点上有一块专用的硬盘/dev/sdb1用来做Cinder存储,所以预先配置

1
2
pvcreate /dev/sdb1 
vgcreate cinder-volumes /dev/sdb1
6、安装Packstack

SSH到controller节点上

1
2
3
yum install -y openstack-packstack 
yum -y update 

注意:更新完成之后,重启机器

7、创建并修改应答文件
1
packstack --gen-answer-file venu_answers.txt

修改以下内容:

1
2
3
4
5
6
CONFIG_CINDER_VOLUMES_CREATE=n 
CONFIG_NTP_SERVERS=0.uk.pool.ntp.org 
CONFIG_NOVA_COMPUTE_HOSTS=10.68.19.62,10.68.19.63 
CONFIG_NEUTRON_OVS_TENANT_NETWORK_TYPE=gre 
CONFIG_NEUTRON_OVS_TUNNEL_RANGES=1:1000 
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1 

注意:若之前未手动创建cinder-volume的话,请去掉:CONFIG_CINDER_VOLUMES_CREATE=n

8、执行安装
1
packstack --answer-file=venu_answers.txt

安装过程中因为网络原因可能会发生多次中断,重复执行即可。

9、创建br-ex

RDO不会自动创建br-ex,所以需要手动创建,否则,虚拟机不能访问外网
在网络节点(本环境中即控制节点)上进行修改:

1
2
3
4
5
6
7
8
9
vi /etc/sysconfig/network-scripts/ifcfg-br-ex 
   
DEVICE=br-ex 
IPADDR=10.68.19.61 
PREFIX=16 
GATEWAY=10.68.19.1 
DNS1=8.8.8.8 
ONBOOT=yes 
修改NIC1
1
2
3
4
5
vi /etc/sysconfig/network-scripts/ifcfg-eth0 
   
DEVICE=eth0 
ONBOOT=yes 
HWADDR=D4:AE:52:C4:FF:35 

添加Port并重启网络

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

正常的网桥信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@controller ~]# ovs-vsctl show 
    Bridge br-ex 
        Port br-ex 
            Interface br-ex 
                type: internal 
        Port "eth0" 
            Interface "eth0" 
    Bridge br-int 
        Port br-int 
            Interface br-int 
                type: internal 
        Port patch-tun 
            Interface patch-tun 
                type: patch 
                options: {peer=patch-int} 
    Bridge br-tun 
        Port "gre-1" 
            Interface "gre-1" 
                type: gre 
                options: {in_key=flow, local_ip="50.50.0.11", out_key=flow, remote_ip="50.50.0.13"} 
        Port "gre-2" 
            Interface "gre-2" 
                type: gre 
                options: {in_key=flow, local_ip="50.50.0.11", out_key=flow, remote_ip="50.50.0.12"} 
        Port patch-int 
            Interface patch-int 
                type: patch 
                options: {peer=patch-tun} 
        Port br-tun 
            Interface br-tun 
                type: internal 
    ovs_version: "1.11.0" 
10、登陆dashboard

WEB控制台的地址:http://10.68.19.61/dashboard
账号:admin
密码:XXXX(部署成功后会生成一个keystonerc_admin文件,密码在其中)
创建网络、租户、启动第一个实例等,参考:http://www.ustack.com/blog/neutron_intro/

11、TroubleShooting

11.1、VM不能获取IP的问题
这个问题是OpenStack的经典问题,RDO安装出现这种问题可能性已经小多了,但是还是存在
查看/var/log/neutron/dhcp-agent.log,确认是否有以下错误出现:

1
2013-11-15 17:18:07.785 9808 WARNING neutron.agent.linux.dhcp [-] FAILED VERSION REQUIREMENT FOR DNSMASQ. DHCP AGENT MAY NOT RUN CORRECTLY! Please ensure that its version is 2.59 or above! 
1
2
3
4
5
RuntimeError: 
2013-11-15 18:02:39.974 9808 TRACE neutron.agent.dhcp_agent Command: ['sudo', 'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'add', 'qdhcp-85c85884-3d8f-4f2a-8f81-97f1aa686837'] 
2013-11-15 18:02:39.974 9808 TRACE neutron.agent.dhcp_agent Exit code: 255 
2013-11-15 18:02:39.974 9808 TRACE neutron.agent.dhcp_agent Stdout: '' 
2013-11-15 18:02:39.974 9808 TRACE neutron.agent.dhcp_agent Stderr: 'Bind /proc/self/ns/net -> /var/run/netns/qdhcp-85c85884-3d8f-4f2a-8f81-97f1aa686837 failed: No such file or directory\n' 

解决办法:下载并安装新版本的dnsmasq

1
2
rpm -Uvh dnsmasq-2.65-1.el6.rfx.x86_64.rpm 

创建实例的时候请使用Ubuntu的镜像测试,请勿使用Cirros。
11.2、http://10.68.19.61:5000/v2.0等API接口不能访问
解决办法:
在确认OpenStack其他情况都正常的前提下,检查是否防火墙未开,打开方法:

1
2
3
/sbin/iptables -I INPUT -p tcp --dport 5000 -j ACCEPT #开启5000端口  
/etc/rc.d/init.d/iptables save #保存配置  
/etc/rc.d/init.d/iptables restart #重启服务
 

RDO部署多节点OpenStack Havana(OVS+GRE)的更多相关文章

  1. [转载]OpenStack OVS GRE/VXLAN网络

      学习或者使用OpenStack普遍有这样的现象:50%的时间花费在了网络部分:30%的时间花费在了存储方面:20%的时间花费在了计算方面.OpenStack网络是不得不逾越的鸿沟,接下来我们一起尝 ...

  2. OpenStack OVS GRE/VXLAN

    https://www.jianshu.com/p/0b52de73a4b3 OpenStack OVS GRE/VXLAN网络 学习或者使用OpenStack普遍有这样的现象:50%的时间花费在了网 ...

  3. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(三)——计算节点的安装

    序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 计算节点: 1.准备结点 安装好ubuntu 12.04 Server 64bits后,进入ro ...

  4. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(二)——网络节点的安装

    序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 网络节点: 1.安装前更新系统 安装好ubuntu 12.04 Server 64bits后,进 ...

  5. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(一)——控制节点的安装

      序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 控制节点: 1.准备Ubuntu 安装好Ubuntu12.04 server 64bits后 ...

  6. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】——序

    OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE](一)——控制节点的安装 OpenStack Havana 部署在Ubuntu 12.04 Serve ...

  7. 探索 OpenStack 之(7):Neutron 深入探索之 Open vSwitch (OVS) + GRE 之 Neutron节点篇

    0. 测试环境 硬件环境:还是使用四节点OpenStack部署环境,参见 http://www.cnblogs.com/sammyliu/p/4190843.html OpenStack配置: ten ...

  8. 探索 OpenStack 之(8):Neutron 深入探索之 OVS + GRE 之 完整网络流程 篇

    前两篇博文分别研究了Compute节点和Neutron节点内部的网络架构.本文通过一些典型流程案例来分析具体网络流程过程. 0. 环境 同 学习OpenStack之(7):Neutron 深入学习之 ...

  9. 学习OpenStack之(6):Neutron 深入学习之 OVS + GRE 之 Compute node 篇

    0.环境 硬件环境见上一篇博客:学习OpenStack之(5):在Mac上部署Juno版本OpenStack 四节点环境 OpenStack网络配置:一个tenant, 2个虚机 Type drive ...

随机推荐

  1. pthread_join直接决定资源是否能够及时释放

    /*http://hankjin.blog.163.com/blog/static/33731937201072675024100/ pthread的内存泄露 # cc thread.c -lpthr ...

  2. Select显示多级分类列表

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. linux实现防止恶意扫描 PortSentry

    linux实现防止恶意扫描 PortSentry   脚本 open 摘要: 端口做为服务器的大门安全很重要,当服务器运行很多服务时并向外提供服务,为防止有人恶意侦测服务器用途,可使用portsent ...

  4. DOS建立带点的文件夹

    md 表示make directory 创建文件夹 rd 表示remove directory 删除文件夹 我们用一个实例来说明一切吧. 1.按 键盘Windows徽标键+R 来打开 运行 对话框 2 ...

  5. 各种api接口

    实用号码归属地查询(IP 地址,手机号码): 默认格式: http://api.liqwei.com/location/ (使用来访者的 IP 地址) 指定 IP 地址格式: http://api.l ...

  6. 6款强大的 jQuery 网页布局创建及优化插件

    本文将为您介绍6款功能强大的jQuery插件,它们能够帮助您方便快捷地创建复杂的网络布局并进行优化. 1.UI.Layout 该插件可以创建任何你想要的UI形式:包括从简单的标题或侧边栏,到一个包含工 ...

  7. C#NetRemoting双向通信

    闲来无事想玩玩双向通信,实现类似QQ的互发消息的功能.于是乎开始学习.Net Remoting. .Net Remoting 是由客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为 ...

  8. 【转载】WebApi 接口测试工具:WebApiTestClient

    正文 前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗.由于接口个数有点 ...

  9. (转)如何根据RGB值来判断这是种什么颜色?

    如何根据RGB值来判断这是种什么颜色? 下面介绍几种典型颜色的RGB值,格式为:颜色(R,G,B). 想象一下有红.绿.蓝三盏射灯打出三束光. 这三束光叠加在一起时产生白色,如果三盏灯的亮度都减半就产 ...

  10. win7cmd静态绑定arp

    netsh -c "172.16.3.1" "f4-ea-67-8b-91-cc"