追加の管理プロセスの作成
複数のストレージ・ノードをデプロイした場合は、deploy-admin
プランを使用して管理プロセスを追加できます。ユーザーは、適切な数の管理を作成する必要があります。
たとえば、現在、データ・ストアに1つの管理プロセスがデプロイされているとします。ここまで、データ・ストア構成を続行するにはこれで十分でした。ただし、データ・ストアの信頼性を高めるには、それぞれ異なるストレージ・ノードで実行される複数の管理プロセスをデプロイする必要があります。このようにして、1つのストレージ・ノードにアクセスできなくなり、管理プロセスが終了しても、データ・ストアの管理を続行できます。複数の管理プロセスがある場合、管理プロセスを実行しているストレージ・ノードが失われた場合でも、データ・ストアの監視を続行できます。
plan deploy-admin
コマンドを使用して、先ほどデプロイしたストレージ・ノードに管理プロセスを作成します。このコマンドには、show topology
コマンドから取得できるストレージ・ノードIDが必要です。次に例を示します。
kv-> show topology
出力:store=mystore numPartitions=0 sequence=2
zn: id=zn1 name=Boston repFactor=1 type=PRIMARY allowArbiters=false masterAffinity=false
sn=[sn1] zn:[id=zn1 name=Boston] <hostname>.oraclevcn.com:5000 capacity=1 RUNNING
numShards=0
kv-> plan deploy-admin -sn sn1 -wait
出力:Executed plan 3, waiting for completion...
Plan 3 ended successfully
データ・ストアでの通常のデータ操作には管理は必要ありませんが、DDL操作などの様々な管理操作を実行するために必要です。たとえば、表の作成や変更、ユーザーとロールに関するセキュリティ操作などです。管理サービスを常に使用可能な状態にしておくことが非常に重要です。
管理サービスの完全な可用性が実現するかどうかは、特定の時間に使用可能な合計管理サービスのクォーラムが確保されているかどうかによって異なります。管理の定数を持つことは、シャード内のレプリケーション・ノードの定数と似ています。レプリケーション・ノードの場合、レプリケーション係数によって、レプリケーション・ノードに障害が発生しても、サービスを維持できるノード数が制御されます。たとえば、次の表は、レプリケーション係数が3の場合に、障害の数がどのように可用性に影響するかを示しています。
障害の数 | 可用性 |
0 | 完全 |
1 | 完全 |
2 | 読取り専用 |
3 | なし |
管理についても、同様の障害と可用性の値が存在します。ストア・レプリケーション係数を使用して、必要な管理の数を決定することをお薦めします。つまり、管理サービスの可用性は、データ・ストアがデータ操作に対して行う可用性と同じです。3人の管理者(一般的なレプリケーション係数に一致)を使用することをお薦めします。
ストア・レプリケーション係数と同様に、偶数のレプリカを使用して定数(合計数の大部分)を維持する場合、使用可能なレプリカ合計の半分以上が必要です。つまり、合計4つのレプリカでは、定数を維持するために少なくとも2つのレプリカを使用できる必要があります。たとえば、レプリケーション係数が4の場合の障害と可用性の振る舞いは次のようになります。
障害の数 | 可用性 |
0 | 完全 |
1 | 完全 |
2 | 読取り専用 |
3 | 読取り専用 |
4 | なし |
つまり、レプリケーション係数が4の場合、単一の障害は許容され、グループは完全な可用性を維持できます。さらに、障害の発生時に高いレプリケーション係数値に利点がないことに加え、障害が発生する可能性があるノードが1つ増えるようになり、定数を失う可能性が増加します。ここで説明するレプリケーション係数は、プライマリゾーンに関連付けられたプライマリ・ストレージ・ノード用です。セカンダリ・ゾーンを持つデータ・ストアの場合、セカンダリ・ゾーン内のノードは定数に含められません。
適切なゾーン内での管理の可用性を確保することは、もう1つの重要な考慮事項です。データ・ストアに複数のプライマリ・ゾーンがある場合、ゾーンは可用性を高めるように設定されていると考えられます。この場合、管理にも同じ配置を反映する必要があります。各ゾーンに、ゾーンのレプリケーション係数と同じ数の管理を作成することをお薦めします。レプリケーション・ノードではシャード内のすべてのノードが読取り操作を処理できることとは異なり、管理操作には管理マスターのみが対応します(マスターがない場合を除く)。したがって、セカンダリ・ゾーンに管理を配置することは、障害リカバリをサポートする場合にのみ役立ちます。
たとえば、ストアにプライマリ・ゾーンとセカンダリ・ゾーンがあり、すべてのプライマリ・ゾーンが失われた場合、管理者はrepair-admin-quorum
コマンドとplan failover
コマンドを使用し、セカンダリ・ゾーンをプライマリ・ゾーンに変換することで操作を再開できます。ただし、これらの操作は管理ノードが使用可能な場合にのみ発生できます。このため、セカンダリ・ゾーンを持つストアでは、セカンダリ・ゾーンに管理を含める必要があります。