ピアツーピアのrsyncレプリケーションの実装
この実装では、rsyncテクノロジを使用し、ピア・ツー・ピア・モデルに従います。このモデルでは、コピーは中間層ピア・ホスト間で直接実行されます。各ノードには、そのピアへのSSH接続があり、SSHを介してrsyncコマンドを使用してプライマリ中間層ファイル・アーティファクトをレプリケートします。
rsyncピア・ツー・ピア・レプリケーションを実装する利点は次のとおりです。
- これは任意の中間層に適用可能な汎用ソリューションであるため、複数のシステムがある場合は、それらのすべてで同じアプローチを使用できます。
- これは、基礎となるストレージ・タイプに依存しません。ブロック・ボリューム、NFSなどに存在するファイル・アーティファクトのレプリケートに有効です。
- 中央ホストやストレージなど、追加のハードウェアは必要ありません。
- ストレージはセカンダリ・ノードにマウントされたままにできます。したがって、スイッチオーバーまたはフェイルオーバー操作ごとにセカンダリにストレージを接続またはマウントする追加の手順は必要ありません。
rsyncピア・ツー・ピアを実装する際の考慮事項は次のとおりです。
- 各環境のカスタム・スクリプトを作成し、定期的に実行することはユーザーの責任です。
- レプリカの方向を逆にする方法を実装するのはユーザーの責任です。
- スクリプトは一元化されていないため、多くのノードにわたるメンテナンスが必要であるため、大規模なクラスタではソリューションがより複雑になります。
ピアツーピアのrsyncスクリプトでは、プルまたはプッシュ・モデルを使用できます。プル・モデルでは、リモート・ノードからローカル・ノードにファイルがコピーされます。"push"モデルでは、スクリプトはローカル・ノードからリモート・ノードにファイルをコピーします。スタンバイ・ロールを持つノードでrsyncスクリプトを実行すると、プライマリからコンテンツを取得するプル操作が実行されます。プライマリ・ロールを持つノードでrsyncスクリプトを実行すると、内容をセカンダリ・ノードにコピーするプッシュ操作が実行されます。Oracleでは、ピアツーピアのプル・モデルをお薦めします。このように、rsyncスクリプトは、コピーのすべての操作(たとえば、コピーのchecksum比較)がセカンダリ・ノードで実行されるため、プライマリ・システムのホストのより少ないリソースを使用します。
rsyncピア・ツー・ピアのレプリケーションの設定
rsyncピア・ツー・ピア・モデルを実装するには、次のことが必要です。
- ホストとそのピア・ホスト間のSSH接続を許可します。
rsyncを使用して中間層ファイル・アーティファクトをプライマリ・ホストからセカンダリ・ホストにコピーするスクリプトを作成します。rsyncスクリプトは、コピーから特定のフォルダ(ロック・ファイル、ログ、一時ファイルなど)をスキップできます。- コピーからその情報を除外するか、レプリカの後に適切な情報で更新することによって、サイト固有の情報を管理する方法を実装します。
- これらのスクリプトを定期的に実行するようにスケジュールします。
- スイッチオーバーまたはフェイルオーバー後にレプリカの方向を変更するメカニズム。このメカニズムは、サイトの役割を識別する動的チェック、またはスイッチオーバーまたはフェイルオーバー後の手動変更(たとえば、適切なスクリプトの無効化および有効化)である場合があります。
ノート:
この例は、すべての中間層システムに適用されます。『Oracle Fusion Middleware障害時リカバリ・ガイド』で提供されるスクリプトを使用して、WebLogic DRシステムの中間層レプリカ(rsync_for_WLS.shおよびrsync_copy_and_validate.sh)を実行します。しかし、これらのスクリプトは一般的に適用可能で、OCIの中間層ファイル・アーティファクトを同期するのに十分な柔軟性を提供します。これらのリソースやその他のリソースへのリンクについては、「詳細の参照」を参照してください。
この例では、セカンダリサイトの各ホストは、そのピアプライマリノードとの接続を確立し、内容のプルを実行します。これらのスクリプトを使用して中間層レプリケーションを設定するには、『Oracle Fusion Middleware障害時リカバリ・ガイド』のプライマリ・ファイル・システムのセカンダリ・サイトへのレプリケートに関する項、特にレプリケーションの再同期アプローチおよびピア・ツー・ピアの使用のステップを参照してください。
rsyncピア・ツー・ピアのレプリケーションの検証
スイッチオーバーまたはフェイルオーバー操作では、プロセスが起動される前に、レプリケートされた情報がスタンバイ・サイトで使用可能である必要があります。これは、(スタンバイ・データベースをスナップショット・モードでオープンして)セカンダリ・システムを検証する場合にも必要です。
この実装では、ストレージは常にスタンバイで使用可能です。ボリュームをアタッチまたはマウントする必要はありません。必要な唯一のアクションは、コンテンツの最新バージョンが含まれていることを確認することです。
rsyncピア・ツー・ピアの進行中のレプリケーションの実行
レプリケーション・スクリプトを定期的に実行して、セカンダリ・ドメインとプライマリの同期を維持します。
中間層ホストからrsyncを使用する場合は、次の推奨事項に従ってください。
- OS
crontabまたは別のスケジューリング・ツールを使用して、レプリケーション・スクリプトを定期的に実行します。たとえば、『Oracle Fusion Middleware障害時リカバリ・ガイド』で提供されるrsyncスクリプトを使用する場合は、「同期スクリプトによる継続レプリケーションのスケジュール」の項で説明されているステップに従います。これらのリソースやその他のリソースへのリンクについては、このプレイブックの「詳細」を参照してください。レプリケーションの頻度については、このプレイブックの先頭にある中間層ファイル・アーティファクトで説明されているガイドラインに従ってください。 - 中間層プロセスをスタンバイ・サイトで停止したままにします。変更のレプリケート中にサーバーがスタンバイ・サイトで稼働している場合、その変更は次回起動時に有効になります。スタンバイ・サイトを検証する場合、またはスイッチオーバーまたはフェイルオーバーの手順中にのみ起動します。
- 各サイトに固有の情報を最新の状態に維持します。たとえば、ファイル・システムにAutonomous Databaseに接続するためのアーティファクトを含むフォルダが含まれている場合は、このフォルダのバックアップ・コピーを保持します。ウォレットで更新を実行する場合は、ウォレット・フォルダのバックアップを更新してください。このようにして、後続のスイッチオーバーおよびフェイルオーバーで正しくリストアされます。
- スイッチオーバーまたはフェイルオーバー後、レプリカの方向を逆にします。これは、特定の実装によって異なります。これは、アクティブ・サイトのユーザーを識別する動的チェックを使用するか、スイッチオーバーまたはフェイルオーバー後の手動変更を使用して、適切なスクリプトを無効化および有効化することで実行できます。たとえば、『Oracle Fusion Middleware障害時リカバリ・ガイド』で提供される
rsyncスクリプトを使用して、レプリカをもう一方の方向で実行するための同等のスクリプトを作成してください。crontabまたはスケジュール済ツールで、実際のロールに適したスクリプトのみを有効にします。
