web-dev-qa-db-ja.com

Heartbeat、Pacemaker、およびCoroSyncに代わるものですか?

Linuxでの自動フェイルオーバーには、典型的なHeartbeat/Pacemaker/CoroSyncの組み合わせ以外に、主要な代替手段はありますか?特に、EC2インスタンスでフェイルオーバーを設定しています。これはユニキャストのみをサポートし、マルチキャストやブロードキャストはサポートしていません。具体的には、自動フェイルオーバーをまだ備えておらず、マルチマスター環境をサポートしていないいくつかのソフトウェアを処理しようとしています。これには、HAProxyやSolrなどのツールが含まれます。

私はHeartbeat + Pacemakerを動作させていますが、私はそれに興奮していません。ここに私の問題のいくつかがあります:

  • ハートビート-単独では、2つのノードに制限されます。 3個以上欲しいです。
  • Pacemaker-自動的に構成することは不可能です。クラスターはクォーラムで実行する必要があり、それでも手動で構成する必要があります。
  • CoroSync-ユニキャストをサポートしていません。

Pacemakerは非常にうまく機能しますが、そのパワーはセットアップを難しくします。 Pacemakerの実際の問題は、構成を自動化する簡単な方法がないことです。私は本当にEC2インスタンスを起動し、Chef/Puppetをインストールし、私の介入なしにクラスター全体を起動したいと思っています。

26
organicveggie

高可用性のために keepalived を使用することを好みます。ハートビートや会社よりセットアップ(1つのデーモンと構成)の方が簡単だと思います。私が遭遇する唯一の欠点は、keepalivedにデフォルトでユニキャストオプションがなく、通信にVRRPのみを使用することです(HAProxyの作成者は nicast patch をkeepalivedに記述しています)

17
JimB

私は実際にあなたが説明したものと非常によく似たもの(EC2のフェールオーバークラスター)に取り組んでいます。Heartbeatを試した後、私のメッセージングレイヤーとしてCorosyncを使用しました。 Corosyncは複数のサーバーで実行され、バージョン1.3.0(2010年11月以降)ではユニキャスト(UDPU)をサポートしています。 AmazonのEC2クラウドで(AmazonのLinux AMIを使用して)Corosyncをセットアップしてテストしましたが、問題なく動作することを確認できます。

サンプルのudpuファイルが/ etc/corosyncにインストールされています。

各ノードのインターフェイスセクションに1つのメンバーブロックを追加し、トランスポートをupduとして指定します。 (以下の例ではハートビートと同じポートを使用していますが、必要に応じて変更できます)。

例えば。:

totem {
        version: 2
        secauth: off
        interface {
                member {
                        memberaddr: 10.xxx.xxx.xxx
                }
                member {
                        memberaddr: 10.xxx.xxx.xxx
                }
                ringnumber: 0
                bindnetaddr: 10.xxx.xxx.xxx
                mcastport: 694
        }
        transport: udpu
}

(Heartbeatはバージョン1.2.3以降で3ノード以上のクラスターをサポートすることになっていますが、私は個人的に試したことがなく、ユニキャストで動作するかどうかはわかりません)。

14
cyberx86

申し訳ありませんが、Pacemakerに関する部分は正しくありません。 Pacemakerの回帰テストとリリーステストでは、自動化を幅広く利用しています。

アクティブなクラスターなしで構成するには、すべてのコマンドの前にCIB_file=/var/lib/heartbeat/crm/cib.xmlを付けるか、環境に設定します。クラスターを開始する前に、必ず.sigファイルを削除してください。

クォーラムのないクラスターの場合、すべてではないにしてもほとんどのツールが-fまたは--forceをサポートする必要があります。これにより、クラスターは変更を受け入れるように指示されます。動作しないツールを見つけた場合は、バグを報告してください。

11
Andrew Beekhof

オープンソースの世界には、 RedHat Cluster Suite があります。私がRHCSを実装してから数年になったので、今日それについて言うべき関連することは多くありません。

商業的には Veritas Cluster Server があります。経験はありません。

よりシンプルでオープンソースのHAツールは [〜#〜] ucarp [〜#〜] です。 UCARPは、Heartbeat/Pacemaker/CoroSyncが提供するのとほぼ同じ種類の「インフラストラクチャ」を提供しませんが、その周りにHAソリューションを構築できます。

また、仮想化テクノロジーを使用して高可用性インフラストラクチャを構築することもできますが、これらのソリューションは、アプリケーションレベルの可用性ではなく、ホストレベルの可用性に重点を置く傾向があります。

3
rthomson

使用していませんが、Oracle Unbreakable Linux用のOracle Clusterwareがあります。

1
Kendall

Veritasクラスターは(Linux-Heartbeat、AIX-hacmp、HP-Serviceguard、Sunクラスターと比較して)素晴らしいですが、コストがかかります。最後に見たときの価格は、クラスターのCPUコアに基づいていました。現在のベンダーはシマンテックです...

1
Nils

すでにEC2を使用している場合は、なぜ Elastic Load Balancing を使用しないのですか?フェイルオーバーを自分で構成する必要なく、アプリケーションレベルの可用性を実現できます。

1
manku

opensvc( https://www.opensvc.com )は、複数のハートビートドライバーをサポートします。

  • ユニキャスト
  • マルチキャスト
  • 共有ディスク
  • 3番目のサイトのリレー

また、スプリットブレインの場合は、クォーラムメカニズムがあります。

2つのgoogleクラウドインスタンス+ 2つのterraform + ansibleの2つのAmazonインスタンスで構成される4ノードのクラスターを自動的にセットアップしました。

0
Chaoxiang N

私はposix Shellでフェイルオーバークラスターマネージャーを作成しました: https://github.com/nackstein/back-to-work

それを見て、私はそれを試して開発を手伝ってくれる人を探しています。

0
Luigi