管理控制层面示图:

其实在修改这个布署文档是,我发现当时生产中的布署已经严重偏离了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. Springmvc中配置Quartz使用,实现任务实时调度。

    菜鸡的自我修炼,第一次接触quartz,做个记录.-------jstarseven 最近在项目中,第一次在springmvc中配置实用quartz,深刻的感受到quartz带来的方便,顺手做个记录. ...

  2. jQuery+HTML5声音提示

    WEB应用中,有时需要播放特定的声音,比如有新消息或者在线聊天消息声音提示,以前我们通过flash实现,今天我们将使用jQuery和HTML5结合示例来实现如何把声音提示带入WEB应用中. 在本例中, ...

  3. floor()函数 向下取整 ceil()函数向上取整

    floor(x)  is the largest integer not greater than x , 也就是,floor(x) 返回的是小于等于x的所有整数中最大的整数,简单的说,就是去掉x的小 ...

  4. Redmine数据库备份及搬家

    Bitnami Redmine的备份分2种方式: 1.导出数据库 2.整个目录搬家 不管是哪种都想停掉服务,redmine相关的服务有以下5个: redmineApache redmineMySQL ...

  5. Hadoop入门实例——WordCount统计单词

    首先要说明的是运行Hadoop需要jdk1.6或以上版本,如果你还没有搭建好Hadoop集群,请参考我的另一篇文章: Linux环境搭建Hadoop伪分布模式 马上进入正题. 1.启动Hadoop集群 ...

  6. 图片,音频资源预加载和文档dom加载

    在项目中遇到一个问题,ajax请求音频资源,然后动态的插入到文档中,其中.原生的音频外观实在太丑了,而且每个浏览器的样式都不一样,采取了一个audio插件. 就遇到一个问题,请求后的直接调用插件的话, ...

  7. 【Python】32. Longest Valid Parentheses

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  8. linux的环境变量设置

    source/etc/profile是让/etc/profile文件修改后立即生效, 还有一种方法是:. /etc/profile 注意:.和/etc/profile有空格 linux中source命 ...

  9. AndroidStudio0.5.2 BUG 导致 menu 菜单键崩溃

    郁闷了半天,今天发现一点击手机 menu 键应用就崩溃了,记得之前都是好好的,调试了半天代码还是搞不定,于是网上google了一番,发现仅国外有一两篇文章有提到类似问题,据说是 0.5.2 版本的 B ...

  10. table表头thead固定

    <html> <head> <meta charset="utf-8"/> <script type="text/javascr ...