openstack controller ha测试环境搭建记录(一)——操作系统准备
为了初步了解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测试环境搭建记录(一)——操作系统准备的更多相关文章
- openstack controller ha测试环境搭建记录(二)——配置corosync和pacemaker
corosync.conf请备份再编辑:# vi /etc/corosync/corosync.conf totem { version: 2 token: 10000 t ...
- openstack controller ha测试环境搭建记录(十五)——创建实例
# source demo-openrc.sh # ssh-keygenGenerating public/private rsa key pair.Enter file in which to sa ...
- openstack controller ha测试环境搭建记录(十三)——配置cinder(控制节点)
在任一控制节点创建用户:mysql -u root -pCREATE DATABASE cinder;GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'loc ...
- openstack controller ha测试环境搭建记录(七)——配置glance
在所有集群安装glance软件:yum install -y openstack-glance python-glanceclient 在任一节点创建glance用户:mysql -u root -p ...
- openstack controller ha测试环境搭建记录(六)——配置keystone
在所有节点的hosts文件添加:10.0.0.10 myvip 在所有节点安装# yum install -y openstack-keystone python-keystoneclient# yu ...
- openstack controller ha测试环境搭建记录(五)——配置rabbitmq集群
配置rabbitmq集群的步骤非常简单,因为其本身含集群功能,参考openstack官网文档:http://docs.openstack.org/ha-guide/controller-ha-rabb ...
- openstack controller ha测试环境搭建记录(三)——配置haproxy
haproxy.cfg请备份再编辑:# vi /etc/haproxy/haproxy.cfg global chroot /var/lib/haproxy daemon group ...
- openstack controller ha测试环境搭建记录(十)——配置neutron(控制节点)
创建neutron用户:mysql -u root -p CREATE DATABASE neutron;GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@ ...
- openstack controller ha测试环境搭建记录(八)——配置nova(控制节点)
在任一节点创建nova用户:mysql -u root -p CREATE DATABASE nova;GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localh ...
随机推荐
- 设计模式二 适配器模式 adapter
适配器模式的目的:如果用户需要使用某个类的服务,而这项服务是这个类用一个不同的接口提供的,那么,可以使用适配器模式为客户提供一个期望的接口.
- actor
_timcharper1月 20 02:18 @timcharper , so what app the actor model can help, and what app the thread m ...
- Django CRM学员系统项目
项目需求: 1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户 ...
- OC中的野指针,空指针,nil,Nil,NULL,NSNULL小结
周末与一个老朋友吃饭聊天,因为他正在培训班学习iOS开发,就随便聊了几句,发现自己OC基础上的欠缺和一些知识点的混淆.特此整理如下. 1.空指针 没有存储任何内存地址的指针就称为空指针(NULL指针) ...
- Java-List泛型的用处(能够使用传入泛型对象的方法)
List<PageData> varList = setMealService.list(page); for(int i = 0;i < varList.size(); i++){ ...
- C# 截取字符串某个字符分割的最后一部分
例如 string s1="123.456.789",想截取得到的新字符串为“789” 代码如下: string s1 = "123.456.789"; str ...
- Html的第一次小结
一 Html的文档结构 (1) <html> 标记html文件的头标记,没有什么实质性的作用,但是却是必不可少的 (2) <head> 放置html文件信息.如css的一些 ...
- Win32 SDK Combo Box
如下图所示,显示了三种不同风格的Combo Box样式.当然,现在这样看不出第一种与第三种之间的区别,但是第二种与其他两种的区别是明显的,第二种的列表框始终是出于现实状态的. Combo Box: 一 ...
- centos7如何关闭防火墙
1.centos7自带了firewall,而不是iptables: 关闭firewall: service firewalld stop 或者: systemctl stop firewalld 禁止 ...
- Note over Chinese Encodings
I been confused years ago. Till recently I collected my thoughts together, and now I am clear about ...