Openstack 高可用性服务

前言

1.1 高可用性系统

高可用系统至少关注以下两个问题:

系统宕机时间―系统服务无法访问的时间总和。

数据丢失―意外删除或破坏数据。

高可用性的一个关键方面是消除单点故障(SPOFs)。SPOF是单个的设备或软件故障将导致系统停机时间或数据丢失。为了消除单点故障,必须存在如下必要的冗余:

网络组件,如交换机和路由器

应用程序和自动服务迁移

存储组件

设施服务,如电力、空调、消防

高可用性系统通常达到99.99%或更多的正常运行时间,这大约相当于每年累计停机不到一个小时。为了实现这一目标,应保持高可用性系统发生故障后恢复时间约一到两分钟,有时更少。

对于基础设施服务来说,如果实现了必要的冗余,OpenStack目前能满足这样的可用性需求,这意味着OpenStack提供的各项服务的正常运行时间的99.99%是可用的。 然而,OpenStack并不能保证运行于基础设施上的个人的虚拟机实例99.99%的可用性。

1.2 无状态和有状态服务

无状态的服务是提供一个你的响应请求后,不需要进一步关注。无状态服务的高可用性,您需要提供冗余实例和负载均衡。 OpenStack无状态的服务包括nova-api,nova-conductor,glance-api,keystone-api,neutron-api nova-scheduler。

一个有状态的服务,后续请求将依赖于第一个请求的结果。有状态的服务管理更困难,因为一个行动通常涉及多个请求,所以只是提供额外的实例和负载均衡不会解决这个问题。例如Horizon 服务,如果用户界面重置了,后续任务被引导去了一个新服务器,它是没有用的。OpenStack有状态的服务包括OpenStack数据库和消息队列。

1.3 主动/被动

在一个主动/被动配置里,需要安装一个备用机,备用机通常处于待机状态,当主机宕机后,备用机启动提供服务。额外的应用需要安装(如: Pacemaker 或 Corosync)来监控这些服务,并必要时启动备用机来提供服务。

1.4 主动/主动

在主动/主动模式下,系统也需要备用机,但将同时管理主机和冗余系统。 这样,如果有一个失败了,用户不太可能注意到。 因为备份系统已经上线。 通常对于一个无状态的服务来说,使用一个虚拟IP地址和HAProxy等负载均衡器来达到负载均衡。 对于一个有状态的服务来说,需要保证包括冗余服务所有实例都有一个相同的状态。例如,更新数据库的一个实例也会更新所有其他实例。

2. 使用主动/被动,主动/主动混合模式实现集群

这只是一个实例来实现这些高可用性架构,但他们绝不是唯一的方法。首先做一下环境的假设,如图1所示一共有四个服务器,两个云控制器节点组成一个集群,两个网络节点组成一个集群,图中列出了一些主要的OpenStack组件。本例中没有列出计算结点,因为计算结点不需要配置集群。集群中的每一个OpenStack服务可以采用不同的模式,本例部分采用主动/主动模式,部分采用主动/被动模式。

开始配置

节点IP地址
controller192.168.20.50
controller2192.168.20.80
controller3192.168.20.85
注意!
这边实验需要三台机器,分别为:controller ,controller2 ,controller3 
  • 修改那两台主机的名字:
hostnamectl set-hostname controller2

hostnamectl set-hostname controller3

关闭两台主机的防火墙:

systemctl stop firewalld;systemctl disable firewalld
  •  controller2,controller3 安装相应工具:
yum install vim net-tools tree lrzsz bash-completion wget -y

controller 控制节点/etc/hosts 下添加:

192.168.20.80   controller2
192.168.20.85   controller3
注意!
IP地址是自己的

controller 控制节点下/etc/hosts 文件发送到controller2, controller3 /etc/hosts底下:

scp /etc/hosts 192.168.20.80:/etc/hosts;scp /etc/hosts 192.168.20.85:/etc/hosts

controller 控制节点/etc/selinux/config 文件发送到controller2, controller3/etc/selinux/config底下

scp /etc/selinux/config 192.168.20.80:/etc/selinux/config ;scp /etc/selinux/config 192.168.20.85:/etc/selinux/config

更换yum源和配置时间服务请查看《Openstack O 版本搭建攻略》这个站点:

双机互信:

ssh-keygen -t rsa

 

复制id_rsa.pub 文件:

ssh-copy-id root@192.168.20.80

ssh-copy-id root@192.168.20.85
注意!
controller2,controller3 执行同样的互信操作。

安装pacemaker集群相关组件:

yum install pcs pacemaker corosync fence-agents-all -y  

启动pcsd服务(开机自启动)

systemctl start pcsd.service ;systemctl enable pcsd.service 

创建集群用户:

passwd hacluster

上述所有操作都需要在三个节点上面执行

集群各节点之间进行认证:

pcs cluster auth controller controller2(此处需要输入的用户名必须为pcs自动创建的hacluster,其他用户不能添加成功)

创建并启动名为HA_cluster的集群:

其中controller controller2 为集群成员:

pcs cluster setup --start --name HA_cluster controller controller2

设置集群自启动:

pcs cluster start --all      # 启动集群服务

pcs cluster enable --all   # 设置开机自启动

查看并设置集群属性:

查看当前集群状态:

pcs cluster status

检查pacemaker 服务:

ps aux | grep pacemaker

检验Corosync 的安装及当前corosync 状态:

corosync-cfgtool -s

corosync-cmapctl | grep members

pcs status corosync

检查配置是否正确(假若没有输出任何则配置正确):

这边就暂停更新了!

博主报错了呜呜呜!

报错解决了记得联系以下博主哦嘿嘿嘿!

版权声明:
作者:小李
链接:https://xianshengli.cc/openstack-%e9%ab%98%e5%8f%af%e7%94%a8%e6%80%a7%e6%9c%8d%e5%8a%a1/
来源:先生不吃香菜
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Openstack 高可用性服务
前言 1.1 高可用性系统 高可用系统至少关注以下两个问题: 系统宕机时间―系统服务无法访问的时间总和。 数据丢失―意外删除或破坏数据。 高可用性的一个关键方面……
文章目录
关闭
目 录