ACT/SBY型クラスタ+LDAPサーバ+Linuxログイン認証時のクロスブート問題回避

2月 20, 2011

先日のことですが…うちのACT/SBYクラスタになってるLinuxサーバちゃんを、カーネルの設定をいじったもんでリブートしてやろうと思ったら、事件は起きてしまいました…

  1. まずメインサーバをリブート
  2. バックアップサーバ(この間HDDを入れ替えたサーバ)にフェイルオーバーするはずが、Apacheの設定がまずくてサービス引き継ぎに失敗。Stanbyにも落ちることが出来ずリブートエスカレーション
  3. メイン/バックアップ双方がリブートに入るが、NSSのLDAP参照が成立せず、起動がめちゃくちゃ遅い
  4. やっとこさ起動したかと思ったら、メイン機のHeartBeatがACT化に失敗。Stanby状態のまま

と、まともに起動しない問題にぶち当たってしまいました…さて、調べてみたところ、以下に問題があると判明

  • Stanby側のApacheの起動設定。LDAPをHPパスワード認証に使用する設定にも関わらず、LDAP,AUTHNZ_LDAPを起動パラメータに設定していなかった(最初のACT化失敗)
  • mt-daapd,cupsdが起動しない(2回目のACT化失敗)。これを使用するabahi-daemonが起動していないと言ってる。さらにabahi-daemonを使用するdbus-daemonがLDAPと通信出来ないもんで起動出来ない

さて、なぜLDAPと通信出来ないと言っているかというと…LDAPの参照先アドレスを、HeartBeatで交換されるACT/SBYサーバの代表IPアドレスに設定しているから。LDAPサーバご本尊はこの2重化クラスタでデータをバックアップしているため、どちらかを参照すればいいのですが、IPアドレスが引き継がれれば、クライアントの設定を変えなくても自動的に参照サーバが引き継がれるため、こんな設定にしている。でも、この代表IPアドレスは、HeartBeatがACT化するときに初めてインタフェースに付与するんですよ。つまり、

  • ACT化するためには代表IPアドレスが付与されていないといけない
  • 代表IPアドレスはACT化しないと付与されない

論理が矛盾したクロスブート問題が出来上がってしまってました。う~ん…
これを解消する策として、いろいろ考えてみた挙句、以下の対処で回避することといたしました。

ACT/SBY双方のサーバの/etc/ldap.conf内参照先サーバ設定を以下のように変更

host 127.0.0.1 <代表IPアドレス>

hostの項は、複数のサーバを並べて記述できる。ローカルホストのLDAPサーバをまず見て、次に代表IPアドレスを参照する。

そもそも、ACT/SBYサーバは、それぞれLDAPサーバは起動していて、ディレクトリデータをミラーリングしているんですよね。なもんで、ACT/SBYもローカル参照してもなんの問題もない。なので、NWデバイスが起動しない間も含めて、まずローカルホストを参照する。ローカルホスト上にLDAPサーバがいない場合は、代表IPのLDAPを参照すると。

こうすることで、起動途中にLDAPサーバが参照できずに起動できないという問題は解消するはず。SBYサーバ側の、Apacheサーバの設定も見直す事で、HeartBeatの引き継ぎはうまく行く事確認できました。は~、試験不足ですな。反省反省…

posted in Gentoo Linux, コンピュータ, マイサーバー by maruo

Follow comments via the RSS Feed | Leave a comment | Trackback URL

Leave Your Comment

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード