メインコンテンツへスキップ

トラブルシューティングワークフロー:MHost RDBアプリのクォーラム不足

Views:
60
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
CORE
Last Updated:

環境

  • ONTAP 9

問題

RDBアプリケーションがクォーラムのメンバーでない(「ローカルユニットがオフライン」)場合、コマンドとサービスが機能しなくなったり、限られた容量で機能したりすることがあります。

これは通常、ネットワークパーティション、リモートノードの健常性、またはローカルノードの健常性が原因の一時的な状態です。

RDBクラスタ構成は、定義されたレプリケーションサイト(ノード)のセットで構成され、これらはすべて相互に認識されます。クラスタメンバーシップと設定は、レプリケートされたファイル/var/rdb/_sitelist 内に格納されます。すべてのRDBアプリケーションまたはリング(mgwd、vldb、vifmgr、bcomdなど)は、サイトリスト設定を共有します。

_sitelist (クラスタ構成データ)はシステム内で自動的にレプリケートされます。内容は次のとおりです。

  • バージョン
  • クラスタUUID
  • サイトのリスト。

各サイトには、ID、ホスト名、クラスタIPアドレスのペア、および状態(適格/不適格)があります。このサイトがクォーラム形成に参加するかどうかは、資格の設定によって決まります。これは管理上の選択です。さらに、1つのサイトが「イプシロン」を保持するように指定することもできます。これは、半分のサイトだけでクォーラムを形成できる追加の部分投票です。「イプシロン」は「マスター」と同じではありません。2ノードHAモードでは_sitelist HA_CONFIG 属性が表示されます。これは、クォーラムの処理にまったく異なるルールが適用されることを意味します。

クォーラムは、1つのインスタンスがマスターとして選択された、同様のRDBアプリの多数派に接続されたものです。マスターは通常、_sitelist の最初の複数のインスタンスの1つです。各レプリケーションリングは、他のリングから完全に独立して動作します。異なるリングが異なるマスターを持つのは正常ですが、通常は同じノードに配置されます。

クォーラムのメンバーでないノード(OOQ)は、クォーラムのメンバーではありません。つまり、まだクォーラム形成に参加していない(起動したばかり)か、マスターがOOQをプッシュしたためにマスターとの接触が失われています。

オフライン状態では、クォーラムのマスターがデータベースの書き込みや更新を行うことはできません。ただし、データベースのローカルのポイントインタイム読み取り専用コピーを使用できます。読み取り専用コピーの有用性は、特定のRDBアプリケーションによって異なります。たとえば、VLDBはオフラインのときにNブレードからの回答クエリを続行できます。さまざまなアプリの所有者に相談する必要があります。

RDBアプリケーションは、CPUサイクルとI/OサイクルでD-bladeおよびN-bladeと競合します。このシステムはリアルタイムシステムではなく、今後のリリースで予定されているサービスレベルアグリーメント(SLA)もありません。したがって、RDBアプリは、負荷の高いシステムでOOQになることがあります。この状態はバグではありません。

ローカルノードまたはリモートノードがOOQの場合、CLIコマンドの呼び出しが失敗し、エラーメッセージに「Local unit offline」が表示されます(一部のコマンドは、オフラインが発生したときに管理者に知られずに自動的に再試行されます)。この場合、状況は通常一時的なものであるため、詳細を掘り下げる前にコマンドを再試行する必要があります。

マスターで次のいずれかの問題が発生した場合、新しいマスターが選択されるまで、すべてのアプリが一時的にオフラインになります。

アドバンス コマンド:
すべてのリングのクォーラムの状態を調査するには、アドバンス レベルのコマンドcluster ring show使用します。

::>set advanced

