如何为主动/主动场景设置起搏器集群以及它如何工作?

如何为主动/主动场景设置起搏器集群以及它如何工作?

我尝试将我的第一个 Pacemaker 集群设置为 FTP 服务器。有两个服务器安装了全新的 centos 6.5 和 proftpd

在此处输入图片描述

第一步是安装起搏器和一些配置工具:

yum install pacemaker cman pcs ccs resource-agents

在每台服务器上运行此命令后,我开始使用以下命令配置我的第一个 Pacemaker 集群:

# ccs -f /etc/cluster/cluster.conf --createcluster ftpcluster 
# ccs -f /etc/cluster/cluster.conf --addnode ftp01 
# ccs -f /etc/cluster/cluster.conf --addnode ftp02
# ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk  
# ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect ftp01 
# ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect ftp02  
# ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk node1 pcmk-redirect port=ftp01 
# ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk node2 pcmk-redirect port=ftp02

现在我在两个节点上启动集群:

# service cman start 
# service pacemaker start

下一步是使用以下内容设置 ClusterIP 和 FTPService 资源

# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=10.2.1.50 cidr_netmask=32 op monitor interval=30s
# pcs resource create FTPService lsb:proftpd op monitor interval=30s

如果我请求状态,我会得到以下结果:

# pcs status
Cluster name: ftpcluster
Last updated: Thu Jul 25 01:04:48 2013
Last change: Thu Dec  5 08:56:39 2013 via crmd on ftp01
Stack: cman
Current DC: ftp02 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured
2 Resources configured


Online: [ ftp01 ftp02 ]

Full list of resources:

 ClusterIP  (ocf::heartbeat:IPaddr2):   Started ftp01 
 FTPService (lsb:proftpd):  Started ftp02 

我的问题是关于对 FTP 服务的访问。群集 IP 在 ftp01 上运行,但 FTPService 在 ftp02 上运行,如果我尝试访问“ftp 10.2.1.50”,我会从 ftp01 得到答复。

问题 1:ClusterIP 和 FTPService 之间有什么区别?如果 ClusterIP 的功能相同,为什么我应该使用 FTP 服务?

问题2:从现在起我应该做什么来构建主动/主动场景以及它如何工作?它是负载平衡还是简单循环?

答案1

你的情况并不像人们想象的那么简单。几个月来我一直在研究这样的解决方案。我也尝试了 Linux 集群。以下是我所知道的:

首先,您需要了解,当前配置中的两个应用程序不可能是主动/主动的。当您开始思考这个问题时,您会注意到,您现在实现的是当其中一个节点发生故障时应用程序不会停止运行。但是故障节点上的所有数据(如果是发生故障的活动节点)都不会神奇地传输到第二个节点。fe 用户文件夹不会在第二个节点上(关键是故障转移群集不提供存储)。

因此,首先您需要一个可以从两个节点(第三个存储服务器)访问的存储和一个可以感知集群的文件系统。然后您可以开始考虑主动/主动解决方案。但这又有另一个限制 - 当存储服务器发生故障时,您的整个集群将完全失效。

您也可以这样做。让 glusterfs(或任何集群感知文件系统)在您的两个集群节点上运行,然后您就拥有一个复制的文件系统(两个节点始终具有相同的数据),但根据我的经验,glusterfs 在处理小文件时非常慢。

答案2

首先,虚拟 IP 用于访问集群服务。您需要将 ftp 服务器绑定在 vip(集群 IP)上。我从您的配置中看到您缺少一些 Pacemaker 的基本细节。

如果将ftp服务器绑定在集群ip上,则需要使用co-location约束或组。

有关 Pacemaker 集群的更多信息,请阅读 Clusterlabs 站点的文档。

答案3

您有一个集群资源,即 IP 地址,但一个 IP 一次只能位于一个节点上。您可以在两台服务器上运行 ftp,但仍然只能使用该 IP 一次访问一台。您可能需要的是一个位于前端的负载平衡器,它将处理与后端 ftp 服务器的连接,这是一个不同的问题。或者,您可以在两台服务器上使用不同的 IP 地址(通常情况下),并使用循环 DNS 来使用相同的主机名访问其中一台服务器。但实际上您不会将 Pacemaker 用于其中任何一台服务器。

基本上,我认为起搏器不是解决方案。

正常的主动/主动集群资源(例如,Web 服务器)将通过克隆资源完成:http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/_reconfigure_pacemaker_for_active_active.html

相关内容