Go to main content

Oracle® ZFS Storage Appliance 管理ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

カスケードレプリケーション

カスケードレプリケーションでは、レプリケーションパッケージでレプリケーションアクションを構成して、レプリケートされたデータのレプリケーションを可能にします。パッケージを複数のターゲットアプライアンスにレプリケートするため、同じパッケージに複数のレプリケーションアクションを作成できます。

基本設定

カスケードレプリケーションの基本設定は、ソース、1 つ以上の中間ターゲット、および最終ターゲットで構成されます。

カスケードレプリケーションの次の例は、ノード B のパッケージにレプリケートするためにプロジェクトのいずれかに設定されたアクションを持つソースノード A で構成されています。次に、ノード B はこのパッケージをノード C の別のパッケージにレプリケートするために作成されたアクションを持っており、ノード C はノード D のパッケージにレプリケートするためにこのパッケージに設定されたアクションを持っています。そのため、次の図に示すように、ノード B とノード C はノード A からノード D にレプリカをカスケードします。

image:カスケードレプリケーションの構成例の図

次の図に示すように、ソースノード A は、ノード B のパッケージにレプリケートするためにプロジェクトのいずれかに設定されたアクションを持っています。次に、ノード B は、このパッケージをノード C とノード D にレプリケートするために作成されたアクションを持っています。そのため、ノード B はノード A からノード C および D にレプリカをカスケードします。

image:ノード A からノード C および D にレプリカをカスケードするノード B があるカスケードレプリケーションの図

カスケード構成でのレプリケーション逆転は、ソースからレプリケーション更新を直接受信するノード (前の例のノード B) でのみサポートされ、その他のノード (ノード C および D) では逆転は無効です。カスケードレプリケーション設定で障害回復を計画する場合、複数ターゲット逆転を検討してください。複数ターゲット逆転および次のセクションの「逆転管理のための distant_target プロパティーの使用」を参照してください。

カスケードレプリケーションの管理

カスケードレプリケーションの管理は、次の 2 つのタスクで構成されます。

  • レプリケーションパッケージでのアクションの作成

  • カスケードレプリケーションのスケジュールの構成

レプリケーションパッケージでのアクションの作成

プロジェクトにレプリケーションアクションを作成する場合と同様に、レプリケーションパッケージにレプリケーションアクションを作成できます。次の図は、BUI を使用してレプリケーションパッケージにアクションを作成する方法を示しています。

カスケードレプリケーションは、シェアレベルレプリケーションではサポートされません。レプリケーションパッケージのシェアにアクションを構成することはできず、シェアレベルレプリケーションの結果として作成されたパッケージにアクションを構成することはできません。

image:BUI を使用してレプリケーションパッケージにアクションを作成する場合の図

次の図は、CLI を使用してレプリケーションパッケージにアクションを作成する方法を示しています。

image:CLI を使用してレプリケーションパッケージにアクションを作成する場合の図

カスケードレプリケーションのスケジュールの構成

すべてのアクションには次の 2 つのスケジュールがあります。

  • プロジェクトの一部として構成されたアクションのスケジュールは、ソーススケジュールと呼ばれます。

  • パッケージの一部として構成されたアクションのスケジュールは、カスケードスケジュールと呼ばれます。

次の図は、CLI を使用してレプリケーションアクションで新しいカスケードスケジュールを構成する方法を示しています。

image:CLI を使用してレプリケーションアクションで新しいカスケードスケジュールを構成する場合の図

次の図は、BUI を使用してレプリケーションアクションで新しいカスケードスケジュールを構成する方法を示しています。

image:BUI を使用してレプリケーションアクションで新しいカスケードスケジュールを構成する場合の図

いつでも両方のスケジュールを構成できますが、有効になるスケジュールは、アクションの構成場所に応じて 1 つのみです。レプリケーションの逆転または変換のためにレプリケーショントポロジが変更されると、有効なスケジュールも変化する可能性があります。たとえば、レプリケーションパッケージに対して逆転を実行したあとは、逆転されたパッケージに構成されているアクションがプロジェクトで構成されるようになるため、そのソーススケジュールがアクティブになります。同様に、プロジェクトアクションに対してレプリケーション変換を実行したあとは、プロジェクトでの構成に使用されるアクションがパッケージで構成されるようになるため、そのカスケードスケジュールがアクティブになります。

次の図は、CLI を使用して有効なスケジュールを表示する方法を示しています。

image:CLI を使用して有効なスケジュールを表示する方法の図

次の図は、BUI を使用して有効なスケジュールを表示する方法を示しています。アクションの左端のスケジュールタブが有効なスケジュールです。

image:BUI を使用して有効なスケジュールを表示する方法の図

レプリケーション逆転中に新しいアクションが作成される場合、ソーススケジュールとカスケードスケジュールの両方が保持されます。レプリケーションの方向を逆にするおよび複数ターゲット逆転を参照してください。

カスケードスケジュールでは after_update オプションを使用できます。設定すると、受信した更新が完了したあとにのみ更新が開始されます。

update_cascade_delay プロパティーは、受信したレプリケーション更新の完了と送信したカスケード更新の開始との間に遅延を指定するために使用できます。このプロパティーは、after_update オプションが選択されている場合にのみ有効です。

after_update オプションと update_cascade_delay プロパティーは、次の図に示すように構成できます。

image:CLI でオプションを設定する場合の図

連続スケジュールオプションは、パッケージのアクションでは使用できず、カスケードレプリケーションアクションでは新しいレプリケーションスナップショットは作成されません。新しい更新がソースから配信されると、カスケードアクションは、最新のパッケージスナップショットを使用してそのターゲットに対するレプリケーション更新を実行します。そのため、最初にソースから更新を受信することなくカスケードアクションに対して更新を実行しても効果はありません。成功の更新ステータスが設定され、last_try プロパティーが更新されます。

逆転管理のための distant_target プロパティーの使用

カスケードレプリケーションでは、2 つのノード間の遠隔ターゲット関係によって、ローカルターゲットと遠隔ターゲットが区別されます。distant_target プロパティーは、レプリケーションの逆転または変換の実行結果としてのトポロジ変換後に、この関係を保持します。

次の構成シナリオで、distant_target プロパティーについて説明します。

  1. distant_target プロパティーは設定されておらず、複数ターゲット逆転も設定されていない場合です。この場合、ターゲットで逆転が実行されると、一部のアクションは保持されません。詳細は、複数ターゲット逆転を参照してください。次の図に示すように、ノード A にも B にも遠隔ターゲット関係はなく、ノード B は潜在的ソースとして構成されていません (アクション AB: potential_source=falsedistant_target=false)。

    image:distant_target プロパティーも複数ターゲット逆転も設定されていない場合の図

    次の図に示すように、A に障害が発生し、B の逆転が実行された場合、A{1..3} に対するアクションは作成されません。

    image:A に障害が発生し、B の逆転が実行された場合の図
  2. distant_target プロパティーは設定されておらず、複数ターゲット逆転が設定されている場合です。この場合、潜在的ソースで逆転が実行されると、複数ターゲット逆転グループのすべてのターゲットに対するアクションが作成されます。遠隔ターゲット関係はないため、ローカルターゲットと遠隔ターゲットは区別されません。次の図に示すように、ノード A はソースで、ノード B は潜在的ソースです。ノード A および B には遠隔ターゲット関係はありません (アクション AB: potential_source=truedistant_target=false)。

    image:distant_target プロパティーが設定されておらず、複数ターゲット逆転が設定されている場合の図

    ただし、次の図に示すように、ノード A に障害が発生し、ノード B が逆転の実行後に新しいソースになると、A{1..3} に対するアクションが作成されます。

    image:ノード A0 に障害が発生して逆転後にノード B0 が新しいソースになった場合の図
  3. distant_target プロパティーが設定され、複数ターゲット逆転も設定されている場合です。この場合、潜在的ソースで逆転が実行されても、遠隔ソースにローカルであるターゲットに対するアクションは作成されません。次の図に示すように、ノード A はソースで、ノード B は潜在的ソースです。ノード A および B には遠隔ターゲット関係があります (アクション AB: potential_source=truedistant_target=true)。

    image:distant_target プロパティーが設定されており、複数ターゲット逆転も設定されている場合の図

    ノード A に障害が発生した場合で、ノード B の逆転後、ノード B は新しいソースになります。ただし、AB の間の遠隔ターゲット関係のために、A{1..3} に対するアクションは作成されません。A は、回復すると、そのパッケージを A{1..3} にカスケードします。

    image:ノード A に障害が発生した場合で、ノード B の逆転後の図

次の図は、CLI を使用して遠隔ターゲットを構成する方法を示しています。

image:CLI を使用して遠隔ターゲットを構成する方法の図

次の図は、BUI を使用して遠隔ターゲットを構成する方法を示しています。

image:BUI を使用して遠隔ターゲットを構成する方法の図

カスケードレプリケーションを使用する場合、潜在的ソースを設定して複数ターゲット逆転を構成することをお勧めします。そうしないと、複数のレプリケーション逆転のあとに元のカスケード構成に戻ることができなくなる可能性があります。また、遠隔ターゲットは、潜在的ソースが設定されている場合にのみ設定できます。詳細は、複数ターゲット逆転を参照してください。

障害シナリオ

カスケードレプリケーションの単一ノードの障害は、複数のアプライアンスに影響を与えることがあり、レプリケーション関係によって相互に接続された複数のデータセンターに影響を与える可能性もあります。カスケードレプリケーショントポロジに制限はありませんが、次の典型的な障害シナリオについて説明します。

  • 元のソースの障害

  • 中間ターゲットの障害

  • ソースサイトの障害

元のソースの障害

このシナリオでは、カスケードチェーンのソースに障害が発生します。この障害から回復するには、ソースに複数ターゲット逆転の初期構成が必要です。プロセスは、レプリケーション逆転の実行によってターゲットで開始されます。逆転されたターゲットはソースになり、引き続きほかのすべての元のターゲットと元のソースに増分更新を送信します。詳細は、複数ターゲット逆転を参照してください。

次の図に示すように、A はソースで、A1 は潜在的ソースです。AA1B にレプリケートされます。次に、BCD にレプリケートされ、ソース A に障害が発生します。

image:ソース A に障害が発生した場合の図

次の図に示すように、A1 で逆転が実行されたあと、A (A の回復時) と B にレプリケートが行われ、次に引き続き CD に更新が送信されます。

image:A1 で逆転が実行された場合の図

中間ターゲットの障害

この障害シナリオは、カスケードチェーンの中間ノードの障害に関連します。このシナリオからの回復は、再ターゲット手順に従うことで実行できます。次の図に示すように、カスケードチェーンの中間ノード B に障害が発生します。

image:中間ターゲットの障害の図

次の図に示すように、再ターゲット/バイパス手順が適用されると、ソース A は障害ノード B をバイパスして引き続きノード C に更新を送信し、次にノード D に更新が送信されます。

image:ソース A が障害ノード B をバイパスして引き続きノード C と D に更新を送信する場合の図

次の図に示すように、B が回復すると、AB の間のアクションは復元されますが、BC の間のアクションはバイパスされたままです。

image:A と B の間のアクションが復元され、B と C の間のアクションはバイパスされたままの場合の図

