オブジェクト・ストレージをリポジトリとして使用したOCIでのNFSクラスタ・サーバーの実装

開始時に頻繁にアクセスされるクリティカルで非構造化データに無制限にアクセスする場合、Oracle Cloud Infrastructure Object Storageが最適です。

ただし、一部のアプリケーションではObject Storageをネイティブに使用できないため、サードパーティ・ソリューションを使用する必要があります。このアーキテクチャでは、次のものを使用します。

  • Object Storageの読取りと書込みを行うRclone。
  • CorosyncおよびPacemaker: クラスタへの構築(アクティブ- スタンバイ)、および重要なアプリケーションに必要な高可用性(Rclone、セカンダリIP、NFSサービス、マウント・ポイントなど)。
  • クラスタによって共有されるネットワーク・ファイル・システム(NFS)をマウントし、クラスタのノード間の自動フェイルオーバーを行うセカンダリIP。

このリファレンス・アーキテクチャでは、高可用性と柔軟性を組み合せた顧客志向の構成について説明します。

アーキテクチャ

次の図は、このリファレンス・アーキテクチャを示しています。

このシナリオでは、スイッチオーバー・プロセスを迅速化するために、実行されているRcloneおよびNFSサービス、マウント・モデルのRclone、Rcloneによってマウントされたフォルダを共有するNFSサービス、およびいずれかのノードにのみアタッチされた分離IPを保持しました。

アーキテクチャには、次のコンポーネントがあります。



oci-rclone-architecture-diagram-oracle.zip

ノード間のスイッチオーバーのプロセスは、OTubeで確認できます。

APP Server => inst-i6hjc-rclone-ha -  Client Server
                        /mnt/nfs_rclone_v2 =  Mount point client side 

NFS - Floating IP = 172.10.0.100 

RCLONE => nfs-rclone = Cluster Node1 = IP = 172.10.0.287
RCLONE STANDBY => inst-e2fc3-rclone-ha =  Cluster Node 2 - IP = 172.10.0.121

NFS -  SHARE
/mnt/nfs_rclone =  From Object Storage 

リージョン間バックアップを使用してディザスタ・リカバリを作成できます。設定で変数を使用する場合、Rclone構成は静的です。



oci-nfs-cluster-architecture-diagram-oracle.zip

障害時リカバリの場合:

  • 他のリージョンにデータのレプリカを作成することで、ディザスタ・リカバリにオブジェクト・ストレージ・レプリケーションを使用します。「詳細: レプリケーションの使用」を参照してください。
  • コンピュート・インスタンスのディザスタ・リカバリ・ソリューションを作成します。「詳細の参照: ボリュームのレプリケート」を参照してください。

このアーキテクチャには次のコンポーネントがあります。

  • リージョン

    Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含むローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、広大な距離で(複数の国または複数の大陸にまたがる)リージョンを分離できます。

  • 可用性ドメイン

    アベイラビリティ・ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されるため、耐障害性が提供されます。可用性ドメインは、電源や冷却、内部可用性ドメイン・ネットワークなどのインフラストラクチャを共有しません。そのため、ある可用性ドメインでの障害がリージョン内の他の可用性ドメインに影響することはほとんどありません。

  • フォルト・ドメイン

    フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、それぞれ独立した電源とハードウェアがあります。複数のフォルト・ドメインにリソースを分散すると、アプリケーションは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNによってネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる、重複しない複数のCIDRブロックを含めることができます。VCNをサブネットにセグメント化して、そのスコープをリージョンや可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • オブジェクト・ストレージ

    オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を損なうことなく、シームレスにストレージを拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。

  • Rclone

    Rcloneは、クラウド・ストレージ上のファイルを管理するためのオープン・ソースのコマンドライン・プログラムであり、NFS経由でObject Storageを配信するためにここで使用されます。

  • CorosyncとPacemaker

    CorosyncおよびPacemakerは、小規模クラスタと大規模クラスタの両方に適したオープン・ソース・サービスであり、アプリケーション内の高可用性を提供する責任を負います。

  • OCI CLI

    OCI CLIは、Linux Corosync/Pacemaker VirtualIP IPaddr2リソースをOracle Cloud Infrastructure vNICセカンダリIPと統合します。

  • Oracle Linux

    この環境のホストには、Oracle Linux 8.6インスタンスが使用されます。Linux Rclone/Corosync/Pacemakerをサポートしているかぎり、その他のLinuxディストリビューションも使用できます。

  • セカンダリIP

    セカンダリ・プライベートIPは、起動後にインスタンスに追加できます。インスタンスのプライマリまたはセカンダリVNICに追加できます。このセカンダリIPはノード間でフロートします。ノードが停止している場合、フローティングIPは別のノードに渡されます。CorosyncとPacemakerは、この変更プロセスを実行します。

推奨事項

セカンダリIPおよびオブジェクト・ストレージを使用するOCIインスタンスを使用したNFSクラスタ構成の開始点として、次の推奨事項を使用します。 お客様の要件は、ここで説明するアーキテクチャとは異なる場合があります。
  • Rclone

    両方のクラスタ・ノードで同じディレクトリ名を使用します。Rcloneファイル・システムの使用に問題がないように、NFSエクスポート構成に注意してください。グラフィカルインタフェースを使用してディレクトリをマウントする場合は、グラフィカルインタフェースを使用してモニターできます。

    LinuxクラスタでRcloneサービスを構成しない場合は、crontabのシェル・スクリプトを使用して、サーバーの起動時にサービスを開始することをお薦めします

  • VCN

    VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準プライベートIPアドレス空間内のCIDRブロックを使用します。

    プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。

    VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。

    サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを同じサブネットに接続し、セキュリティ境界として機能できます。

  • コンピュート・シェイプ

    このアーキテクチャでは、コンピュート・ホストをクラスタ・ノードにホストするための最小リソースを含む、E3またはE4フレックス・シェイプを持つOracle Linux OSイメージを使用します。アプリケーションでより多くのスループット・ネットワーク、メモリーまたはコアが必要な場合は、別のシェイプを選択できます。

  • Oracle Linuxクラスタ

    Oracle Linuxインスタンスがプロビジョニングされたら、パブリック・ドキュメントの説明に従ってCLIを設定し、Corosync/Pacemakerクラスタとその要件(stonith、定足数、リソース、制約など)とともにインストールおよび構成する必要があります。Corosync/PacemakerクラスタおよびCLIを構成したら、VirtualIPリソースを設定する必要があります。このリンクは、コマンドラインを使用してCorosync/PacemakerでVirtualIPリソースを設定する方法の簡単な例です。同じプロセスは、WebブラウザUIでも実行できます。

  • オブジェクト・ストレージ

    オブジェクト・ライフサイクル管理(詳細の参照を参照)を使用して、ファイルのアップロード後にバケット内のデータを変更および管理するために、保存ルールを入力してデータを保持(詳細の参照を参照)します。

  • CorosyncとPacemaker

    Linux CorosyncおよびPacemakerをOCI CLIと統合する場合は、可能なかぎり多くの変数を使用して、スクリプトを実行中のサーバーとは無関係に静的に保ちます。

承認

  • アーティスト: Diego Mariano
  • 原本協力者: John Sulyok