web-dev-qa-db-ja.com

アクティブ/アクティブシナリオ用にペースメーカークラスターを設定する方法とその仕組みは?

最初のペースメーカークラスターをFTPサーバーとしてセットアップしようとしています。新しいcentos6.5とproftpdがインストールされた2つのサーバーがあります

enter image description here

最初のステップは、ペースメーカーといくつかの構成ツールをインストールすることでした。

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で実行されます。「ftp10.2.1.50」にアクセスしようとすると、ftp01から応答が返されます。

質問1: ClusterIPとFTPServiceの違いは何ですか?ClusterIPが同じことをするのになぜFTPサービスを使用する必要があるのですか?

質問2:アクティブ/アクティブシナリオを構築するには、この時点から何をすべきですか?また、それはどのように機能しますか?負荷分散されたものですか、それとも単純なラウンドロビンですか?

1
kockiren

あなたが持っている状況は、人が考えるほど単純ではありません。私はこのようなソリューションに数か月間取り組んでいます。 Linuxクラスターも試してみました。これが私が知っていることです:

まず、現在の構成の2つのアプリがアクティブ/アクティブではない可能性があることを理解する必要があります。考え始めると、今達成したのは、ノードの1つに障害が発生しても実行を停止しないアプリケーションであることに気付くでしょう。ただし、障害が発生したノード上のすべてのデータ(アクティブなノードが障害を起こした場合)は、魔法のように2番目のノードに転送されるわけではありません。 f.eユーザーフォルダは2番目のノードにはありません(要点は、フェールオーバークラスターがストレージを提供しないということです)。

したがって、まず最初に、両方のノード(3番目のストレージサーバー)からアクセスできるストレージと、クラスターを認識するファイルシステムが必要です。次に、積極的/積極的な解決策について考え始めることができます。ただし、これにも別の制限があります。ストレージサーバーに障害が発生すると、すべてのクラスターが停止します。

このようなこともできます。両方のクラスターノードでglusterfs(またはクラスター対応のファイルシステム)を実行していると、複製されたファイルシステムがあります(両方のノードが常に同じデータを持っています)が、私の経験から、glusterfsは小さなファイルでは非常に遅くなります。

1
piotrektt

まず、クラスターサービスへのアクセスに仮想IPが使用されます。 vip(クラスターIP)でftpサーバーをバインドする必要があります。構成から、ペースメーカーの基本的な詳細が欠落していることがわかりました。

FtpサーバーをクラスターIPにバインドする場合は、コロケーション制約またはグループを使用する必要があります。

ペースメーカークラスターの詳細については、Clusterlabsサイトのドキュメントを参照してください。

1
c4f4t0r

クラスターリソースであるIPアドレスがありますが、IPは一度に1つのノードにしか存在できません。両方のサーバーでftpを実行できますが、そのIPを使用して一度にアクセスできるのは1つだけです。おそらく必要なのは、バックエンドftpサーバーへの接続を処理するフロントのロードバランサーです。これは別の問題です。または、両方に異なるIPアドレス(通常は持っている)を設定し、ラウンドロビンDNSを使用して、同じホスト名でどちらかにアクセスできるようにすることもできます。しかし、実際には、どちらにもペースメーカーを使用しません。

基本的に、ペースメーカーがここでの解決策ではないと思います。

通常のアクティブ/アクティブクラスターリソース(Webサーバーなど)は、複製されたリソースを使用して実行されます: http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/_reconfigure_pacemaker_for_active_active.html

1
lsd