RDO单机安装Openstack以及lvm卷存储与Vxlan网络配置

http://blog.csdn.net/qinscx/article/details/42065267

最近在搞cf,全称cloudfoundry,vmware推的一个pass平台,底层需要依赖于一个iass。当前比较火的Iass,无非就三个,vmware的vsphere+vcenter, openstack, 还一个aws。比较来,只有openstack比较合适。 公司有同事搭了一套H版的Openstack在搞研究,也不好就在他们搭的环境上面研究我的东西,会相互干扰。于是就向公司申请一台服务器,决定自已搭上一套单节点的openstack,然后在上面再来部署cf。环境搭建过程中加了一个QQ群,大家一起讨论,一起进步,也蛮Happy的。其间不断有新的成员进来,很多都是从零开始接触openstack的,很多同学被openstack的网络配置搞得焦头烂额,不时看到求救。我结合自已的经验帮了几个,但后来者不断,也不能一直当奶爸。在此,把我的配置过程分享出来,希望可以帮到一些朋友。我正式接触并部署openstack也就一个多月,希望大牛们勿喷,写点东西也不容易。


RDO安装单节点openstack

目前单节点Openstack最简单的安装,莫过于采用红帽的RDO方式,官方主页为: https://openstack.redhat.com/Main_Page。以下是安装过程(以我的环境为例):

1. 服务器安装centos7 64位,采于最小化安装即可

2. 修改hostname,并在/etc/hosts里添加一行,将服务器的ip与hostname对应写进去

3. 启用selinux, 修改 /etc/selinux/config,按注释修改为enforcing (原来需要禁用,后来又必须要启用)

4. 禁用NetwrokManager服务:
          systemctl stop NetworkManager
          systemctl disable NetworkManager

5. 为服务器配置固定IP,修改 /etc/sysconfig/network-script/ifcfg-em1文件

6. 依次执行如下命令:
          yum install -y http://rdo.fedorapeople.org/rdo-release.rpm
          yum install -y openstack-packstack
          yum update

7. reboot重启机器

8. 修改 /usr/lib/python2.7/site-packages/packstack/puppet/templates/mongodb.pp 文件,
         修改后文件内容如下:
               class { 'mongodb::server':
                   smallfiles   => true,
                   bind_ip      => ['%(CONFIG_MONGODB_HOST)s'],
                   pidfilepath => '/var/run/mongodb/mongod.pid'
                }
          如果不改这个,执行到安装Mongodb的时候,会出错。解决方法参考:
          https://ask.openstack.org/en/question/54015/mongodbpp/?answer=54076#post-id-54076

9. 执行 packstack --allinone 进行安装

接下来,就是比较长时间的自动安装了。视网络情况而定,我的大概安装了三个多小时才安装完成。至此,juno版的openstack基本上就安装完成了。安装完成之后,会在root下面生成两个文件, 一个叫 keystonerc_admin, 另一个叫 keystonerc_demo。里面分别定义了初始的两个用户的环境变量。如果要执行openstack的命令,需要先执行如: source /root/keystone_admin这样的命令来导入环境变量,否则你将没有命令执行权限。


lvm卷存储配置

openstack安装好了之后,需要马上考虑为它配置卷存储。创建虚拟机,需要使用大量的磁盘空间,最简单的方式莫过于就使用本机所带的磁盘。rdo安装openstack完成之后,默认使用的是lvm的卷存储方式,并且已经为你建了一个默认的vggroup, 名叫 cinder-volumes, 可以执行 vgdisplay 看到它的详情,不过默认只给分配了20G的空间。这点空间肯定是不够的,需要马上为它扩容。步骤如下 :

1.  首先执行 fdisk -l, 查看还有哪些磁盘或分区可用

2.  在所在磁盘上创建新的分区。例如当前可用的磁盘为 /dev/hdb,目前在上面已经有了两个分区, hdb1 与 hdb2, 但还有空余的空间。 这时可执行如下命令:

1) fdisk /dev/hdb (对hdb所在磁盘进行操作)

2 )  n (表示创建新的分区)

3)   p (这时会提示你选择分区类型,主分区p还是扩展分区e。一般采用默认的回车就行)

4) 3 (这时会出现一个数字,代表分区的序号,3即代表新的分区为 hdb3, 这里也采用默认即可

5 ) 起始地址 (默认即可)

6) 结束地址  (按照你自忆的设置来,默认是采用全部的空间)

7) t  8e  (指定分区类型为8e, 8e代表的是linux lvm分区)

