[Linux-ha-jp] pacemaker+corosync で watchdog による自分監視&再起動させる方法

Zurück zum Archiv-Index

丹藤 誠 m-tan****@sophi*****
2015年 1月 28日 (水) 17:40:08 JST


浜田さん

丹藤です。

返信が遅れてすみません。
コメントありがとうございます!!

>クラスタソフトが動いていても、止まっていても、
>いつでもWatchdog機能は動いていればよいのだと思います。
>watchdogデーモンがキックできない状況であれば、
>クラスタソフトが何かを制御できる状態ではないと思われます。

今回のWatchdogとクラスタソフトとの連携についてですが、
「クラスタソフトにWatchdogタイマをキックさせる事で、
   クラスタソフト自身が死んでしまった場合に、
   システムが再起動してクラスタソフトを復旧させる事が出来るらしい。
  ↓
「heartbeatでは設定ファイル(ha.cf)に一行( watchdog/dev/watchdog)
 と書くだけらしいが、Corosyncだとどうやればいいんだろう?」

という経緯があって質問させて頂きました。


肝心のユースケースについては考えていなかったのですが、
そもそも、
「システムは概ね正常に動いているが、
   クラスタソフトだけが死んでしまった」
というような状況は、
それほど気にしなくてもいいものなのでしょうか?
(フェイルオーバーは動いているので運用には問題なさそうだし、
  頻発しないなら、管理者が気づいて復旧させればいい
  というお話でしょうか?)

そうであれば、今回は物理環境で、
チップセットにwatchdog機能がついていますので、
これにまかせる事にしようと思います。


クラスターだけでなく、コンピュータに関する知識や
一般的なサーバ運用に対する考え方も未熟なので、、
見当違いの考え方をしていたら合わせて指摘お願いします。


以上、
よろしくお願いいたします。


