Linux に適したフェイルオーバー / 高可用性ソリューションはありますか?

Linux に適したフェイルオーバー / 高可用性ソリューションはありますか?

障害 (サーバーのハングまたはクラッシュ) が発生した場合に、アプリケーションをあるサーバーから別のサーバーに移行する必要があるケースがいくつかあります。

Solaris では、VCS (Veritas Cluster Server) を使用してこれを実行します。Linux ではどのようなオプションが利用できますか?

それぞれについて、セットアップ/維持にかかる労力のレベルまたはコスト (ある場合) を示してください。

-- 詳細が追加されました --

複雑さのレベルを説明すると次のようになります。

  • 障害が発生したサーバーは予告なくハングしたりクラッシュしたりする可能性があるが、ping は引き続き実行できる可能性がある。
  • リカバリサーバーはフェイルオーバー時にアプリケーションを起動する必要がある
  • 障害が発生したサーバーが起動/電源サイクルすると、リカバリ サーバーに干渉しないようにパッシブ状態になります。

これはデータベースではなくデータ収集または計算ノードなので、よりシンプルなソリューションが機能する可能性があります。

-- さらに詳しい情報(すみません) --

共有ストレージはオプションではありませんが、1 つのサーバーから別のサーバーに移行する必要のある状態 (ある場合) はほとんどありません。rsync を介して 2 つのサーバーを同期させます。

これまでの投稿すべてに心より感謝いたします。

答え1

http://linux.ha.org/ よりあらゆる高可用性のニーズに対応します。歌にあるように、人生で最高のものは無料です。

答え2

私は Linux 上でさまざまなクラスタ ソリューションを使用してきました。また、私は構成管理の支持者でもあるので、説明の中でそれについても少し触れておきます (Chef または Puppet について)

Veritas Cluster Server (VCS)。しばらく経ちましたが、RHEL 3.0 に Linux VCS クラスターをいくつか導入しました。RHEL 5.0 でも利用できるといいのですが。これは慣れたものなので、セットアップの難しさはよくご存知でしょう。ご存知のとおり、VCS は高価です。逸話的に、VCS は構成管理によるセットアップには適していません。

RHEL について言えば、Red Hat Cluster Suite は RHEL 2.1 での最初のリリース以来、大きく成熟しています。セットアップ/構成フェーズは非常に簡単で、ドキュメントは非常に完全で役に立ちます。また、VCS と同様に、ベンダーからサポートを購入できます。商用 HA 製品としては、RHCS は手頃な価格です。私は、構成管理を使用してパッケージをインストールし、Web インターフェイスを通じて「手動で」保守するだけです。また、Red Hat 以外のプラットフォームで使用している人がいると聞いたことがありますが、私は直接の経験はありません。

Linux-HA (drbd/heartbeat) も優れていますが、VCS から来たため、構成は単純ですが扱いにくいように見えるかもしれません。これは、構成管理ツールを使用すると非常に簡単に自動化できます。

概念実証として、IBM の HACMP (同社の AIX クラスタリング ソフトウェア) を使用して Linux クラスタをインストールしました。これはお勧めしません。VCS よりも高価だったと記憶しています。IBM には HACMP のインストールと保守に関する特定の手順があるため、ここでは構成管理は使用しません。

答え3

マイケルの言う通り、コミュニティは現在少し分裂しており、ドキュメントも少々不足しています。

実際、すべてそこにありますが、理解するのは不可能です。本当に必要なのは、「Pacemaker 構成の説明」電子書籍です... (PDFへのリンク)。まずはこれを 12 回ほど読んで、実際に実装してみて、さらに 12 回ほど読んで、実際に理解できるようにしてください。

現時点で Linux 向けのクラスタ サービスの最もよくサポートされている実装は、おそらく Novell の SLES11 とその High Availability Extension (HAE) でしょう。これは 1 ~ 2 か月前にリリースされたばかりで、セットアップ方法と実行方法を説明した 200 ページの分厚いマニュアルが付属しています。Novell はさまざまな形式で Pacemaker 構成のサポートにも優れています。

それ以外にも、同じパッケージと適切なドキュメントを備えた RHEL5 の実装がありますが、SLES よりも高価だと思います。少なくとも、私たちにとってはそうです。

現時点では Heartbeat を避けて Pacekmaker/OpenAIS を使用することをお勧めします。将来的には、これらの方がはるかにサポートが充実するからです。ただし、コミュニティの現状は、専門家が数人、実稼働環境で実行している人が数人、そしてまったく無知な人が大勢いるという状況です。Pacemaker のメーリング リストに参加して、Andrew Beekhof という人物に注目してください。

要求された詳細を入力するために編集します:

Pacemaker/OpenAIS は、リソースの動作を追跡するために、「基本リソース」(例: nfs-server) の「モニター」操作を使用します。例の NFS サーバーがクラスターの残りの部分に対して X 秒間応答しなくなった場合、クラスターは STONITH (Shoot The Other Node In The Head) 操作を実行してプライマリ ノードをシャットダウンし、セカンダリ ノードをアクティブにします。構成で、その後に起動するものと、それに関連するアクションを決定します。そこからの実装の詳細は、フェールオーバーしようとしているサービス、特定の操作の実行ウィンドウ (プライマリ ノードをマスターに戻すなど) によって異なりますが、全体として可能な限り構成可能です。

答え4

Linux では、ハートビートと drbd を使用してクラスタリングを実装しました。ハートビートはサーバーの状態をチェックします。DRBD はサーバー間のデータ同期に使用されます。1 つのサーバーで Oracle サービスを実行し、別のサーバーで Apache を実行しています。Oracle を実行しているサーバーに障害が発生すると、ハートビートがそれを感知し、Apache を実行しているサーバーで Oracle サービスを復元します。その逆も同様です。このセットアップは他の多くの目的で使用しており、今日まで信頼性があります。

関連情報