CommentsPacemakerクラスタの設定と運用管理に使うcrmコマンドは、コマンドやパラメータのタブ補完機能を備えた、キャラクタベースの使いやすい管理ツールです。Startedを日本語に翻訳したものです。誤訳、タイプミスなどの指摘、改善のためのアドバイスなどのフィードバックを歓迎いたします。この記事の末尾にコメントとしてお書きください。crmshを始めましょうcrmshを何台かのマシンにインストールできたら、それらをクラスタとして動作させるための設定を始められます。このガイドは、Pacemaker上で1つのリソースを実行して、複数のノード間でフェールオーバできるようにするまでの手順を、ステップごとに紹介します。このクラスタを例にして、より高度なクラスタ管理のトピックも紹介します。instructionsを参考にしてインストールしてください。crmshならびにこれが必要とする依存関係を満足するパッケージのインストールが必要です。最初に、すべてのノードで次のコマンドを実行して、2.1以上のバージョン番号が表示されることを確認しておいてください。--version構築するクラスタの例このガイドでは、以下の2台のサーバを使ったクラスタを構築します。あなたの環境では、ホスト名やIPアドレスを適宜置き換えてください。10.0.0.3クラスタスタックGNU/Linuxのクラスタスタックの構成は、永年にわたって少しずつ変遷してきました。このガイドで取り扱う組み合わせは、現時点でもっとも一般的と考えられるものです。いえ、それでもクラスタを構成するための別のやり方もあります。簡単に言えば、高可用クラスタは、処理能力に冗長性を持たせた複数のコンピュータ(「ノード」と呼ぶことが多いです)で構成され、そのうちの1台から数台が何らかの理由でダウンした場合、ダウンしたノードが担当していた処理を残りのノードが引き継ぐように構成されます。クラスタスタックは、クラスタを構成するすべてのノードで動作するプログラム群です。ネットワークを通じてすべてのノードが相互に通信し、リソースをいつどのノードで起動または停止するかを決定します。スタックの中心的なプログラムはPacemakerです。CIBの情報にもとづいてリソースを管理し、それらをクラスタ構成ノード上に配置します。CIBはPacemakerが維持するXMLドキュメントです。すべてのクラスタリソースについて、構成パラメータ、実行可能なノードや実行方法に関する制約条件などが記録されています。このドキュメントをエディタで編集することはありません。crmshを使うことにより、XMLの構造を意識せずにすみます。Pacemakerと並ぶスタックの構成要素は、クラスタにおける通信システムであるCorosyncです。Corosyncは、クラスタノード間の通信機能を提供し、Pacemakerがリソースを管理する対象になるクラスタ構成メンバを管理します。Corosyncの設定ファイルはetc/corosync/corosync.confです。crmshを使うと、PacemakerだけでなくCorosyncの設定も管理できます。これら2つのコンポーネントと並ぶスタックの重要な構成要素は、リソースエージェントです。これは、クラスタの中でソフトウェアの動作を構成したり制御できるようにするための統一的なインタフェースを備えた、スクリプトのコレクションです。仮想IPアドレス、数種類のWebサーバ、数種類のデータベース管理システムなどをクラスタで管理するためのエージェントなどが用意されています。crmshはクラスタスタックの構成と管理のための統合的なインタフェースを提供する、コマンドライン・ツールです。SSHcrmshはクラスタ構成ノードであればどのノード上でも実行できます。すべてのクラスタ構成ノードを制御できるためには、コマンドをリモート実行する必要があり、crmshはsshを通してこれを実現します。相互に他のノードの名前からIPアドレスを決定できるよう、/etc/hostsを設定してください。bobを正しく実行できるには、ネットワークのどこにbobがあるかを把握できる必要があります。aliceとbobのIPアドレスは上述のとおりなので、両方のノードの/etc/hostsを次のような内容で作成します。bob次に、パスワードなしで相互にログインできるよう、SSH鍵をインストールします。将来的にこのステップも自動化したいところですが、今のところは手作業で設定しなければなりません。どちらかのノード(今回はalice側)で次のコマンドをroot権限で実行します。/root/.ssh/authorized_keysクラスタの他のノード(今回はbob)で次のコマンドをroot権限で実行します。/root/.ssh/authorized_keysこれらが成功すれば、両方のノードで相互にSSHで接続するときに、パスワードを要求されなくなります。次のステップに進む前に、パスワードなしで相互接続できるように設定してください。インストールと設定crmshの次のコマンドを実行すると、CorosyncとPacemakerの実行に必要な基本パッケージがインストールされ、systemdが設定されます。cluster-glueなどというエラーになります。この場合、/usr/share/crmsh/utils/crm_pkg.pyに次のパッチを適用してください。このパッチはソースツリーに取り込まれましたので、将来のバージョンではこのパッチは不要になる見込みです。run(cmd)ファイアウォールクラスタノードにファイアウォールを設定する場合、以下のポートを開けておく必要があります。statusの実行結果にUNCLEANという診断が表示されます。このような結果に出会ったら、ファイアウォールが必要な通信をブロックしているか、ノード間のネットワーク接続に別の問題が生じている可能性が高いです。クォーラムクラスタを構築する最初のステップとして、Corosyncを設定します。ここでクォーラムを検討・設定しなければなりません。クラスタ構築をできるだけ簡単にするには、クラスタを構成するノードの数を奇数にすることを推奨します。3台や5台のサーバでクラスタを構築するということです。これは「過半数の定足数」を確保できるようにするためです。ノード間のどこか1箇所でネットワーク接続が切れた場合、どこで切れた場合でも片方のセグメントは他のセグメントよりも多いノードを確保できます。Corosyncに正しくクォーラムを管理させるには、votequorumを有効にします。次のコマンドを実行してください。corosync_votequorumCorosyncは過半数とみなすノード数を知っておく必要もあります。通常は2を指定します。2クォーラムの設定を変更したら、これをクラスタ全体に伝えて有効にするために、Corosyncを再起動する必要があります。以下のコマンドを順番に実行してください。クラスタがすでに開始していた場合のみ再起動する必要があります。Pacemakerの開始CorosyncとPacemakerの両方を開始するには、次のコマンドを実行します。startクラスタの動作状態の確認Pacemakerの実行状態、どのノードがクラスタに参加しているか、または有効なリソースを確認するには、statusコマンドを実行します。statusコマンドの実行が失敗したりタイムアウトしたら、コマンドを実行したノードのCorosyncまたはPacemakerに問題が起こっています。前提になるパッケージが不足していないか、ファイアウォールが必要な通信をブロックしていないか、などを確認してください。healthコマンドも有用です。クラスタの健康診断クラスタを構成するサーバの健全性を確認するには、次のコマンドを実行します。healthこのコマンドは、クラスタを構成するすべてのノードで複数の診断プログラムを実行します。ディスク空き容量、通信上の問題点、不適切なバージョンのソフトウエアなどを診断します。クラスタを構成する前や、ノード間通信に何らかの本質的な問題がある場合、このコマンドは正しく動作できません。このような場合には、次の例のようにクラスタ構成ノードのリストをオプションとして指定してください。クラスタを構成し、期待どおりに動作することを確認するために、Dummyリソースを組み込んでみましょう。Dummyは、どのソフトウェアも管理しないシンプルなリソースエージェントです。複雑なリソースを組み込むときのテスト目的で、stateというパラメータをDummyに指定することもできます。Dummyリソースを次のコマンドでクラスタに組み込めます。Dummyこのコマンドは新しいリソースを作成します。リソースの名前はp0で、Dummyエージェントによって制御されます。statusコマンドを実行すると、リソースp0がどちらか片方のノードで開始したことが確認できます。stopコマンドを使います。Linux-HA投稿ナビゲーションCorosync.conf(5)の日本語訳を作成しました第0回データ保護勉強会を開催しました。コメントをキャンセル次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。