Lustreを使用したスケーラブルな分散ファイルシステムの配備
Lustreは、ハイパフォーマンスコンピューティング(HPC)クラスタおよび環境に使用される、オープンソースの並列分散ファイルシステムです。Lustreという名前は、Linuxとクラスタのポートマントーです。
Lustreクラスタは、ファイル・システムのスループットまたはストレージ容量(あるいはその両方)を向上させるためにスケーリングされます。コンピューティングとストレージを組み合わせると、1か月あたりのギガバイトあたりのコストはわずか数セントになります。
Terraformデプロイメント・テンプレートは、コンピュート、ストレージ、仮想クラウド・ネットワーク、サブネットなどのOracle Cloud Infrastructureリソースをプロビジョニングします。また、管理サーバー(MGS )、メタデータ・サーバー(MDS )、オブジェクト・ストレージ・サーバー(OSS )、Lustreクライアント・ノードなどのLustreソフトウェアもプロビジョニングします。
アーキテクチャ
この参照アーキテクチャでは、単一の可用性ドメインおよびリージョナル・サブネットを持つリージョンを使用します。複数の可用性ドメインを持つリージョンで同じ参照アーキテクチャを使用できます。可用性ドメインの数に関係なく、デプロイメントにリージョナル・サブネットを使用することをお薦めします。
次の図は、この参照アーキテクチャを示しています。
![lustre-oci.pngの説明が続きます lustre-oci.pngの説明が続きます](img/lustre-oci.png)
図lustre-oci.pngの説明
スケーラブルなLustreアーキテクチャーには、次のコンポーネントがあります。
- 管理サーバー(MGS)
MGSは、1つまたは複数のLustreファイルシステムの構成情報を格納し、この情報を他のLustreホストに提供します。このグローバル・リソースは、複数のファイル・システムをサポートできます。
- メタデータ・サーバー(MDS)
MDSは、Lustreファイル・システムに索引またはネームスペースを提供します。メタデータ・コンテンツは、メタデータ・ターゲット(MDT)と呼ばれるボリュームに格納されます。Lustreファイル・システムのディレクトリ構造とファイル名、権限、拡張属性およびファイル・レイアウトがMDTに記録されます。各Lustreファイルシステムには、少なくとも1つのMDTが必要です。
- Object Storage Server (OSS)
OSSは、Lustreファイル・システム内のすべてのファイル・コンテンツにバルク・データ・ストレージを提供します。各OSSは、オブジェクト・ストレージ・ターゲット(OST)と呼ばれるストレージ・ボリュームのセットへのアクセスを提供します。各OSTには、Lustre内のファイルのデータを表す複数のバイナリオブジェクトが含まれています。Lustreのファイルは、MDSに格納されているメタデータiノードに加えて、1つ以上のOSTオブジェクトで構成されます。
- Lustreクライアント
クライアントは、Lustreファイル・システムにアクセスするコンピュート・インスタンスです。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するソフトウェア定義のネットワークです。VCNは、リージョンまたは可用性ドメインに固有のサブネットにセグメント化できます。リージョン固有のサブネットと可用性ドメイン固有のサブネットの両方を同じVCNに共存させることができます。サブネットはパブリックまたはプライベートにできます。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャ、または内部の可用性ドメイン・ネットワークを共有しません。したがって、あるアベイラビリティ・ドメインでの障害が、リージョン内の他のアベイラビリティ・ドメインに影響を及ぼすことはほとんどありません。
推奨事項
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として、次の推奨事項を使用します。
- コンピュート・シェイプ、ベース・ホスト
ベース・ホストは、プライベート・サブネット内の任意のノードにアクセスするために使用されます。VM.Standard.E2.1またはVM.Standard.E2.2シェイプを使用します。
- コンピュート・シェイプ、MGSおよびMDS
MGSはリソースを大量に消費しないため、MGSとMDSを同じインスタンスでホストできます。ノード・レベルの停止がファイル・システムに影響を与えないようにするには、高可用性のベア・メタル・インスタンスを使用します。
- ブロック・ボリュームと高可用性を備えたベア・メタル・コンピュート
BM.Standard2.52を使用します。2つのノードがペアで構成されています。それぞれ25 Gbpsのネットワーク速度を持つ2つの物理ネットワーク・インタフェース・コントローラ(NIC )。すべてのトラフィックで1つのNICを使用してストレージをブロックし、もう1つのNICを使用してクライアント・ノードからOSSおよびMDSノードへのデータを受信します。
ブロック・ボリューム・ストレージ(デプロイメント要件ごとのサイズと数)を複数インスタンス・アタッチメントとともに使用して、両方のコンピュート・ノードにボリュームをアタッチします。
- コンピュート・シェイプ、OSS
OSSの推奨事項はMGSおよびMDSの場合と同じです。
- コンピュート・シェイプ、Lustreクライアント
デプロイメント・プラン、特にネットワーク帯域幅の要件に基づいて、仮想マシン(VM)シェイプを選択します。
個々のクライアントのスループットは、容量によって異なります。2.5-Gbpsネットワーク帯域幅を使用して10個のクライアントを配備する場合、集約帯域幅は25 Gbpsです。
- RAID構成
オプションで、DenseIOシェイプをRAID 0で構成できます。
OSSごとにOSTを1つ構築する場合は、RAIDを使用します。
OSSごとに1つのOSTを使用する場合は、OSSごとに8つのブロック・ボリュームを使用してスループットを最大化することをお薦めします(RAID 0はオプションです)。
ノート:
Terraformテンプレートは、DenseIOまたはブロック・ボリュームを使用してベア・メタル・シェイプを構築します。 - VCN
VCNを作成するときに、各サブネットのクラウド・リソースに必要なIPアドレスの数を決定します。クラスレス・ドメイン間ルーティング(CIDR)表記を使用して、必要なIPアドレスに十分な大きさのサブネット・マスクおよびネットワーク・アドレス範囲を指定します。標準のプライベートIPアドレス・ブロック内にあるアドレス空間を使用します。
オンプレミス・ネットワークと重複しないアドレス範囲を選択して、必要に応じてVCNとオンプレミス・ネットワーク間の接続を設定できるようにします。
VCNを作成した後は、そのアドレス範囲を変更できません。
サブネットを設計する際には、機能およびセキュリティ要件を考慮してください。同じ層またはロール内のすべてのコンピュート・インスタンスを、セキュリティ境界として機能できる同じサブネットにアタッチします。
リージョナル・サブネットを使用します。
- セキュリティ・リスト
セキュリティ・リストを使用して、サブネット全体に適用されるイングレス・ルールおよびエグレス・ルールを定義します。たとえば、このアーキテクチャでは、プライベート・サブネット全体に対してICMPを内部的に使用できます。
注意事項
- パフォーマンス
最適なパフォーマンスを得るには、適切な帯域幅を持つ正しいコンピュート・シェイプを選択します。
- 可用性
デプロイメント要件に基づいて高可用性オプションを使用することを検討してください。
- コスト
ベア・メタル・サービスにより、ネットワーク帯域幅のパフォーマンスが向上し、コストが高くなります。要件を評価して、適切なコンピュート・シェイプを選択します。
- モニタリングとアラート
MGS、MDSおよびOSSノードのCPUおよびメモリー使用率の監視およびアラートを設定して、必要に応じてVMシェイプをスケール・アップまたはスケール・ダウンします。
デプロイ
このリファレンス・アーキテクチャのTerraformコードは、Oracle Cloud Infrastructure Resource Managerのサンプル・スタックとして使用できます。GitHubからコードをダウンロードし、特定の要件にあわせてカスタマイズすることもできます。
- Oracle Cloud Infrastructure Resource Managerのサンプル・スタックを使用してデプロイします。
をクリックします。
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件をレビューして受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面に表示されるプロンプトと指示に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、計画を確認します。
変更を加えるには、「Stack Details」ページに戻り、「Edit Stack」をクリックして、必要な変更を行います。次に、プラン処理を再度実行します。
- これ以上変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして「Apply」を選択します。
- GitHubでTerraformコードを使用してデプロイします。
- GitHubに移動します。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの手順に従います。