管理控制层面示图:

其实在修改这个布署文档是,我发现当时生产中的布署已经严重偏离了openstack高可用的指导思想。我们自己实践的高可用其实是适应自己的架构而做的调整,因为我们现实手头上中没有比较符合Ceph高速SSD集群搭建的服务器,并且又要追求最高的硬盘IO速度,这个布署过程,我们没有使用到swift或者cinder或者ceph这样的块存储或分布式存储,使用是均是本地存储的glance服务,这样便意味着,这个方案无法实现虚拟机实例的热迁移等操作,因为官方说过,需要在compute节点上使用swift或者ceph才能使用实例热迁移 或 调整实例大小时,实现操过作程中虚机不关机
 
当然,需要有需要分布存储的同学,可参考http://www.linuxidc.com/Linux/2015-08/120990.htm 这篇文,它列的ceph集群架构,如果有条件的话,可在它的架构基础上,把服务器的网口升级为2个万兆口,再加万兆交换机堆叠,便可支撑高IO的应用环境。
 
Openstack中,最关键是数据库,数据库采用集群方式,是为了灾备,因此我们使用了以上3台物理机做了数据库,如果对MariaDB Galera集群操作熟悉的话,是可以将3台数据库机器的角色位置IP进行迁移,验证过是可行的。
 
数据库名不共用:我们将数据库名分离,可以让各个区域内部自己访问自己最近的数据库机器,读写不冲突,比如办公网的openstack数据库访问就访问controller1,而科兴网的openstack数据库访问就访问kxcontroller1
 
区域间组件不共用:openstack的高可用指导建议中提到2个区域之间Keystone和keystone之间数据库可以共用,但因我们是跨公网的机房只是打通了VPN,但这不同于内网。担心公网有网络问题。无论keystone布在哪一端,都有可能影响openstack 管理层的操作。所以就没有用。
 
如此一来,大家就可以理解,这是2套独立的openstack布署方案,只是在布署过程中我配置Resion参数时,指了ResionOne ResionTwo
 
那为什么controller每个区域为什么要各2台?因为冷备!
为什么不是热备?因为一开始参考openstack高可用的配置过程,以为会很顺利,但我们实验发现在切换演练过程中(关闭其中1台主用的 controller物理机),并不能实现热切换。关键是RabbitMQ,几乎所有组件都要用到队列,集群中erlang RabbitMQ队列异常时,像nova neutron 的error log都会抛错。导致无法管理,虽然在切换后,组件角色更改了,虽然报错,但如果此时将所以的服务重启一遍,管理就能恢复,人工的介入定位和恢复,这便不是热备的概念
 
在此声明,我们在演练主用controller服务器挂了,并不影响compute节点上虚拟机的正常运行,
 
接下来我们进入到布署与配置环境,当前的环境配置定格在2016年11月8号
 
本次安装 的是openstack的自由版本,以自由版本(Liberty)为准。不是juno和kilo版本,因为他们的前2个版本的网络制式比较复杂。截止2016-11-08,openstack后来又出了2个新版本,Makita和Neton,这2新版本相比自由版本,并没有新开发逆天的功能,网络层架构也是跟自由版本一样,只是优化了配置的步奏和BUG的修复,新添加一些我们暂时用不到的功能而已,这2个新版是否有优化相关的高可用的BUG像RabbitMQ队列之类的,还有待验证
 
好了,进入正题,其实写这篇文前,我原本是先搭好了ResionOne区域一测试环境,后过了一段时间再搭的ResionTwo环境,但我会把这2个环境的布署整成1本笔记本
 
笔记本的格式,如果可以合并成1节的话,我们就这个组件布署写成1节,如果不能合并,我将与
X.1  X.2 将这个功能组件布署分开来写
 
openstack配置文件查询,我都会将原有的配置文件在所有的原机中保存下来,以_bak结尾,以便将来查找配置说明
比如
cp  /etc/neutron/neutron.conf /etc/neutron/neutron.conf_bak

