Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

レプリカセット アービタ

項目一覧

  • リリース バージョンに関する考慮事項
  • PSA レプリカセットのパフォーマンスの問題
  • シャードキー、トランザクション、アービタ
  • 複数のアービタに関する懸念
  • セキュリティ

状況によっては(プライマリとセカンダリがあるが、コストの制約により別のセカンダリを追加できない場合など)、レプリカセットへのアービタ追加を選択できます。アービタはプライマリの選挙に参加しますが、アービタにはデータセットのコピーがないため、プライマリになることはできません

アービタは厳密に1票の投票権があります。デフォルトでは、アービタの優先順位は0です。

重要

replica setのプライマリ メンバーまたはセカンダリ メンバーもホストするシステムでは、アービターを実行しないでください。

警告

シャーディングされたクラスターのシャードにプライマリセカンダリアービタ(PSA)アーキテクチャを使用すると、データを保持しているセカンダリが利用できない場合に可用性が失われる可能性があります。PSA クラスターは通常のレプリカセットとは異なります。シャーディングされたクラスターでは、操作の確認が必要な残りのクラスター ノードにアービタがある場合には完了できない w: majority 書き込み操作をシャードが実行します。

アービタを追加するには、「自己管理型レプリカセットへのアービタの追加 」を参照してください。

アービタ季刊 Rapid Releaseではサポートされません。配置にアービタが含まれている場合は、 LTSリリースのみを使用してください。

3 ノードのプライマリセカンダリアービタ(PSA)アーキテクチャを使用している場合は、次の点を考慮してください。

  • セカンダリが使用できなくなったり遅延が発生したりすると、 書込み保証 (write concern "majority"によってパフォーマンスの問題が発生することがあります。 こうした問題を軽減するためのアドバイスについては、「自己管理型 PSA レプリカセットのパフォーマンスの問題の軽減 」を参照してください。

  • グローバル デフォルト "majority" を使用しており、書込み保証 (write concern) が過半数のサイズより小さい場合、クエリは古い(完全には複製されていない)データを返すことがあります。

レプリカセットにアービタがある場合、トランザクションを使用してシャードキーを変更することはできません。 アービタは、 マルチシャード トランザクションに必要なデータ操作に参加することはできません。

書込み操作が複数のシャードにまたがるトランザクションで、アービタを含むシャードを対象に読み取りまたは書込み操作が実行される場合、そのトランザクションはエラーとなり中止します。

データの整合性に関する問題を回避するには、単一のアービタを使用します。複数のアービタにより、majority 書き込み保証(write concern)の確実な使用が妨げられます。

プライマリ ノードで障害が発生しても書き込みを継続するには、書き込み保証(write concern)の大半が、書き込み操作を確認する大多数のノードを必要とします。アービタはデータをストアしませんが、レプリカセット内のノード数に寄与します。レプリカセットに複数のアービタがある場合、ノード障害後にデータを持つノードの過半数が利用できる可能性は低くなります。

警告

セカンダリ ノードがプライマリ ノードより遅れており、クラスターが reconfigured の場合、複数のアービタからの投票により、遅れたノードが選出されます。古い構成で書き込みの過半数がコミットされていたとしても、新しいプライマリには、レプリケートされていない書き込みは行われません。その結果、データが失われます。

このシナリオを回避するには、最大で 1 つのアービタを使用します。

バージョン 5.3 で追加。

MongoDB 5.3 以降では、レプリカセット内の複数のアービタのサポートはデフォルトで無効になっています。レプリカセットに複数のアービターを追加しようとすると、サーバーはエラーを返します。

MongoServerError: Multiple arbiters are not allowed unless all nodes
were started with --setParameter 'allowMultipleArbiters=true'

MongoDB 5.3 以降を使用してレプリカセットに複数のアービタを追加するには、allowMultipleArbiters パラメーターを true に設定して各ノードを起動します。

mongod --setParameter allowMultipleArbiters=true

authorization で実行する場合、アービタは認証のためにセットの他のノードと認証情報を交換します。MongoDB は認証プロセスを暗号化し、MongoDB 認証交換は暗号化されているため安全です。

アービタはデータを保存しないため、認証に使用されるユーザーとロールのマッピングの内部テーブルを保持しません。したがって、認証が有効になっているアービタにログオンする唯一の方法は、localhost 例外を使用することです。

アービタと他のセット ノードとの通信は、選挙中の投票、ハートビート、構成データだけです。これらの交換は暗号化されません。

ただし、MongoDB 配置で TLS/SSL を使用する場合、MongoDB はレプリカセット ノード間のすべての通信を暗号化します。詳細については、「mongod および mongos を TLS/SSL 用に構成」を参照してください。

すべての MongoDB コンポーネントと同様に、アービタは信頼できるネットワーク環境で実行してください。

たとえば、データを保持する 2 つのノード(プライマリとセカンダリ)を持つ次のレプリカセットでは、アービタは、均衡を破るためにセットが奇数の投票数を集めることを許可します。

プライマリ、セカンダリ、アービタで構成されるレプリカセットの図。

戻る

遅延ノード