::*> cluster ring show
Node    UnitName Epoch   DB Epoch DB Trnxs Master   Online
--------- -------- -------- -------- -------- --------- ---------
csiptc-2240-09 mgmt 88    88     917522   csiptc-2240-09 master
csiptc-2240-09 vldb 90    90     3889    csiptc-2240-09 master
csiptc-2240-09 vifmgr 87   87     308046   csiptc-2240-09 master
csiptc-2240-09 bcomd 86   86     10     csiptc-2240-09 master
csiptc-2240-09 crs 87    87     107    csiptc-2240-09 master
csiptc-2240-10 mgmt 88    88     917522   csiptc-2240-09 secondary
csiptc-2240-10 vldb 90    90     3889    csiptc-2240-09 secondary
csiptc-2240-10 vifmgr 87   87     308046   csiptc-2240-09 secondary
csiptc-2240-10 bcomd 86   86     10     csiptc-2240-09 secondary
csiptc-2240-10 crs 87    87     107    csiptc-2240-09 secondary
10 entries were displayed.



cluster show コマンドは、mgwdのクォーラム状態のみを表示します(すべてのリングにcluster ring showrdb_dump使用)。

::*> cluster show
Node                 Health  Eligibility   Epsilon
-------------------- ------- ------------  ------------
csiptc-2240-09       true    true          false
csiptc-2240-10       true    true          false
2 entries were displayed.

システムシェル コマンド:

  1. 診断モードに切り替えます。set diag 
  2. 該当するノードでシステムシェルを開始します(diagユーザアカウントのロック解除が必要になる場合があります)。 systemshell -node <node-name>

mgwdが実行されていないときのクォーラムの状態を調べるには、FreeBSDシェルでrdb_dump を実行します。任意のクラスタノードから、このツールを使用して、RDBアプリケーションの一部またはすべての現在の状態情報を抽出します。典型的な手法は、 /var/rdb/_sitelist をcatし、rdb_dump ツールを使用して対象のIPアドレス(またはlocalhost)に送信して調査することです。rdb_dump では、次の情報を表示できます。

  • 全体的な健全性
  • トランザクションフロー
  • データベースのバージョン
  • さまざまなコンポーネントと内部。

オプションのリストを表示するには、rdb_dump -hと入力します。すべてのrdb_dump 出力は、照会されているプロセスの観点からの出力であることに注意してください。

% rdb_dump -h

rdb_dump [<host>] [options] <unit>*
   -h       - help
   -c [n]   - continuous with n sec delay (default 3)
   -v       - verbose; all options other than 'c'
   -e       - environment vars
   -f       - configuration info
   -x       - internal developer info on selected components
   -u       - Local Unit
   -d       - individual database summary
   -q       - Quorum Mgr
   -r       - Recovery Mgr
   -t       - Transaction Mgr
   -z       - Call exportHealth API to query health at a node.
   [<host>] - Name or IP, default localhost.
  <unit>*  - select from: vldb, management, vifmgr, bcomd, t1, smfpilot (test units).
              if omitted, dumps all product units on the host.
   Options may be combined, e.g., '-qrtx'.


rdb_dump 個 々 のユニットから見たクラスタの構成と健全性の情報が表示されます。

 

  • 「master」は動的なロールで、「Epsilon」は構成設定です。マスターサイトとイプシロンサイトが異なることがよくあります。
  • レプリケーショングループ(vldb、vifmgr、bcomd、mgwd)は独立して動作します。それぞれに異なるマスターと健康情報があるかもしれません。ただし、設定情報は共有する必要があります。

ボックス間の問題を分析するための構成

  1. 環境と構成(-eおよび-f)が想定どおりに一致していることを確認します。
  2. 各ユニットインスタンスの設定が一致していることを確認します。

正常性(デフォルト)
正しい構成であれば、正常性情報にレプリケーショングループのステータスが要約されます。 
:マスターから得られた健康は常に最も正確です。セカンダリ情報を他のセカンダリに伝播するのにわずかな遅れがありますが、それらは合意になります。

監視
-c を使用して、 通常の動作中にボックスを継続的に監視します。また、Boxを再起動するときに、-c を使用してアプリが起動してオンラインになるときに表示します。

 

Sign in to view the entire content of this KB article.

New to NetApp?

Learn more about our award-winning Support

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.