On 2015/01/27 23:01, hamad****@pc-of***** wrote:
> 浜田です。
> 見当違いであれば、読み流していただければと思います。
>
> まとめ読みの返信で申し訳ありません。
>
>
> Watchdogとクラスタソフトが連動することにこだわる
> 必要があるのか、その点がよくわかりません。
> クラスタソフトが動いていても、止まっていても、
> いつでもWatchdog機能は動いていればよいのだと思います。
> watchdogデーモンがキックできない状況であれば、
> クラスタソフトが何かを制御できる状態ではないと思われます。
>
> HeartbeatのWatchdog機能は、カーネルに付属の、
> ソフトウェアWatchdog機能をオンにしているだけで、
> 他の物理的なWatchdog機能が使えない場合にのみ利用するものだと
> 思われます。
> 私的には、本番物理環境であてにすべきではない機能と考えています。
>
> IPMI機能があれば、IPMIのWatchdogを設定しておけばよいし、
> Intelのチップセットが搭載されていれば、
> Intel TCO Timer/Watchdog (iTCO_wdt) を使えばよいと
> 考えます。
> クラスタソフトの設定とは無関係に、
> watchdogデーモンで定期的にキックしていればよいと
> 判断しています。
> 仮想マシンなどで、物理的なWatchdog機能が利用できない場合に、
> ソフトウェアWatchdog機能を利用することになると思いますが、
> この場合も、watchdogデーモンで定期的にキックしていればよいと
> 思います。
>
>
>
>> Linux-ha-japan
>> メーリングリストへの投稿は以下のアドレスに送ってください.
>> linux****@lists*****
>>
>> Webブラウザを使って入退会するには以下のURLにどうぞ.
>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>> メールを使う場合,件名(Subject:)または本文に help と書いて以下の
>> アドレスに送信してください.
>> linux****@lists*****
>>
>> メーリングリストの管理者への連絡は,以下のアドレスにお願いします.
>> linux****@lists*****
>>
>> 返信する場合,件名を書き直して内容がわかるようにしてください.
>> そのままだと,以下のようになってしまいます. "Re: Linux-ha-japan
>> まとめ読み, XX 巻 XX 号"
>>
>>
>> 本日の話題:
>>
>>     1. Re:
>>        pacemaker+corosyncでwatchdogによる自分監視&再起動させる方法
>>        (丹藤 誠)
>>     2. Re:
>>        pacemaker+corosyncでwatchdogによる自分監視&再起動させる方法
>>        (Yusuke Iida)
>>     3. Re:
>>        RHEL6.5サーバー2台をpacemaker+corosyncでクラスタ構成にする方法
>>        (よしばー)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Tue, 27 Jan 2015 12:01:52 +0900
>> From: 丹藤 誠 <m-tan****@sophi*****>
>> Subject: Re: [Linux-ha-jp]
>> pacemaker+corosyncでwatchdogによる自分監視&再起動させる方法
>> To: linux****@lists*****
>> Message-ID: <54C6F****@sophi*****>
>> Content-Type: text/plain; charset=UTF-8; format=flowed
>>
>> 飯田さん
>>
>> 丹藤です。
>> 返信ありがとうございます!!
>>
>>
>> ソースの管理サイト情報ありがとうございます。
>> corosyncについては、githubのサイトやソースが
>> メインの情報収集場所 と理解しました。
>>
>>
>>   > sshプラグインを本番環境で使用することはお勧めしません。
>> との事ですが、
>> 今clusterを構築している環境は、ハードウェアがIPMIに対応していません。
>> という事は、
>> 今の環境ではSTONITHの実装は難しいという結論であってますでしょうか?
>>
>> また、
>> これを機にcorosyncからheartbeatへ切り替えて、
>> カーネルwatchdogとの連携で対応したほうがいいのかな
>> とも思い始めましたが、いかがでしょうか?
>>
>> ※最初にheartbeat or corosyncを選定した時には、
>>      「heartbeatはもう開発もしていないから, 今後はcorosyncのほうがよい」
>>   というような記事を見てcorosyncを選んだので、絶対にcorosyncでないと
>>      いけないという状況ではありません。
>>   実際のところ、active+standbyの2台構成で組むならheartbeatも十分現役選手
>>   として使えるのでしょうか?
>>
>>
>> ご意見よろしくお願いいたします。
>> 以上です。
>>
>> On 2015/01/27 10:15, Yusuke Iida wrote:
>>> 丹藤さん
>>>
>>> 飯田です。
>>>
>>> 今回の件で言うと、githubで管理されている
>>> corosyncのソースコードから1.4.2にはwatchdogが実装されていないと判断しました。
>>>
>>> corosyncのソースはこちらで管理されています。
>>> https://github.com/corosync/corosync
>>>
>>> sshプラグインはSTONITHの動作を確認するためのお試し用みたいなものなので、
>>> サーバの電源を確実に停止させる機能を備えていません。
>>> # 例えばサーバの電源が落ちた場合にsshプラグインはsshでログインできなくなるためSTONITHが失敗となってしまいます
>>> なのでsshプラグインを本番環境で使用することはお勧めしません。
>>>
>>> 以上、よろしくお願いします。
>>> 2015年1月26日 18:41 丹藤 誠 <m-tan****@sophi*****>:
>>>> 飯田さん
>>>>
>>>> 初めまして 丹藤です。
>>>> コメントありがとうございます!!
>>>>
>>>> corosync-1.4.2ではwatchdog機能は未実装なんですね。。残念です...
>>>> ネットでググってみても、corosyncの情報が中々見つけられないのですが、
>>>> このような情報はどうやって入手しているのでしょうか?
>>>>
>>>> また、STONITHの情報ありがとうございます。
>>>> 今使っているHWにはIPMIモジュールが搭載されていないようなのですが、
>>>> 他のSTONITH関連サイトを見ていて、sshを使ったSTONITHの紹介があったので
>>>> まずはこれを試してみます。
>>>>
>>>>
>>>> 以上です。
>>>> よろしくお願いいたします。
>>>>
>>>>
>>>> On 2015/01/26 15:24, Yusuke Iida wrote:
>>>>> 丹藤さん
>>>>>
>>>>> 初めまして飯田と申します。
>>>>>
>>>>> 私はDebianの環境を持っていないため、
>>>>> 詳しいことはわかりませんが、corosync-1.4.2では
>>>>> watchdogの機能がまだ実装されていなかったと思います。
>>>>>
>>>>> Pacemakerやcorosyncに障害が発生した場合に
>>>>> 当該ノードを再起動させる手段としてはSTONITHを使用する方法が一般的です。
>>>>> ただし、STONITHを利用するためにはサーバの電源を管理するための
>>>>> ハードウェア制御ボードが必要となります。
>>>>>
>>>>> STONITHに関してはここの情報が参考になると思います。
>>>>> http://gihyo.jp/admin/serial/01/pacemaker/0003
>>>>>
>>>>> 以上、よろしくお願いします。
>>>>>
>>>>> 2015年1月23日 17:42 丹藤 誠 <m-tan****@sophi*****>:
>>>>>> 丹藤と申します。
>>>>>> よろしくお願いいたします。
>>>>>>
>>>>>> Pacemaker + Corosyncを利用して、
>>>>>> 2台のサーバ(active/standby)でクラスタを組んでいます。
>>>>>> (今のところapacheサーバの監視しか動かしていません)
>>>>>>
>>>>>> 【システム情報】
>>>>>> OS : Debian GUN/LINUX  7.8
>>>>>> Corosync : 1.4.2-1
>>>>>> Pacemaker : 1.1.7-1
>>>>>>
>>>>>> 【質問内容】
>>>>>> カーネルのwatchdog機能と連携して、
>>>>>> Pacemaker(orCorosync)自体の動作が不安定になった場合に
>>>>>> システムを再起動する方法について、
>>>>>> ご教授頂きたく思います。
>>>>>>
>>>>>> ネットで調べてみたところ、
>>>>>> heartbeatでは簡単に設定ができそうという事は分かったのですが、
>>>>>> Corosyncに関しては記事を見つけることができず。。。
>>>>>>
>>>>>> また、クラスター初心者で、いろいろ分かってない事が多いです。
>>>>>> ・そもそもCorosyncでこれをやる事は現実的なのか? (もっと別の対応策がある?)
>>>>>> ・残念ながらCorosyncではできない?(STONITHで実装? 十分?  ※)
>>>>>> など疑問もありますので、合わせてご教授頂きたくお願いいたします。
>>>>>>
>>>>>> ※ちなみにSTONITHについてはこれから調査予定です...
>>>>>>
>>>>>>
>>>>>> ★関係あるのかどうかわかりませんが、corosync.confの情報を記載します。
>>>>>> -<corosync.conf>--------------------------------------------------
>>>>>> # Please read the corosync.conf.5 manual page
>>>>>> compatibility: whitetank
>>>>>>
>>>>>> aisexec {
>>>>>>             user: root
>>>>>>             group: root
>>>>>> }
>>>>>>
>>>>>> service {
>>>>>>             name: pacemaker
>>>>>>             ver:0
>>>>>> #       use_mgmtd: yes
>>>>>> }
>>>>>>
>>>>>> totem {
>>>>>>             version: 2
>>>>>>             token: 1000
>>>>>>             token_retransmits_before_loss_const: 4
>>>>>>
>>>>>>             secauth: on
>>>>>> #       crypto_cipher: none
>>>>>> #       crypto_hash: none
>>>>>>
>>>>>>             rrp_mode: active
>>>>>>
>>>>>>             interface {
>>>>>>                     #クラスタメンバーのIPアドレス
>>>>>>                     member {
>>>>>>                             memberaddr: 192.168.10.111
>>>>>>                     }
>>>>>>                     member {
>>>>>>                             memberaddr: 192.168.10.112
>>>>>>                     }
>>>>>>                     ringnumber: 0
>>>>>>                     bindnetaddr: 192.168.10.0
>>>>>>                     mcastport: 5405
>>>>>> #               ttl: 1
>>>>>>             }
>>>>>>
>>>>>>             transport: udpu
>>>>>> }
>>>>>>
>>>>>> logging {
>>>>>>             fileline: off
>>>>>>             to_logfile: yes
>>>>>>             to_syslog: yes
>>>>>>             debug: on
>>>>>>             logfile: /var/log/corosync.log
>>>>>>             debug: off
>>>>>>             timestamp: on
>>>>>>             logger_subsys {
>>>>>>                     subsys: AMF
>>>>>>                     debug: off
>>>>>>             }
>>>>>> }
>>>>>> -------------------------------------------------------------
>>>>>> 以上です。
>>>>>>
>>>>>> _______________________________________________
>>>>>> Linux-ha-japan mailing list
>>>>>> Linux****@lists*****
>>>>>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>>>> _______________________________________________
>>>> Linux-ha-japan mailing list
>>>> Linux****@lists*****
>>>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>>>
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Tue, 27 Jan 2015 13:49:26 +0900
>> From: Yusuke Iida <yusk.****@gmail*****>
>> Subject: Re: [Linux-ha-jp]
>> pacemaker+corosyncでwatchdogによる自分監視&再起動させる方法
>> To: "linux****@lists*****"
>> <linux****@lists*****>
>> Message-ID:
>> <CAMwWrU6inqGA=wtBLQ1zUYy-DswRh82T+psjUcGwY_aWFS_MLw****@mail*****>
>> Content-Type: text/plain; charset=UTF-8
>>
>> 丹藤さん
>>
>> 飯田です。
>>
>> 2015年1月27日 12:01 丹藤 誠 <m-tan****@sophi*****>:
>>> 飯田さん
>>>
>>> 丹藤です。
>>> 返信ありがとうございます!!
>>>
>>>
>>> ソースの管理サイト情報ありがとうございます。
>>> corosyncについては、githubのサイトやソースが
>>> メインの情報収集場所 と理解しました。
>>>
>>>
>>>   > sshプラグインを本番環境で使用することはお勧めしません。
>>> との事ですが、
>>> 今clusterを構築している環境は、ハードウェアがIPMIに対応していません。
>>> という事は、
>>> 今の環境ではSTONITHの実装は難しいという結論であってますでしょうか?
>> ipmi以外にもプラグインはありますので、もし環境に対応しているものがあれば
>> それを使ってみるのも手ですね。
>> debianのディレクトリ構成がどうなっているかわかりませんが、
>> プラグインは下記のディレクトリにインストールされていると思います。
>>   /usr/lib64/stonith/plugins/external/
>>
>>> また、
>>> これを機にcorosyncからheartbeatへ切り替えて、
>>> カーネルwatchdogとの連携で対応したほうがいいのかな
>>> とも思い始めましたが、いかがでしょうか?
>> watchdogを使用するためにheartbeatとの組み合わせで良いと思います。
>> # 自分でpacemakerとcorosyncの最新版をビルドできるなら別ですが、ハードル高い
>> ですからね・・
>>
>>> ※最初にheartbeat or corosyncを選定した時には、
>>>      「heartbeatはもう開発もしていないから, 今後はcorosyncのほうがよい」
>>>   というような記事を見てcorosyncを選んだので、絶対にcorosyncでないと
>>>      いけないという状況ではありません。
>>>   実際のところ、active+standbyの2台構成で組むならheartbeatも十分現役選手
>>>   として使えるのでしょうか?
>> heartbeatも十分現役で使えますよ。
>> あと、今はapacheしか管理していないという話ですが、
>> 今後共有ディスクを使ってDBを管理したり、仮想IPを管理するなら
>> 排他制御用のリソース(例えばsfexやVipcheck)の導入もご検討ください。
>>
>> 以上、よろしくお願いします。
>>>
>>> ご意見よろしくお願いいたします。
>>> 以上です。
>>>
>>> On 2015/01/27 10:15, Yusuke Iida wrote:
>>>> 丹藤さん
>>>>
>>>> 飯田です。
>>>>
>>>> 今回の件で言うと、githubで管理されている
>>>> corosyncのソースコードから1.4.2にはwatchdogが実装されていないと判断しました。
>>>>
>>>> corosyncのソースはこちらで管理されています。
>>>> https://github.com/corosync/corosync
>>>>
>>>> sshプラグインはSTONITHの動作を確認するためのお試し用みたいなものなので、
>>>> サーバの電源を確実に停止させる機能を備えていません。
>>>> # 例えばサーバの電源が落ちた場合にsshプラグインはsshでログインできなくなるためSTONITHが失敗となってしまいます
>>>> なのでsshプラグインを本番環境で使用することはお勧めしません。
>>>>
>>>> 以上、よろしくお願いします。
>>>> 2015年1月26日 18:41 丹藤 誠 <m-tan****@sophi*****>:
>>>>> 飯田さん
>>>>>
>>>>> 初めまして 丹藤です。
>>>>> コメントありがとうございます!!
>>>>>
>>>>> corosync-1.4.2ではwatchdog機能は未実装なんですね。。残念です...
>>>>> ネットでググってみても、corosyncの情報が中々見つけられないのですが、
>>>>> このような情報はどうやって入手しているのでしょうか?
>>>>>
>>>>> また、STONITHの情報ありがとうございます。
>>>>> 今使っているHWにはIPMIモジュールが搭載されていないようなのですが、
>>>>> 他のSTONITH関連サイトを見ていて、sshを使ったSTONITHの紹介があったので
>>>>> まずはこれを試してみます。
>>>>>
>>>>>
>>>>> 以上です。
>>>>> よろしくお願いいたします。
>>>>>
>>>>>
>>>>> On 2015/01/26 15:24, Yusuke Iida wrote:
>>>>>> 丹藤さん
>>>>>>
>>>>>> 初めまして飯田と申します。
>>>>>>
>>>>>> 私はDebianの環境を持っていないため、
>>>>>> 詳しいことはわかりませんが、corosync-1.4.2では
>>>>>> watchdogの機能がまだ実装されていなかったと思います。
>>>>>>
>>>>>> Pacemakerやcorosyncに障害が発生した場合に
>>>>>> 当該ノードを再起動させる手段としてはSTONITHを使用する方法が一般的です。
>>>>>> ただし、STONITHを利用するためにはサーバの電源を管理するための
>>>>>> ハードウェア制御ボードが必要となります。
>>>>>>
>>>>>> STONITHに関してはここの情報が参考になると思います。
>>>>>> http://gihyo.jp/admin/serial/01/pacemaker/0003
>>>>>>
>>>>>> 以上、よろしくお願いします。
>>>>>>
>>>>>> 2015年1月23日 17:42 丹藤 誠 <m-tan****@sophi*****>:
>>>>>>> 丹藤と申します。
>>>>>>> よろしくお願いいたします。
>>>>>>>
>>>>>>> Pacemaker + Corosyncを利用して、
>>>>>>> 2台のサーバ(active/standby)でクラスタを組んでいます。
>>>>>>> (今のところapacheサーバの監視しか動かしていません)
>>>>>>>
>>>>>>> 【システム情報】
>>>>>>> OS : Debian GUN/LINUX  7.8
>>>>>>> Corosync : 1.4.2-1
>>>>>>> Pacemaker : 1.1.7-1
>>>>>>>
>>>>>>> 【質問内容】
>>>>>>> カーネルのwatchdog機能と連携して、
>>>>>>> Pacemaker(orCorosync)自体の動作が不安定になった場合に
>>>>>>> システムを再起動する方法について、
>>>>>>> ご教授頂きたく思います。
>>>>>>>
>>>>>>> ネットで調べてみたところ、
>>>>>>> heartbeatでは簡単に設定ができそうという事は分かったのですが、
>>>>>>> Corosyncに関しては記事を見つけることができず。。。
>>>>>>>
>>>>>>> また、クラスター初心者で、いろいろ分かってない事が多いです。
>>>>>>> ・そもそもCorosyncでこれをやる事は現実的なのか? (もっと別の対応策がある?)
>>>>>>> ・残念ながらCorosyncではできない?(STONITHで実装? 十分?  ※)
>>>>>>> など疑問もありますので、合わせてご教授頂きたくお願いいたします。
>>>>>>>
>>>>>>> ※ちなみにSTONITHについてはこれから調査予定です...
>>>>>>>
>>>>>>>
>>>>>>> ★関係あるのかどうかわかりませんが、corosync.confの情報を記載します。
>>>>>>> -<corosync.conf>--------------------------------------------------
>>>>>>> # Please read the corosync.conf.5 manual page
>>>>>>> compatibility: whitetank
>>>>>>>
>>>>>>> aisexec {
>>>>>>>             user: root
>>>>>>>             group: root
>>>>>>> }
>>>>>>>
>>>>>>> service {
>>>>>>>             name: pacemaker
>>>>>>>             ver:0
>>>>>>> #       use_mgmtd: yes
>>>>>>> }
>>>>>>>
>>>>>>> totem {
>>>>>>>             version: 2
>>>>>>>             token: 1000
>>>>>>>             token_retransmits_before_loss_const: 4
>>>>>>>
>>>>>>>             secauth: on
>>>>>>> #       crypto_cipher: none
>>>>>>> #       crypto_hash: none
>>>>>>>
>>>>>>>             rrp_mode: active
>>>>>>>
>>>>>>>             interface {
>>>>>>>                     #クラスタメンバーのIPアドレス
>>>>>>>                     member {
>>>>>>>                             memberaddr: 192.168.10.111
>>>>>>>                     }
>>>>>>>                     member {
>>>>>>>                             memberaddr: 192.168.10.112
>>>>>>>                     }
>>>>>>>                     ringnumber: 0
>>>>>>>                     bindnetaddr: 192.168.10.0
>>>>>>>                     mcastport: 5405
>>>>>>> #               ttl: 1
>>>>>>>             }
>>>>>>>
>>>>>>>             transport: udpu
>>>>>>> }
>>>>>>>
>>>>>>> logging {
>>>>>>>             fileline: off
>>>>>>>             to_logfile: yes
>>>>>>>             to_syslog: yes
>>>>>>>             debug: on
>>>>>>>             logfile: /var/log/corosync.log
>>>>>>>             debug: off
>>>>>>>             timestamp: on
>>>>>>>             logger_subsys {
>>>>>>>                     subsys: AMF
>>>>>>>                     debug: off
>>>>>>>             }
>>>>>>> }
>>>>>>> -------------------------------------------------------------
>>>>>>> 以上です。
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Linux-ha-japan mailing list
>>>>>>> Linux****@lists*****
>>>>>>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>>>>> _______________________________________________
>>>>> Linux-ha-japan mailing list
>>>>> Linux****@lists*****
>>>>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan
>>>>
>>> _______________________________________________
>>> Linux-ha-japan mailing list
>>> Linux****@lists*****
>>> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan





Linux-ha-japan メーリングリストの案内
Zurück zum Archiv-Index