如何创建基于RHCS的linux双机环境(一)

这是介绍如何在 Linux 上创建高可用群集的三部分系列文章中的第一篇。

下面我们将重点介绍基本概念, 讨论先决配置, 并创建一个基本架构。

实际配置将在本系列的第二篇文章中进行。我们将在第三篇文章中介绍测试用例和优化选项。

究竟什么是集群, 为什么我们需要它们?

从广义上讲, 集群是指有两台或多台计算机(也称为节点)在一起完成某些任务时,同步计时、进程和数据。可以在硬件和软件级别创建群集。此外, 集群可由数据中心堆栈的任何级别上构成:从物理组件 (控制器卡, 无论是存储还是网络)、虚拟机管理程序、操作系统, 最后在用户空间级别:中间件 (如 web 服务器或数据库)或在最终用户应用程序中。

创建群集有三个基本原因:高性能计算 (HPC)、网络流量负载均衡和高可用 (HA) 架构下的业务恢复能力。

HPC 或网格计算是指将任务分解为子组件, 并在群集中的节点上执行每个组件, 以提高计算速度。最终对每个节点的输出进行重新配置, 以生成最终结果。

当生产流量在群集中的节点之间分配以减少任何单个系统上的负载时, 就称之为负载均衡。各种算法确定分布调度的方法, 如循环(round-robin)或最小连接(least connections)等。可以在网络级别进行平衡以提高性能和提供弹性。网络负载均衡类似于主机级别的绑定或组合, 但在群集情况下, 它发生在物理节点之间。

高可用或故障转移群集是为了提高特定服务的容错特性。在这种情况下, 服务是从节点之间管理的资源组中建立起来的。在运行服务的任何节点出现故障时, 受影响的节点都会被从群集中取出, 该节点将被fence, 服务将重新定位到另一个正常的节点。HA 群集中的常见资源是共享存储设备和虚拟 IP 地址。此外, 还将有一个带有可选启发式特性的栅设备, 用于触发故障节点的重启或 IO 挂起。

Red Hat Cluster Suite (RHCS)

RHCS 是红帽的软件, 用于基于红帽企业 Linux (RHEL) 的环境下,在操作系统级别创建 HA 群集。

软件包安装

需要在将加入群集的每个 RHEL 节点上安装以下包:

rgmanager, lvm2-cluster, and gfs2-utils。

请注意, rgmanager 是强制性的, 而其他两个包的需要将取决于是否使用 clvmd 或 gfs 服务。可选包有ricci和luci。它们的功能分别是远程 API 和管理 web 控制台。

群集配置

虽然 RCS 支持多达16个节点的群集, 但我们将仅为此示例创建一个简单的两个节点的群集。我们的集群将管理 web 服务器 (Apache httpd) 和数据库 (postgresql) 的故障转移。

先决条件

  1. 共享存储    postgresql数据目录和 httpd的document root将在我们设计的节点之间共享。因此, 这意味着我们需要使用一个文件系统来处理并发读取和写入,并执行锁定以保持一致性。非常适合此任务的是 GFS2 文件系统, 在本例中我们选择使用该文件系统。

注意: 可以创建一个无共享存储的群集, 在这种情况下, 必须在应用程序级别实现数据同步。例如, 如果 web 是无状态感知的,您可以在数据库级别使用复制, 或者将所有状态信息存储在数据库中, 这样的话document root就不必共享了。

在 RHCS 中使用共享存储时的一个重要要求是, 群集中的所有节点在任何时候都可以访问卷。虽然文件系统本身不需要在每个节点上挂载, 但它必须是都可访问的。这是因为群集中的 GFS 将驻留在由 clvmd 管理的 LVM 卷上, 并且元数据必须在群集成员之间保持一致。

因此, 如果使用 CIFS 或 NFS这类文件系统必须在每个节点上存在的协议, 或者如果存储由 SAN 提供, 则 Lun 应划分给每个节点, 并启用并发写入。

2. 将使用独立的专用和公用 IP 子网。专用子网可以使用其中一个专用 IP 范围: 192.168. * *、10.0. * 或 172. * *. *。

专用网络需要支持多播消息, 并将专门用于广播心跳消息。需要将此网络上的延迟保持在最低限度。客户端和实际服务将在公共网络上运行, 公共网络可以是任何可路由的网络地址。

3. 服务分解为基本资源及其依赖项的列表。即运行服务所需的IP 地址、存储、应用程序和自定义脚本。每个资源都将在群集配置文件中进行定义。最后, 资源将被捆绑到服务组中。服务组用于定义启动顺序和依赖项。群集管理服务组而不是资源。

4. 栅设备。这是一个电源开关触发设备, 在一个节点被确定为故障后,群集管理器将使用该设备发出重启指令。理想情况下, 这应该是基于 IP 网络的电源开关, 例如 VMware 环境中的 vCenter server,可用于硬重置作为群集中的节点的虚拟机。有许多其他类型,如 IO fence, 但所选择的确切类型将依赖于具体环境。

5. 群集名称。群集以及每个成员都需要名称。使用 DNS 或更新每个节点上的hosts文件, 以实现按名称解析成员。所有成员都需要按名称路由。另请注意, 动态锁定管理器 (DLM) 在生成锁定表时使用群集名称, 因此请谨慎选择该名称, 因为如果以后更改, 将花费一番功夫。

6. 在节点之间的防火墙上需要允许以下 IP 端口的通信。

IP Port Protocol Cluster Component
8084 TCP luci (Conga Web Service)
5404,5405 UDP cman (Cluster Manager)
11111 TCP ricci (Configuration API)
21064 TCP dlm (Distributed Lock Manager)
16851 TCP modclusterd

架构图示例

如果您用的是红帽7,请使用我们的全新指南。

如果您用的是红帽6及以下,请转至第二部分。

发表评论

邮箱地址不会被公开。