查看原文
其他

精品翻译:《OpenStack HA》第三章 对双激活服务的负载均衡

2016-11-01 罗莹 李世军 云技术实践

编者按


《OpenStack HA》这本书由云技术社区志愿者翻译,因为没有出版纸质书的计划,本书的翻译只会翻译重点章节。


翻译的过程是译者和作者思想沟通的过程,也是一个学习的过程,中间充满艰辛,也充满快乐,欢迎大家加入云技术社区翻译小组,一起交流、学习、提高,加入请联系群主(群主微信:xiaolikvm,群穿越使者北极熊微信:hadxiaer)。


在过去的几年里,云计算已经产生了重大影响,它将IT从一个小技巧转换为企业生产环境的一个关键因素。从基础设施即服务(IaaS)的角度来看,云计算比虚拟化先进很多,各种行业和网上贸易已经开始迁移测试环境、过渡环境和生产环境移到IaaS,开始用按需使用的资源模型替代传统的模型。


OpenStack是最流行的和广泛使用的开源云计算平台之一,并且它常被用来基础设施即服务解决方案。让OpenStack具备高可用性对云计算管理者和云计算工程师来说是必须的。这一章将向你介绍高可用的概念,一种通过架构设计来衡量和实现在OpenStack中的高可用(HA)。



翻译:云技术社区金牌专家 罗莹

校审:云技术社区金牌专家 李世军 


在OpenStack里为了避免单点故障,我们用HAProxy(HAProxy, High Availability Proxy)和Keepalived建立一个双节点负载均衡配置。基于TCP和HTTP,HAProxy为应用提供一个非常一致的负载均衡和高可用性解决方案。

这两个节点使用Keepalived互相监测对方。这是通过分配虚拟IP为两个或更多节点实现高可用性的软件,同时监控这些节点的状态,当一个节点下线时切换(failover)到其他节点。Keepalived有更多的功能,如负载均衡和监控。但是在这一章节,我们将聚焦在一个很简单的设置,即IP故障转移。

本章节我们讨论以下主题:

HAProxy和Keepalived的安装

HAproxy和Keepalived安装

在安装HAproxy和Keepalived之前,我们需要知道这个实验设置的预置条件。

对一个实验性配置的要求

在以下这个实验里,你将建立一个双节点的集群,每个节点都将安装Ubuntu 12.04 LTS操作系统。这两个节点会分别命名为controller_1和controller_2,而且会分别分配192.168.56.101和192.168.56.102的IP地址。

然后分配第三个IP地址192.168.1.132用作虚拟IP地址(VIP)。

 以下是一步一步地安装HAProxy和Keepalived的步骤:

1. 作为安装过程的初始步骤,我们需要让内核意识到我们打算绑定额外的并没有在接口文件里定义的IP地址。

2. 要做到这一点,我们可以用前面几章提到过的任何一款编辑器来编辑/etc/sysctl.conf文件。

然后在其中添加以下行:

net.ipv4.ip_nonlocal_bind=1

3. 为了反映出文件增加的配置所引起的变化,我们在不重启系统运行以下命令:

sudo -sysctl -p

4. 下一步,你将用以下命令来安装HAProxy和Keepalived软件:

sudo apt-get update && apt-get install keepalived haproxy -y

5. 成功安装上述软件以后,你的屏幕上会有如下显示:

接着,我们要定义Keepalived的配置。先要在controller_1和controller_2上建立/etc/keepalived/keepalived.conf文件,如下:

节点controller_1配置Keepalived

在这个实验里我们必须给每个节点作配置。所以我们需要对第一个节点,controller_1,做一个初始化。

你需要给keepalived.conf文件添加以下条目,然后你还得把主机名称设置为router_id,在这个例子里router_id是controller_1。然后设定虚拟IP为192.168.1.32:

节点controller_2配置Keepalived

现在你需要给controller_2的keepalived.conf文件添加以下条目,然后你还得把主机名称设置为router_id,同样在这个例子中router_id是controller_2。然后设定虚拟IP为192.168.1.32:

定义HAProxy配置

下一步你要给controller_1和controller_2上的HAProxy做配置。