openstack私有云布署实践【0 前言】的更多相关文章

  1. openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  2. openstack私有云布署实践【12.1 网络Neutron-controller节点配置(科兴环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  3. openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】

    采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...

  4. openstack私有云布署实践【13.2 网络Neutron-compute节点配置(办公网环境)】

    所有compute节点 下载安装组件   # yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset -y ...

  5. openstack私有云布署实践【9.2 Glance镜像管理(办公网环境)】

    首先登录controller1创建glance数据库,并赋于远程和本地访问的权限.      mysql -u root -p   CREATE DATABASE glance; GRANT ALL ...

  6. openstack私有云布署实践【11.2 计算nova - compute节点配置(办公网环境)】

    这里我只使用compute1节点配置为示例,其它节点的配置基本是一样的,只是声明的管理IP不同而已   计算节点 # yum install openstack-nova-compute sysfsu ...

  7. openstack私有云布署实践【10.2 计算nova - controller节点配置(办公网环境)】

    一.首先登录controller1创建nova数据库,并赋于远程和本地访问的权限.     mysql -u root -p   CREATE DATABASE nova; GRANT ALL PRI ...

  8. openstack私有云布署实践【15 创建租户网络+实例】

    这里以办公网测试环境为例,   (一)创建租户demo的网络   使用admin用户 source admin-openrc.sh 创建public公网 neutron net-create 1040 ...

  9. openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

    之所以要只有C盘分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入   参考http://www.iyunv.com/thread-45149-1-1.html的灵感   ...

随机推荐

  1. es6 Module

    前言: 这是阮一峰老师的ECMA6入门module一章的缩减,只抽取了我在项目中有用到的内容.带着问题去看老师的教程.感觉吸收更快,也明白了偶尔遇到的export不出来的问题. es6模块设计思想: ...

  2. C语言总结2

    12).预处理指令 1. 什么叫做预处理代码. 以#开头的代码就是预处理代码  #warning #import 2. 手写1个C程序的步骤.(面试题) 1>编写代码 2>编译 1)执行. ...

  3. CodeForces 384C Milking cows

    水题. 对于两个$0$,肯定是先删去后面的$0$,再删去前面的$0$. 对于两个$1$,肯定是先删去前面的$1$,再删去后面的$1$. 对于一个$0$和一个$1$,无论先删哪一个,对答案做出的贡献都是 ...

  4. [前端性能提升]--图片转化为base64

    图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址 意义:网页上的每一个图片,都是需要消耗一个 http 请求下载而来的(所有才有了 csssprites 技术 ...

  5. shrio登录验证

    shiro的认证过程也就是判断用户名和密码的过程,在认证过程中,用户需要提交实体信息(用户名)(Principals)和凭据信息(密码)(Credentials)来判断用户是否合法,最常见的" ...

  6. 关于RDD

    1. transform操作返回的是rdd, action操作返回其它数据类型,可以以此来区分操作类型: 2. Spark懒加载,懒到直到Action操作的时候才会加载数据计算,RDD的create和 ...

  7. 设计模式 -- 组合模式 (Composite Pattern)

    定义: 对象组合成部分整体结构,单个对象和组合对象具有一致性. 看了下大概结构就是集团总公司和子公司那种层级结构. 角色介绍: Component :抽象根节点:其实相当去总公司,抽象子类共有的方法: ...

  8. python(序列递归)【输出原子级别元素。。。】

    晚上回去复习下原来的资料,返现Codebook中有个关于“展开一个嵌套序列”的话题. 任务说明:序列中的子项可能是序列,子序列的子项仍可能是序列,以此类推,则序列嵌套可以达到任意的深度.需要循环遍历一 ...

  9. Error(10028)

    两个进程里都有同一个条件判断的话,会产生并行信号冲突的问题. 同一个信号不允许在多个进程中赋值,否则则为多驱动. 进程的并行性决定了多进程不同能对同一个对象进行赋值.

  10. wampserver使用过程中遇到的问题及相关配置

    wampserver集合了Apache+PHP+Mysql 下载地址:点这里 安装过程很方便,一直点下一步就行,中间会提示选择默认的浏览器及文件编辑器 起因: 使用过程中提示: In the http ...