我尝试将我的第一个 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