Oracle Cloud Infrastructureでのリモート同期ブロック・レプリケーションの使用
リモート同期ブロック・レプリケーションを使用して、ブロック・ボリュームのフォルト・トレランスを提供します。
多くの企業にとって一般的な課題は、データベース上で実行されるアプリケーション、基礎となるブロック・デバイスにアクセスするアプリケーション、およびサービスの遅延ゼロのビジネス要件です。
たとえば、支払処理会社などです。支払処理の遅延が顧客の目の前で評判やブランド名に悪影響を及ぼすため、真のフォルト・トレランスを実現するには、高可用性テクノロジが必要です(単一コンポーネントの障害の場合、サービスの中断はゼロ)。
アーキテクチャ
このアーキテクチャは、Oracle Cloud Infrastructure (OCI)に高可用性ブロック・デバイスを実装し、ビジネス・アプリケーションのレベルでの障害に完全に耐えます。このアーキテクチャは、継続性を同時に必要とするパフォーマンスに敏感なアプリケーションに使用します。
このアーキテクチャは、単一のエンティティであるiSCSIブロック・デバイスをユーザーに提供します。このデバイスは、単一コンポーネントの障害に関係なく常に使用可能になります。他のすべてのアーキテクチャ・コンポーネントはユーザーから非表示になります。アーキテクチャは、障害またはスイッチオーバーの場合に完全に自動化されます。障害またはスイッチオーバーが発生した場合にのみ、1秒または2秒間、iSCSIデバイスのパフォーマンスが約50%低下します。
常に使用可能な単一のブロック・デバイスを実装するには、次のものが必要です。
- 3つのコンピュート・インスタンス、仮想マシンまたはベア・メタル(BM)です。後者は安定した性能を持つため、望ましい場合があります。
- 2つのVCN: 1つのパブリック、1つのプライベート。
- ターゲットの2つのブロック・ボリューム(常時使用可能デバイス)。
- (推奨)ブロック・ボリュームを少なくとも10個のVPUにします。I/Oスループットの攻撃性と、ミラー化されたホスト(およびブロック・ボリューム)間の距離に応じて、さらに高いレベルのIOPSを検討することをお薦めします。
したがって、常時使用可能なブロック・デバイスを実装するコストは、コンピュート・インスタンスのコストを3倍にし、デバイス自体のコストを2倍にしました。
次の図は、このリファレンス・アーキテクチャを示しています。
リモート- 同期- ブロック- レプリケーション- ダイアグラム-oracle.zip
このアーキテクチャには、次のコンポーネントがあります。
- 分散複製型ブロック・デバイス
Distributed Replicated Block Device (DRBD)は、リモートLinuxインスタンス上の2つのブロック・デバイス間のネットワーク接続を維持し、ソース・インスタンスから宛先インスタンスにI/O操作をレプリケートするLinuxカーネル・ドライバです。
- ペースメーカー
Pacemakerはオープンソースの高可用性クラスタ・リソース・マネージャで、一般的にLinux環境で使用されます。これにより、障害を検出し、クラスタ内の他のノードでサービスを自動的に再起動または再配置することで、最小限の停止時間でアプリケーション、サービスまたはリソースが継続的に実行されます。
- コロシンク
Corosyncは、スプリットブレインの場合に修復のセマンティクスでPacemakerを拡張するオープンソースのソフトウェア製品です。
- iSCSIイニシエータおよびターゲット
iSCSIは、ネットワーク経由でSCSIデバイスを提供するクライアントおよびサーバーソフトウェアコンポーネントです。
レコメンデーション
- VCN
VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能できる同じサブネットにアタッチします。
- クラウド・ガード
Oracleが提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプ、およびそれらに対して実行を許可するアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。
クラウド・ガードをテナンシ・レベルで適用して、最も広い範囲をカバーし、複数の構成を維持する管理上の負担を軽減します。
管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティーを必要とするリソースの場合、Oracleではセキュリティーゾーンを使用することをお勧めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGでは、VCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
- ロード・バランサの帯域幅
ロード・バランサの作成時に、固定帯域幅を提供する事前定義済のシェイプを選択するか、帯域幅範囲を設定するカスタム(フレキシブル)シェイプを指定して、トラフィック・パターンに基づいて帯域幅を自動的にスケーリングできます。どちらの方法でも、ロード・バランサの作成後にいつでもシェイプを変更できます。
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
- パフォーマンス
N IOPSをユーザーに提供するには、常時利用可能なデバイスでN倍の公称 IOPSを計画してください。これは、パフォーマンスの半分がリアルタイム・ミラーリングに費やされていることが原因です。
- セキュリティ
ソリューションをパブリック・ネットワークとプライベート・ネットワークに分割して、実装の詳細を分離することを強くお薦めします。
- 可用性
このテクノロジでは、常に使用可能なデバイスをiSCSIとして実装することをお薦めします。そのため、ユーザーは、マシンでLinuxとWindowsのどちらを実行するかに関係なく、真のフォルト・トレランスを楽しむことができます。
ソリューションのすべてのソフトウェア・コンポーネントは、オープンソース製品として公開されています。特に、DRBDドライバはバニラ Linuxカーネルの不可欠な要素であり、あらゆる Linuxディストロで利用できます。