用任一编辑器打开/etc/haproxy目录下的haproxy.cfg文件,如下命令:

sudo gedit /etc/haproxy/haproxy.cfg

节点controller_1配置HAProxy

在上面那个文件里,把全局段里日志位置条目的IP地址以及统计监听者的IP地址都改变为controller_1的IP地址,即192.168.56.101。然后在统计认证行设置用户名和口令。用户名和口令根据你自己机器的设置而定。这个用户名和口令应该是属于OpenStack用户。

节点controller_2配置HAProxy

在以前haproxy.cfg那个文件里,把全局段里日志位置条目的IP地址以及统计监听者的IP地址改变为controller_2的IP地址,即192.168.56.102。然后在统计认证行设置用户名和口令。用户名和口令要根据你自己机器上的设置而定。全局段里设置的参数是对所有配置的节点都是全局有效。缺省段里的一些参数是一些进程相关属性的设置。而监听段为HAProxy提供监听80端口一个简单的设置,然后把所有请求前转到在192.168.56.102监听的服务器。。

现在我们要编辑/etc/default/haproxy文件启动HAProxy。。

ENABLE属性的缺省值改成1.

然后我们两个节点上(controller_1和controller_2)使用以下命令重启的HAProxy和Keepalived服务:

sudo service keepalived restart

   sudo service haproxy restart

在两个节点上完成所有以上步骤,你现在就有了一个高可用的负载均衡对。在这里,两个节点中的一个节点上的虚拟IP应该是激活的。HAProxy的负载均衡有好几种策略可用,比如循环(round robin),最少连接和源端控制。在我们这个例子里,我们使用循环策略作为缺省的负载均衡算法。

因此,我们需要保证整个设置能正常工作。也就是保证任一节点是激活的,controller_1或controller_2

激活controller_1节点

首先以下过程将controller_1节点激活。在这里,我们假设controller_1是用虚拟IP在激活模式。为了确认这一点,我们可以使用以下ip命令。

ip a | grep eth4 //in this case eth4 is assigned as main NIC

为了确认controller_2节点的激活状态,在controller_2节点重复以上步骤。

激活controller_2节点

这里我们假设controller_2用虚拟IP是激活的。为了确认这一点,我们可以使用以下ip命令:

请注意这里本地IP和虚拟IP都显示出来了。如果我们重启controller_1, controller_2将迅速得到虚拟IP。

因此,我们确保VIP在任一节点可用,如controller_1或 controller_2,且controller_1或 controller_2必须是激活的。

小结

在这一章,我们通过对HAProxy和Keepalived软件的详细配置实例,学习了网络负载均衡的基础和高级的知识。

在下一章,我们将学习传统的集群方法,比如pacemaker集群资源管理和他们的代理,启动顺序,失效与恢复,隔离机制,以及HTTP REST API,MySQL和AMQP集群的负载均衡。


推荐活动

运维世界大会(OpsWorld2016)

深圳站

长按报名OpsWorld 运维世界大会由运维帮和云技术两大社区联合举办,两大社区汇聚了大量的行业精英和技术领袖,拥有广泛的群众基础。为了加强业内的技术交流,本次大会希望通过分享先进的互联网技术,以带动整个行业的发展,致力于打造世界领先的互联网技术分享平台!


老王专场+运维自动化专场门票限时只要10元!!!


云技术社区微信群加入,联系北极熊格式:姓名-城市-公司 kvm_virt 云技术干货分享!长按识别左侧二维码,关注我们


云技术社区QQ群,99.99%纯技术交流气氛

QQ 1群:434720759(已满

QQ 2群:131961942,加入密码大写KVM

1000人VMWare技术交流群494084329,加入密码小写vm 

OpenNebula QQ群:495571573 加入密码Nebula

2000人OpenStack开发纯技术群: 334605713 加入密码nova

Cloudstack纯技术交流群:515249455密码cs

2000人桌面云行业讨论: 484979056 加入密码大写VDI

2000超融合行业讨论群:65779632 加入密码大写HC

2000人云技术招聘求职群: 279875515 加入密码hr


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存