首页 存档 技术 查看内容

如何利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置

2018-3-30 13:00 |来自: 互联网 262 0

摘要: 内容简介Heartbeat是一款开源程序,负责将集群基础设施容量包括集群成员与消息收发交付至客户服务器。Hearbeat在高可用性服务器基础设施当中扮演着关键性角色。我们通常需要将Heartbeat与Pacemaker等集群资源管理器 ...

内容简介

Heartbeat是一款开源程序,负责将集群基础设施容量包括集群成员与消息收发交付至客户服务器。Hearbeat在高可用性服务器基础设施当中扮演着关键性角色。我们通常需要将Heartbeat与Pacemaker等集群资源管理器(简称CRM)相结合,从而实现完整的高可用性设置。不过在今天的教程中,我们将演示如何利用Heartbeat与DigitalOcean Floating IP轻松创建一套双节点高可用性服务器设置。


如果大家希望进一步提升可用性水平,不妨尝试[Corosync与Pacemaker这一组合](https://www.digitalocean.com/community/tutorials/how-to-create-a-high-availability-setup-with-corosync-pacemaker-and-floating-ips-on-ubuntu-14-04)或者[Keepalived](https://www.digitalocean.com/community/tutorials/how-to-set-up-highly-available-web-servers-with-keepalived-and-floating-ips-on-ubuntu-14-04)。


目标设定

在完成之后,这套高可用性设置将由两台Ubuntu 14.04服务器建立的主动/被动配置构成。要实现这项目标,我们需要借助Floating IP负责指定用户访问服务或者网站的实际方式以指向主服务器或者说活动服务器,除非其检测到该服务器存在故障。一旦Hearbeat服务发现主服务器不可用,第二台服务器将自动运行一套脚本以将Floating IP通过DigitalOcean API重新分配给自己。如此一来,指向Floating IP的后续网络流量将会被定向至我们的辅助服务器,并在主服务器恢复正常之前由其担任活动服务器的角色(在主服务器恢复正常后,其同样会将Floating IP分配给自己以实现切换)。


![Active/passive Diagram](https://assets.digitalocean.com/articles/high_availability/ha-diagram-animated.gif)


备注:今天的教程只涉及在网关层级设置主动/被动高可用性体系,其中包含Floating IP以及负载均衡服务器主服务器与副服务器。此外,出于演示的目的,我们不会为每台服务器配置反向代理负载均衡器,而是通过简单配置使其分别响应对应的主机名与公共IP地址。


为实现这一目标,我们将采取以下步骤:


创建2个Droplet用于接收流量

创建Floating IP并将其分别给其中1个Droplet

创建DNS A记录并指向Floating IP(可选)

在2个Droplet上安装Heartbeat

配置Heartbeat以运行Floating IP重新分配服务

创建Floating IP重新分配服务

测试故障转移效果



先决条件

为了实现Floating IP的自动重新分配,我们必须使用DigitalOcean API。这意味着大家需要生成一条个人访问令牌(简称PAT),该API令牌能够用于认证我们的DigitalOcean账户,并根据API指南部分《[如何生成个人访问令牌](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2#how-to-generate-a-personal-access-token)》章节的指导实现读取与写入访问。大家的PAT将通过脚本进行使用,而该脚本则被添加至集群中的两台服务器内,从而确保其安全访问DIgitalOcean账户以供引用。


除了该API,这分教程还将采用以下DigitalOcean元素:


* [Floating IPs](https://www.digitalocean.com/community/tutorials/how-to-use-floating-ips-on-digitalocean)

* [Metadata](https://www.digitalocean.com/community/tutorials/an-introduction-to-droplet-metadata)

* [用户数据(云配置脚本)](https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-config-scripting)


大家可以点击对应链接了解更多与之相关的细节信息。


创建Droplet

第一步是在同一数据中心之内创建2个Ubuntu Droplet,二者将分别作为之前所提到的主、副服务器。在我们的示例设置当中,二者将分别被命名为“primary”与“secondary”以便于引用。我们将在2个Droplet上分别安装Nginx并利用其惟一标识信息替换掉其索引页。通过这种方式,我们能够轻松证明这套高可用性设置是否实际起效。在真实设置当中,大家的服务器应当根据实际需求运行Web服务器或者负载均衡器。


创建2个Ubuntu 14.04 Droplet,分别为primary与secondary,而以下bash脚本则作为用户数据:


用户数据示例:


#!/bin/bash

apt-get -y update

apt-get -y install nginx

export HOSTNAME=$(curl -s http://169.254.169.254/metadata/v1/hostname)

export PUBLIC_IPV4=$(curl -s http://169.254.169.254/metadata/v1/inte**ces/public/0/ipv4/address)

echo Droplet: $HOSTNAME, IP Address: $PUBLIC_IPV4

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部