Blogフリュー株式会社の技術ブログです2018年11月2日pacemaker+corosync環境を作成した時にハマった話CorosyncPacemakerインフラこんにちは。ピクトリンク事業部インフラ課の粟田です。pacemaker+corosync環境をCentOS7上に構築した時にハマった話を書こうかと。unclean(offline)の文字列が見えたので、ググって出てきた結果を参照すると、再起動したら直ったというようなものが出てきたけれども解決に至らず......原因corosyncの設定時には(DNSで解決可能な)ホスト名を指定してたんですが、corosyncはこのホスト名を127.0.0.1と認識してたんでした。faultsなんで127.0.0.1になるんだろうと原因探していると/etc/hostsが悪さしてたんでした。localhost127.0.0.1にホスト名書くなよ......きっとこの辺の設定を全サーバで意識したくなかったせいなんだろうな。あとがき無駄に時間使っちゃったよ......Tweet2018年05月18日Pacemaker+Corosyncを使ってみました!(はまった部分をシェア)CorosyncHA(高可用性)Pacemakerインフラみなさん、こんにちは。ピクトリンク事業部インフラ課の藤本佳世です。前回、前々回と「Pacemaker+Corosyncを使ってみました!」についてお話ししてきましたが、最後に【はまった部分】をみなさんとシェアしたいと思います。何かお役に立つ情報が見つかれば幸いです。前回の記事で、設定項目をまとめたcrmファイルを作成したとお伝えしました。それぞれの設定が何なのか、下記のように日本語でコメントを記述しました。起動の失敗をリソースに対して致命的と処理するかどうかを指定。サーバ同士が互いに孤立しクォーラムを失った場合にどう動くかを指定。サーバが2台の構成である限りはおまじないとして”ignore”を指定する。全てのリソースはどこでも起動できるか。起動時に相手のサーバの状態が把握できない場合に念のために相手をフェンシングする機能(有効)。取り除いたリソースを停止するか。取り除いたアクションを停止するか。常にfalseを設定する項目。Heartbeatが必要に応じてリソースのstart/stopができる。ネットワークのラウンドトリップ時間。起動の失敗をリソースに対して致命的と処理するかどうかを指定。サーバ同士が互いに孤立しクォーラムを失った場合にどう動くかを指定。サーバが2台の構成である限りはおまじないとして”ignore”を指定する。全てのリソースはどこでも起動できるか。起動時に相手のサーバの状態が把握できない場合に念のために相手をフェンシングする機能(有効)。取り除いたリソースを停止するか。取り除いたアクションを停止するか。常にfalseを設定する項目。Heartbeatが必要に応じてリソースのstart/stopができる。ネットワークのラウンドトリップ時間。\pe-input-series-max="-1"(後略)しかし、このファイルをロードしたらエラーが発生してしまいました。内容を確認すると、文字コードエラーでした。characters日本語がエラーの原因のようで、英語だと特にエラーは出力されませんでした。何の設定なのか英語で書いても他の人に上手く伝わらない!どうしても日本語で記述する必要があったので、下記のコマンドで無理やり読み込むようにしました。export.crmはまった部分2cloneの値を間違ったPacemaker+Corosync環境の検証のため、当初は2台構成をしていましたが、7台に増やした際にはまった部分があります。crmファイルのclone設定部分を2→7に書き換えるのを忘れてしまいました。running」が出力されました。running)はまった部分3ping(疎通確認)のIPアドレスが間違っていたcrmファイルに間違ったpingのIPアドレスを記述してしまいました。\crm_monにオプション-Aをつけると詳細を確認できます。pingエラーが出ています。lostping疎通がエラーになったため、「prmVIPcheck」や「IPaddr2_1」も作動しなかったです。設定を反映する前に、pingコマンドで疎通確認をしておくことも大切です。ms3回にわたってPacemaker+Corosyncについてお話ししてきましたが、少しでも興味をもっていただければ嬉しいです。今後も役立つインフラ情報をアップする予定なので、引き続きよろしくお願いします。Tweet2018年04月23日Pacemaker+Corosyncを使ってみました!(crmコマンド編)CorosyncHA(高可用性)Pacemakerインフラみなさん、こんにちは。ピクトリンク事業部インフラ課(3月末から事業部名が変わりました)の藤本佳世です。今回は「Pacemaker+Corosyncを使ってみました!」の続編、crmコマンドを使った設定の部分についてお話しします。前回の記事はこちらcrmコマンド集Pacemakerの設定をしたり、確認や削除といった作業は、crmコマンドを使って行います。今回の構築で使ったコマンドをまとめてみました。configureコマンド使ってPacemakerの設定ができます。updateコマンドを使って設定を反映させました。setting.crmsetting.crmの内容はこちらです。ocf:heartbeat:VIPcheck」の部分です。ocf:pacemaker:ping」の部分です。100設定内容を確認するコマンドは下記のようにshowを付けます。showまた、設定を削除したいときは、eraseを最後に付けます。eraseただし、ノードが「running」ステータスでは下記のようなエラーが発生します。deleted)その場合は、全ノードを「standby」ステータスに切り替え、「running」ステータス以外にする事が必要です。server2再度「online」ステータスに切り替えるには下記を実行。server2そして最後に、設定のバックアップ取っておくコマンドがこちらです。backup.crm現在設定されている項目をbackup.crmに書き出してくれます。設定をバックアップ取っておくと、再構築になった際にとても便利ですね。backup.crmの使い方は、最初にお伝えしたように、loadするだけです。backup.crm今回の投稿は以上です。次回は最終版として構築ではまった部分をみなさんに共有したいと思います。Tweet2018年03月7日Pacemaker+Corosyncを使ってみました!(インストール編)CorosyncHA(高可用性)Pacemakerインフラみなさん、こんにちは。コンテンツ・メディア第1事業部インフラ課の藤本佳世です。今回は、Pacemaker+Corosyncについてお話しします。今までは、Heartbeatを使っていたのですが、サーバリプレースに伴い、最新バージョンで推奨されているPacemaker+Corosyncを構築しました。インストールの部分をお話ししたいと思います。障害を検知したら他のサーバに自動的にフェイルオーバしてくれます。Corosyncと組み合わせて利用します。Availability」高可用性のこと。Corosyncとはノードの死活監視を行うオープンソースソフトウェア。Pacemakerと組み合わせて、クラスタシステムを構成します。フリューでの利用について主に、データベースサーバでPacemaker+Corosyncを採用しています。サーバ(master)に仮想VIPがセカンダリIPとして割り当てられており、サーバ(master)に障害が発生した際、10秒以内(弊社環境)でサーバ(slave)に仮想VIPが付与され、masterとして稼働します。以前のHeartbeatよりも、Corosyncの方が切替の時間が早いというメリットもあります。JAPANのドキュメントを参考に進めました。詳しく手順が書かれているので、この通りに進めるだけです。pacemaker-allインストールの後は、corosync.confを修正します。/etc/corosync/corosync.conf以下のbindnetaddrとquorumの部分を修正しました。1}続いて、corosync認証鍵ファイルの設定です。どれか一つのノード上で実行します。ファイルが生成されます。作成されたauthkeyファイルをクラスタを構成する全てのノードにコピーします。root@server2:/etc/corosync/authkeyこの後は、pacemakerファイルの設定です。以下の設定に変更します。/etc/sysconfig/pacemaker修正内容PCMK_fail_fast=yes1PCMK_fail_fast=yesそして、最後にクラスタ起動スクリプトの設定です。ドキュメントに下記の設定を反映させるために修正が必要と書かれています。置き換える前に空白にする必要があるので注意してください。ドキュメント通り進めるだけなので、簡単に構築できると思います。設定が終わったら、いよいよ起動です。]Onlineになっています!問題なさそうです。ここまでがインストールの作業です。次に、仮想VIPやping疎通監視など設定していきますが、詳細は次回説明したいと思います。configureコマンドを使った設定などご紹介する予定なので、お楽しみに。