为了初步了解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. ubuntu 设置vpn

    百度了资料 http://jingyan.baidu.com/article/fa4125aca7f1b628ad709271.html 1. 设置 VPN CONNECTION 2.configur ...

  2. Oracle自增长序列

    create table user_info ( id number(6) primary key, username varchar2(30) not null, password varchar2 ...

  3. CASE WHEN的两种格式

    CASE WHEN的两种格式 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE ...

  4. gvim work notes.. a few days' work on 64bit vim and plugin compilations

    (a 600MB+ sized c/c++ compiler which is capable of hi-light and JB styled completion!! and of-course ...

  5. How to write a probeContentType() and Usage?

    Files.probeContentType() is an instance of FileTypeDetector class's abstract method String FileTypeD ...

  6. Category / Extention / 属性 / 成员变量 /

    转载自:http://blog.csdn.net/itianyi/article/details/8618128 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个 ...

  7. LoadRunner参数化

    在场景中,每一个vuser能够按照取唯一值的策略,是unique one , 出现84800错误有以下2种(自我实验中得出) 1.vuser的个数大于参数给定的个数 2.vuser初始时间不够,在可通 ...

  8. Objective-C相关Category的收集

    Objective-C相关Category的收集 Categories是给你得不到源码的classes增加功能的一种方法.这个页面收集一些相关的Category,并且持续更新,你可以订阅关注.作者是F ...

  9. AI 人工智能 探索 (一)

    碰撞检测 //逗留碰撞 void OnTriggerStay (Collider other) { if (other.transform.name == name) { //检测距离 //根据距离 ...

  10. 线程带参数的Udp接收

    //work wk = new work(ReadUdpDate); ParameterizedThreadStart parmThre = new ParameterizedThreadStart( ...