システム管理
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

MC/SGによるTOCは安全か?

itoma
アドバイザー

MC/SGによるTOCは安全か?

いつもお世話になってます。

既にどなたか質問している内容でしたらすみません。MC/SGのTOCに関して教えて頂きたいことがあります。

MC/SGのパラメータでnode_fail_fast_enableを有効にして異常を検出した場合TOCをさせてノードの切替をしています。

絶対ということはあり得ないのは重々承知してますが、TOCによりファイルシステムが壊れることはよくあることなのでしょうか?

マニュアルにはTOCの前にrebootが行われるとの説明があります。

大抵の場合、このrebootによりファイルシステムが正常にcloseされ壊れるということはあまり心配しなくても良いのでしょうか。

MC/SGとしてTOCする機能を提供しているということは、それほどリスクのある行為ではないと解釈してもいいのでしょうか?

よろしくお願い致します。
6 件の返信
masaakio65
レギュラーアドバイザー

MC/SGによるTOCは安全か?



リスクは低いながらあるでしょう。

でも、ジャーナリング機能のあるVxFSなどを使っていれば、それほど気にしなくてもいいのでは?

nadachi
レギュラーアドバイザー

MC/SGによるTOCは安全か?

 要点は、"何で緊急にノードを止めないといけないか”だと思います。

 何らかの異常を検出してノードが止まる場合、”サービス" は他のノードに移って起動が始まるはずです。ここでもともとサービスが動作していたノードが

動き続けてしまうと、最悪の場合、ノード間で共有されているディスクに、2つのノードからアクセスが発生することになります。これが一番避けたいシナリオだと思います。サービスを止めるために、start/stopスクリプトや、rebootを実行するわけですが、それでも何らかの理由でサービスが停止できなかったとき、残りの操作は TOCしかないでしょう。

 無論、rebootではなく TOC操作で止まるとき、

ファイルシステムのumountが間に合っていなければ、切り替わったノードでサービスを開始する前に fsckの実行が必要でしょう。ですがそれよりも、共有バス上のディスクに2つのノードが同時アクセスしてユーザーデータがおかしくなる、を防ぐほうが重要なのでは。

( あと、ディスクリソースばかりでなく、IPアドレスが移動しますから、元のノードが生き残っていると、

このIPアドレスに対して悪影響があるかも知れませんね。(一つのサブネット上に,同じIPアドレスをもった

カードがある事になる。)それを確実に止めるには元のノードを止めてしまうしかないでしょう。)

参考まで。
itoma
アドバイザー

MC/SGによるTOCは安全か?

masaakio65さん,nadachiさんありがとうございます。

まずTOCさせる目的ですが、切替時間の短縮と切替をスムーズに行いたいというのが大きいです。

プロセスが異常になり、いざ切り替えようとして通常の停止処理で正常に停止出来るケースばかりではないと思うので、TOCで無条件にダウンさせた方が確実なのかと思っています。

oracleなどのコネクションが残っていつまで立ってもoracleが停止出来ないなんてこともありますし。

いままでもTOCによる停止をしており、幸運にもファイルシステムが壊れるという経験はありませんが、そういった危険性について最近話題になり、実際のところどうなのかと確認しておこうと思ったのが発端です。

ただ、あまり認識が無かったのですがnadachiさんが言うような複数のノードからディスクにアクセスしてしまうような事象が起こることはあるのでしょうか?

ちょっと本題の内容からそれますが。

現用待機のクラスタ構成で現用系のパッケージが停止しないうちに、待機系にパッケージが移ってしまうというのはあるのでしょうか?

このような事例があるのであればなおさらTOCさせる意味はあるとは思うので、どういったタイミングで発生するか等の情報があれば教えて下さい。

よろしくお願い致します。
nadachi
レギュラーアドバイザー

MC/SGによるTOCは安全か?

> ただ、あまり認識が無かったのですがnadachi

> さんが言うような複数のノードからディスクに

> アクセスしてしまうような事象が起こることは

> あるのでしょうか?

いえいえ、見たことはありませんが、悲観的に考えたworst caseです。サービスがノード間で移動するときには、package controlスクリプトで停止させるわけですが、それに何らかの特別なケースで不具合があったり、または、package controlスクリプトの実行に必要な実行ファイルの入ったファイルシステムが利用可能でなかったり...とかが起これば、サービスプログラムが走り続けたまま、というのはありえるかも知れない、という程度の話です。

hazelwood
信頼あるコントリビューター

MC/SGによるTOCは安全か?

> ただ、あまり認識が無かったのですがnadachi

> さんが言うような複数のノードからディスクに

> アクセスしてしまうような事象が起こることは

> あるのでしょうか?

MC/SGの仕様上は、共有ディスクのvgをノード間で排他的にしかactivateできないので、共有ディスクへのアクセスを必要とするパッケージはいずれかのノードでしか正常に起動できないはずです。

また、それとは別に、クラスタ内の複数のノードで同じパッケージは同時に実行しないような実装になっています。(他のクラスタソフトも同じだと思いますが。)

TOCはMC/SG自体の異常への対策にもなっています。

MC/SGが定期的にカーネルと通信をしており、これが途切れるとカーネルがTOCを起こします。

つまり、何らかの理由でMC/SGが正常に動作しなくなると、そのノードはTOCで停止します。

(この場合、MC/SGが正常でないので、パッケージの停止が正しく行われる保証がありませんので。)

itoma
アドバイザー

MC/SGによるTOCは安全か?

そうことですね。

私の早合点だったようですね。

安心しました。