CLI を使用した障害ノードのバイパス:

  1. ソースで障害ノードに対するアクションを選択します。

  2. retarget」と入力します。

  3. retarget_mode プロパティーを bypass に設定します。

  4. 次の図に示すように、ターゲットをバイパスターゲットに設定します。

    image:CLI でターゲットをバイパスターゲットに設定する場合の図
  5. バイパスアクションに示されている bypassed_id プロパティーを使用して、障害ノードの回復後に元のアクションを選択して再ターゲットの復元を実行できます。次の図に示すように、生成された bypassed_id を表示できます。

    image:CLI で bypassed_id プロパティーを表示する場合の図
  6. 次の図に示すように、あとで B が回復された段階で、再ターゲット/復元手順を使用して元のカスケードトポロジに戻します。

    image:CLI での復元手順の図

BUI を使用した障害ノードのバイパス:

  1. ソースノードで、障害ノードに対するアクションを選択します。

  2. 「レプリケーションアクションの編集」ダイアログボックスで、「再ターゲット」をクリックします。

  3. 「レプリケーションの再ターゲット」ダイアログボックスで、モードを「バイパス」に設定します。

  4. 次の図に示すように、ドロップダウンリストからバイパスターゲットにするターゲットを選択します。

    image:BUI でドロップダウンリストからバイパスターゲットにするターゲットを選択する場合の図
  5. 「適用」をクリックします。

  6. 次の図に示すように、あとで B が回復された段階で、復元手順を使用して元のカスケードトポロジに戻します。

    image:BUI での復元手順の図

ソースサイトの障害

このシナリオでは、ソースとそのすべての直接ローカルターゲットが使用できず、遠隔ターゲットのいずれかで新しいソースによって置き換えられます。このシナリオから回復するには、ソースに複数ターゲット逆転の構成が必要です。詳細は、複数ターゲット逆転を参照してください。また、一部のターゲットを遠隔ターゲットとして構成する必要もあります。詳細は、「逆転管理のための distant_target プロパティーの使用」を参照してください。

次の図に示すように、A0B0、および C0 は複数ターゲット逆転グループを構成しており、B0C0 は潜在的ソースおよび遠隔ターゲットです。A0,B0A0,C0 は遠隔ターゲット関係を構成していますが (A0B0A0C0 は潜在的ソースおよび遠隔ターゲットとして構成する必要があります)、A1,A2,A3A0 とのローカル関係を、B1,B2,B3B0 とのローカル関係を構成しています。

image:ソースとそのすべての直接ローカルターゲットが使用できず、遠隔ターゲットのいずれかで新しいソースによって置き換えられる場合の図

次の図に示すように、B0 で逆転が実行された場合、A1,A2,A3A0 のローカルターゲットとして扱われるため、A1,A2,A3 に対するアクションは再作成されません。複数ターゲット逆転のプロパティーのため、B0C0 に更新を送信します。

image:実行された逆転とソースサイトの障害の図

互換性の考慮点

    カスケードレプリケーションを構成する場合、次の互換性規則に従ってください。

  • OS8.7.0 より古いファームウェアが実行されているノードは、カスケードレプリケーションの一部として構成できません。

  • OS8.7.0 より新しいファームウェアが実行されているノードは、最終ノードとして構成できます。

  • カスケードレプリケーションをサポートしていないファームウェアが実行されている最終ノードは、レプリケーション逆転を実行できます。ただし、そのソースに戻すようにレプリケーション更新を実行することはできません。このようなシナリオでは、レプリケーション関係を回復することはできません。

  • 再ターゲットは、カスケードレプリケーションをサポートしていないファームウェアが実行されている最終ノードを対象に実行できません。

  • カスケードチェーンで異なるファームウェアが実行されているターゲットのレプリケーション互換性規則は、どのソースおよびターゲットでも同じです。たとえば、ソースで使用されている機能をターゲットがサポートしていない場合、対応するソースからのレプリケーション更新は失敗する可能性があります。

  • カスケードレプリケーションをサポートしていないファームウェアバージョンにシステムロールバックすると、すべてのカスケードレプリケーションアクションが破棄されます。

関連トピック