ECS:CAS接続文字列とSDK読み取りフェールオーバーとCenteraの違い
Summary: CenteraとECSでは、ソフトウェア開発キット(SDK)のプールが開いた後、初期プローブに応答する際の動作が異なります。
Symptoms
JCASScriptでCAS(コンテンツ アドレス ストレージ)プロトコルを使用してECSに接続する場合、 info コマンドの場合、レプリカ アドレスは空です。
プライマリーECSが使用できない場合、SDKは読み取り中にどのようにフェールオーバーしますか
CenteraとECSでは、SDKプールがオープンされた後、初期プローブに応答する際の動作が異なります。
Cause
Resolution
Centera:
初期プローブの一部としてプライマリ Centera IP を接続文字列に指定すると、プールが開いた後、Centera はプローブ応答のレプリカ IP アドレスを SDK に送り返します。SDKは、プライマリーまたは接続のフェールオーバー(Centeraの停止またはネットワークからプライマリーの停止)時に、運用フェールオーバー(読み取り、書き込み、削除、存在)にこれらのレプリカIPを使用します
SDK オプション lazy_pool_open が使用されている場合、SDK はセカンダリ アドレスをプローブしません。運用上またはネットワークのフェールオーバーが発生した場合、セカンダリー アドレスが調査されます。
ECS:
プールがオープンした後、最初のプローブ応答の一部としてアプリケーション接続文字列にプライマリーIPアドレスのみを指定した場合、ECSはプローブ応答でレプリカIPアドレスを送り返しません。SDKはセカンダリーIPアドレスを認識しません。ECSでは、バケットはグローバルであり、強力な整合性を提供するように設計されています。オブジェクトを書き込む場合、ECSはレプリケーション ステータスに関係なくオブジェクトをフェッチします。これにより、任意の仮想データ センター(VDC)からの運用フェールオーバー(読み取り、書き込み、存在、削除)が可能になります
接続フェールオーバーには、接続文字列にプライマリ アドレスとセカンダリ アドレスを含めることをお勧めします。
SDK は、最初に接続文字列の最初の IP を調査します。プライマリーVDC IPをすべて受信すると、SDKはプローブの一環として、接続文字列内の他のIPをプローブしません( lazy_pool)を使用するシステムで一般的に行われる、繰り返しのプログラムおよび消去サイクルによって劣化しやすい傾向があります。接続フェールオーバーには、接続文字列内の他の IP が使用されます
通常のプールが開いている( lazy_pool open - エンジニアリング チームが推奨するもの) は、最初に接続文字列の最初の IP をプローブします。応答を受信すると、プライマリ アドレスを論理的に分離し、接続内の次のセカンダリ IP のみを調査し、すべてのセカンダリ IP アドレスをキャッシュに保持します。プライマリーVDCに到達できない場合に、Access During Outage(ADO)(15分間のタイムアウト)が有効になっていると、すべてのプライマリーIPが試行されます(Centeraと同じ)。すべてのIPがネットワークエラーをスローした後、セカンダリIPを試みます。15分のADOタイムアウトが発生すると、セカンダリーVDCは読み取り、書き込み、削除、存在の操作へのアクセスを提供します
接続文字列でセカンダリーIPを使用していない場合、およびプライマリーVDCに障害が発生するか、ネットワーク接続が失われた場合。セカンダリーVDCにアクセスするには、アプリケーションの接続文字列を手動で更新して、セカンダリーVDCのIPを含める必要があります。操作が動作する前に、15分のADOタイムアウトが経過する必要があります。