8)w (将所有改动写入磁盘

3.  执行partprobe重读分区表,然后创建pv,执行: pvcreate /dev/hdb3

4.  扩容vg。 执行: vgextend cinder-volumes /dev/hdb3

5.  输入 pvdisplay 查看各pv的情况。再输入 vgdisplay 可以看到 cinder-volumes 已经实现了扩容。

cinder-volumes扩容完成,后面你就不用担心虚机的磁盘问题了。创建虚机时,需要为它再分配置根磁盘,临时磁盘与swap磁盘,都会从这个lvm池中去获取资源。


Vxlan网络配置

接下来就是为openstack配置网络了。安装好openstack之后,默认创建了几个网络。不过,我没有采用这些默认的,直接全删了,重头开始配置自已的网络。网络配置不对的话,会导致同一内部网络的虚机可以相互ping通,但是通不了外网,外网也连接不到虚拟机。

网桥配置

要想虚机可以通外网,首先必须要先改系统的三个配置文件,让rdo安装过程中生成的br-ex网桥能够正常连接物理网卡。官方文档为: https://openstack.redhat.com/Neutron_with_existing_external_network

1.  修改 /etc/sysconfig/network-scripts/ifcfg-em1, 以下是我修改完成之后的文件内容:

[plain]  view plain  copy
  1. HWADDR=C8:1F:66:EC:47:71  
  2. DEVICE=em1  
  3. TYPE=OVSPort  
  4. DEVICETYPE=ovs  
  5. OVS_BRIDGE=br-ex  
  6. ONBOOT=yes  

2. 修改 /etc/sysconfig/network-scripts/ifcfg-br-ex, 文件内容为:

[plain]  view plain  copy
  1. HWADDR=C8:1F:66:EC:47:71  
  2. DEVICE=em1  
  3. TYPE=OVSPort  
  4. DEVICETYPE=ovs  
  5. OVS_BRIDGE=br-ex  
  6. ONBOOT=yes  
  7. [root@localhost network-scripts(keystone_admin)]# cat ifcfg-br-ex   
  8. DEVICE=br-ex  
  9. DEVICETYPE=ovs  
  10. TYPE=OVSBridge  
  11. BOOTPROTO=static  
  12. IPADDR=192.168.2.70  
  13. NETMASK=255.255.252.0  
  14. GATEWAY=192.168.1.181  
  15. DNS1=192.168.11.181  
  16. ONBOOT=yes  

3. 修改 /etc/neutron/plugin.ini,在文件中添加如下内容:

[plain]  view plain  copy
  1. network_vlan_ranges = physnet1  
  2. bridge_mappings = physnet1:br-ex  
[plain]  view plain  copy
  1. 4. 重启网络: systemctl restart network  

网络配置

接下来是在dashboard中进行网络配置, 网络类型采用vxlan

1. 创建外部网络

使用admin登陆dashboard, 然后在管理员 -》 网络 页面,点击创建网络:

出页面如下所示:

面名称可以自定,项目也自定,我没有新建项目了,直接使用的admin,用户也直接一直使用admin,这样方便,超级管理与租户管理都在一个用户里,不用来回切换用户了。网络类型这里我们选vxlan,下面的段ID可以随便填个数字即可。 重点是一定要勾选上外部网络。 最后点击创建网络即可。 

2. 为外网网络创建子网

点击新建好的外部网络的名字,可进入网络详情去创建子网,点编辑网络可以修改外部网络参数。

进入外网网络详情后,点击创建子网, 可显示如下界面:

图中,名字随意,但网络地址与网关一定要注意了,这是决定你的虚机能否通外网的关键。这个网络地址,必须是你服务器所在网络的真实网络地址,网关也必须为服务器的真实网关。填好了点下一步:

上图中,需要去掉dhcp功能,分配地址池需要注意一下,这里为一些地址段,每行代表一段,由起始地址加逗号再加结束地址构成,可以添加多段。第一段的首个地址,将做为此子网网关的地址。其余的地址,均放入此外部网络的浮动IP地址池中。以后租户申请浮动IP时,将会从这些段中依次分配。DNs域名解析服务,也必须要添真实的首备选DNS,以正确解析域名。最后点击创建, 外部网络就创建好了。

3. 创建租户网络
Dashboard中,导航中选择项目-》网络-》网络, 可以创建租户网络。租户网络没有什么太多需要注意的地方,可随自已需求进行配置。
4. 创建租户路由
Dashboard中,导航中选择项目-》网络-》路由 , 可以创建租户路由 路由创建很简单,输入名字就可以了。 
5. 路由绑定
路由创建好了之后,需要为它指定网关与绑定端口。指定网关为外部网络,绑定端口为租户网络即可。
6. 查看网络拓扑图
路由也绑定好了之后,可以 选择项目-》网络-》网络拓扑, 可以看到当前的网络拓扑详情。如下图所示:
击正常,可以看到更多信息,如上图所示。上图中是我已经创建了部分虚拟之后的拓扑图,初始的只有两边的网络与中间的路由器。两边网络的竖线下端会显示所在网络的网络地址,路由两边会显示此网络的网关地址。

安全组配置

虚机要想通外网,还有一步也是必须的,那就是配置安全组,需要添加一些规则,让外面的数据可以进来。我没有再新建安全组了,直接修改了default安全组,为它添加了如下三个规则:

1. 定制TCP规则, 方向入口, 打开端口为端口范围,起始端口1, 终止端口65535
2. 定制UDP规则, 方向入口, 打开端口为端口范围,起始端口1, 终止端口65535
3. 定制ICMP规则, 方向入口, 类型为-1,编码也为-1

当然正常情况下,应该是要为各种需要创建对应的安全组,只打开指定端口。我这比较懒,但对于只基于openstack来做一些别的方面的技术验证的话,这样设置是最方便的。


网桥搭好,网络配好,最后安全组规则也配置正确,再去创建虚机,网络应该就不会有太大问题了。好吧,接下来,在openstack上尽情奔放吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值