トラブルシューティング

症状からみる

ハンドオーバーに失敗するようです

あるリビジョンまでの dtsd では rp_filter の設定がないと、 ハンドオーバーに失敗します。 次のコマンドを DTS クラスタの各ノード上で実行し、rp_filter を無効にしてください。

# sysctl -w net.ipv4.conf.all.rp_filter=0

なお、現在の dtsd では rp_filter の状態に関係なく ハンドオーバーが成功するように修正されています。

ウェブインターフェースが動作しません

必要なパッケージがインストールされているかどうか、確認してください。

dtsadmin のパスが分からない

dtsadmin は /usr/sbin/ もしくは /usr/local/sbin にインストールされます。

次を確認してください。

  • /usr/sbin と /usr/local/sbin に環境変数が設定されている
  • /usr/sbin/dtsadmin もしくは /usr/local/sbin/dtsadmin が存在する

dtsadmin を実行できない

dtsadmin コマンドはルート権限でしか実行することが出来ません。

次を確認してください。

  • 実行したユーザは root ユーザであるか
  • 実行時に sudo をつけてコマンドを実行したか

dtsadmin を実行したが応答がない

dtsadmin コマンドは、dtsd もしくは Heartbeat が起動していないと正しく動作しません。

dtsadmin の実行に時間がかかる

Heartbeat が起動しているが、dtsdが起動していない可能性があります。 dtsadmin は dtsd が起動していない場合には Heartbeat に直接接続を行いますが、 この場合 dtsd を通してコマンドを実行した場合よりも遅くなります。

次の操作で改善する可能性があります。

  • dtsd を起動する

ノードの追加時または再起動時に dtsd の起動に失敗する

dtsd は起動後に同じクラスタ内のノードからサーバ設定を取得しますが、 この時一度に設定を反映できる量を越えてしまうことがあります。 この場合は一度仮想ノードの量を減らすなどした後で dtsd を再起動することでうまく起動することができます。

dtsd を起動できない

Heartbeat が起動していない場合、dtsd の起動に失敗します。 Heartbeat が起動しているか確認してください。

また ha.cf の記述が正しくない場合、Heartbeat が起動していても dtsd が Heartbeat に接続できません

dtsd が停止した

次を確認してください。

dtsadmin -L, -S で dtsd が返却するメッセージサイズがサーバ設定が 32KB を超過している

カーネルのアップデートをしたら dts が動かなくなった

カーネルのアップデートを行った場合は dts カーネルモジュールの再ビルドとインストールを改めて行う必要があります。

ウェブインターフェースが停止した

次を確認してください。

apache が停止している

スプリットブレイン状態になった

スプリットブレイン状態になったかどうかは Heartbeat の状態を確認することで判断できます。 クラスタ内の各ノードで crm_mon コマンドを実行して、すべてのノードで同じ表示になることを確認してください。 もし同じ表示にならなかった場合にはスプリットブレイン状態になっている可能性があります。 この場合はスプリットブレイン状態になった原因を解決したのちに、 次の手順に従って dtsd を再起動してください。

  • dtsd の停止
  • heartbeat の再起動
  • dtsd の起動

エラー内容からみる

dtsd:dtsadmin already running

ウェブインターフェース、または CLI でこのエラーが出た場合、dtsadmin コマンドが同時に起動している可能性があります。

次を確認してください。

同時に二つのブラウザからウェブインターフェースを開いている

CLI などで dtsadmin コマンドを実行している

dtsadmin コマンドは動いていないが、/var/run/dtsadmin.pid ファイルが存在する