为了初步了解openstack controller ha的工作原理,搭建测试环境进行学习。

在学习该方面知识时,当前采用的操作系统版本是centos 7.1 x64。
首先在ESXi中建立2台用于测试的虚机,最小化安装完成centos,配置IP分别为10.0.0.12、10.0.0.13,主机名分别为controller2、controller3。

关闭防火墙:
# systemctl stop firewalld
# systemctl disable firewalld

修改主机名:
# hostnamectl set-hostname controller2

升级系统至最新版本(升级至centos 7.1)并重启:
# yum update -y

下载pacemaker组件的repo文件:
# cd /etc/yum.repos.d
# wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/network:ha-clustering:Stable.repo

安装相关软件:
# yum install -y wget
# yum install -y yum-plugin-priorities
# yum install -y openstack-selinux
# yum install -y ntp
# yum install -y pacemaker corosync resource-agents
# yum install -y crmsh cluster-glue
# yum install -y haproxy

配置/etc/hosts:
10.0.0.11 controller
10.0.0.12 controller2
10.0.0.13 controller3

配置NTP时间同步:
# vi /etc/ntp.conf

找到ntp.conf中指定server的部分,注释原文,增加测试环境中的NTP服务器(10.0.0.11):
     21 #server 0.centos.pool.ntp.org iburst
     22 #server 1.centos.pool.ntp.org iburst
     23 #server 2.centos.pool.ntp.org iburst
     24 #server 3.centos.pool.ntp.org iburst
     25 server controller iburst

启动ntp服务:
# systemctl enable ntpd.service
# systemctl start ntpd.service

验证ntp工作正常:
# ntpq -c peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*controller      LOCAL(0)         6 u   65  128  377    0.213   -0.620   0.040
# ntpq -c assoc

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1  9233  965a   yes   yes  none  sys.peer    sys_peer  5

相关资料地址:

高可用实现官网描述地址:
http://docs.openstack.org/ha-guide/controller-ha.html

写得很好的openstack高可用博文:
http://www.cnblogs.com/sammyliu/p/4741967.html

CRM中的几个基本概念:
http://www.toxingwang.com/linux-unix/haorlb/1660.html

HAProxy 1.5官方文档:
http://cbonte.github.io/haproxy-dconv/configuration-1.5.html

HAProxy + Pacemaker实现MySQL的高可用负载均衡:
http://www.zrwm.com/?cat=166

官网centos7安装openstack文档(非高可用):
http://docs.openstack.org/juno/install-guide/install/yum/content/neutron-controller-node.html

为便于快速部署,本文直接粘贴已测试验证过的配置,有些参数甚至其它扩展的内容都直接略去了。
这便是一种遗憾。故建议上述链接的资料还是蛮看看,尤其是官方资料。
我在学习官网资料过程中,保留了一部分翻译,粘贴在每篇博文的尾处,不做排版和整理。

--------------------------------------------------------------------------------------------------------
OpenStack无状态的服务包括nova-api、nova-conductor、glance-api、keystone-api、neutron-api、nova-scheduler。
OpenStack有状态的服务包括OpenStack数据库和消息队列。有状态服务高可用性取决于你可以选择主动/被动(Active/Passive)或主动/主动(Active/Active)配置。
无状态服务的高可用性,需要提供冗余实例和负载平衡。

1、主动/被动(Active/Passive)配置
主备概念,主节点出问题时,备节点顶上。一般用VIP实现,使用Pacemaker和Corosync。

2、主动/主动(Active/Active)配置
无状态使用VIP进行负载平衡,可以使用HAProxy软件。

OpenStack组件分成3类:
1、使用Python语言写的API无状态服务
2、状态类型服务,如SQL数据库
3、AMQP,提供openstack内部的有状态服务

MySQL/Galera集群在HAproxy之后运行,HAproxy对进来请求进行负载均衡,对外只暴露一个IP地址。

MySQL使用主动/被动模式,以避免死锁的发生。
多个RabbitMQ节点使用oslo.messaging文件进行配置。当一个AMQP节点失效,应用程序自动重连下一个AMQP节点。
Memcached是分布式缓存,用于存放时效性很短的数据,如token。

openstack controller ha测试环境搭建记录(一)——操作系统准备的更多相关文章

  1. openstack controller ha测试环境搭建记录(二)——配置corosync和pacemaker

    corosync.conf请备份再编辑:# vi /etc/corosync/corosync.conf totem {        version: 2 token: 10000        t ...

  2. openstack controller ha测试环境搭建记录(十五)——创建实例

    # source demo-openrc.sh # ssh-keygenGenerating public/private rsa key pair.Enter file in which to sa ...

  3. openstack controller ha测试环境搭建记录(十三)——配置cinder(控制节点)

    在任一控制节点创建用户:mysql -u root -pCREATE DATABASE cinder;GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'loc ...

  4. openstack controller ha测试环境搭建记录(七)——配置glance

    在所有集群安装glance软件:yum install -y openstack-glance python-glanceclient 在任一节点创建glance用户:mysql -u root -p ...

  5. openstack controller ha测试环境搭建记录(六)——配置keystone

    在所有节点的hosts文件添加:10.0.0.10 myvip 在所有节点安装# yum install -y openstack-keystone python-keystoneclient# yu ...

  6. openstack controller ha测试环境搭建记录(五)——配置rabbitmq集群

    配置rabbitmq集群的步骤非常简单,因为其本身含集群功能,参考openstack官网文档:http://docs.openstack.org/ha-guide/controller-ha-rabb ...

  7. openstack controller ha测试环境搭建记录(三)——配置haproxy

    haproxy.cfg请备份再编辑:# vi /etc/haproxy/haproxy.cfg global    chroot /var/lib/haproxy    daemon    group ...

  8. openstack controller ha测试环境搭建记录(十)——配置neutron(控制节点)

    创建neutron用户:mysql -u root -p CREATE DATABASE neutron;GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@ ...

  9. openstack controller ha测试环境搭建记录(八)——配置nova(控制节点)

    在任一节点创建nova用户:mysql -u root -p CREATE DATABASE nova;GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localh ...

随机推荐

  1. springMVC中ajax的运用于注意事项

    ajax的运用: 注意事项: dataType:"json"在ajax中可写可不写(ajax能够自动识别返回值类型),写了更加规范,可以在ajax识别错误返回值类型的时候,指定返回 ...

  2. 设置TabBar分栏控制器上图片的大小问题

    我们都知道,iOS因为屏幕分辨率的问题,UID在交付我们iOS开发人员程序配图的时候,一般是三套图,分别对应三种不同的分辨率,对不同size的屏幕系统会自动使用不同像素的图片,我们只需要在命名时给三套 ...

  3. 页面开发辅助类—HtmlHelper初步了解

    1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. ...

  4. IO流---字符流(FileWriter, FileReader ,BufferedWriter,BufferedReader)

    IO   Input  Output IO流用来处理设备之间的数据传输. java对数据的操作是通过流来实现的. 流按流向分:输入流,输出流     是相对内存而言的.把硬盘的数据读取到内存中就是输入 ...

  5. POJ3321/Apple tree/(DFS序+线段树)

    题目链接 Apple Tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9692 Accepted: 3217 Descr ...

  6. selenium RC

    http://blog.sina.com.cn/s/blog_68cb48770100v9c7.html http://www.cnblogs.com/hyddd/archive/2009/05/24 ...

  7. angular.js_$scope

    Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope 可应用在视图和控制器上. Angular ...

  8. Linux学习 -- 系统管理

    1 进程管理 判断服务器健康状态 top [选项] 查看系统中所有进程 ps aux      BSD格式 ps -le        Linux格式 pstree [选项] -p   显示PID - ...

  9. android 5.0

    google 2014开发大会发布了全新的设计语言Material Design,并计划将其应用到Android.Chrome OS和网页等平台上,而最新发布的Android L系统就采用了这种设计语 ...

  10. PAT (Advanced Level) 1103. Integer Factorization (30)

    暴力搜索. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...