Lustre File Systemのデプロイ

Lustreを使用したOCIファイル・ストレージのデプロイは、次のステップで構成されます。
  • Lustreファイル・システムを使用したOCIファイル・ストレージの作成
  • ファイル・システムをマウントしています
  • LNetの構成
  • 読取りおよび書込み操作のテスト

Lustreファイル・システムの作成

次のステップでは、Lustreファイル・システムを使用したOCIファイル・ストレージの作成方法について説明します。

  1. OCIコンソールのナビゲーション・メニューで、「ストレージ」をクリックし、「Lustreファイル・システム」をクリックします。
  2. 「作成」をクリックします。
  3. Lustreファイル・システムの詳細を構成します。
    • ファイル・システム名: デフォルト名を受け入れるか、ファイル・システムのわかりやすい名前を入力します。
    • マウント名: デフォルトをそのまま使用するか、ファイル・システムのマウント時に使用するわかりやすい名前を入力します。
    • ファイル・システムの説明: (オプション)ファイル・システムの説明を入力します。
    • コンパートメント: デフォルトのコンパートメントをそのまま使用するか、コンパートメントを変更するリストを選択します。
    • 可用性ドメイン: デフォルトの可用性ドメインを受け入れるか、可用性ドメインを変更するリストを選択します。
    • タグ: リソースを作成する権限がある場合、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済タグを適用するには、タグ・ネームスペースを使用する権限が必要です。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に問い合せてください。タグは後で適用できます。
    • クラスタ配置グループ: レイテンシが低いように、ファイル・システムやその他のリソースを可用性ドメインに物理的に配置するクラスタ配置グループを選択することをお薦めします。クラスタ配置グループは、ファイル・システムの作成後に変更できません。
    • パフォーマンス層: ファイル・システムのパフォーマンス層を選択します。パフォーマンス層は、ファイル・システムのスループットを制御します。スループットは、プロビジョニングされたストレージのテラバイト(TB)単位で指定されます。ファイル・システムの作成後は、パフォーマンス層を変更できません。
    • 容量」: ファイルシステムのストレージ容量を選択します。サービス制限を超える容量を選択した場合、増加のリクエストを求めるプロンプトが表示されることがあります。

      ファイル・システムの総スループットは、パフォーマンス層と容量から計算されます。

    • ネットワーキング: ファイル・システムをマウントするVCNおよびサブネットを選択します。デフォルトでは、コンソールに、作業しているコンパートメント内のVCNsおよびサブネットのリストが表示されます。コンパートメントを変更して、別のコンパートメントからVCNまたはサブネットを選択します。

      選択したサブネットは、Lustreサーバーのデプロイに使用されるサブネットになります。このサブネットで、ポート512から1023の間のクライアント側ポートとLustreサーバー側ポート988との通信が許可されていることを確認します。

    • ネットワーク・セキュリティ・グループを使用したトラフィックの制御:このオプションを有効にし、ファイル・システムの仮想ファイアウォールとして機能するネットワーク・セキュリティ・グループ(NSG)を選択します。「+別のネットワーク・セキュリティ・グループ」を選択して、最大5つのNSGにファイル・システムを追加します。
    • ルート・スカッシュ: これらの設定では、ファイル・システムにアクセスするクライアントに、「Squash UID」および「Squash GID」に再マップされたユーザーID (UID)およびグループID (GID)があるかどうかを制御します。

      Squash: 「None」または「Root」を選択します。デフォルト値は「なし」であるため、デフォルトでは再マッピングは行われません。

      Squash UID: 「Squash」「Root」に設定されている場合、ルート・ユーザー(UID 0)はこの値に再マップされます。デフォルト値は「65534」です。

      Squash GID: 「Squash」「Root」に設定されている場合、ルート・グループ・ユーザー(GID 0)はこの値に再マップされます。デフォルト値は「65534」です。

    • ルート・スカッシュ例外: ルート・スカッシュ構成から特定のクライアントを除外するには、そのクライアント・アドレスを有効なIPアドレスまたは範囲として入力します。たとえば、10.0.2.4または10.0[2-10][1-255]です。+「別のクライアント・アドレス」を選択して、最大10個の例外を追加します。
    • 暗号化キー: デフォルトでは、Oracleはファイル・システムを暗号化するキーを管理します。キーのライフサイクルとその使用方法をより詳細に制御する場合は、独自のVault暗号化キーを選択できます
作成が開始されると、バックエンド・リソースのプロビジョニングが完了するまで数分かかります。時間は、ファイル・システムのパフォーマンス層およびサイズによって異なります。

Lustre File Systemのマウント

  1. Lustreファイル・システムの詳細に移動し、コンソールからmountコマンドを見つけます。
  2. Lustreクライアント・モジュールがインストールされているLinuxクライアントから、ファイル・システムをマウントできます。このクライアントでは、Lustre DKMSモジュールがインストールされています。
    [root@lustre-ol8-client ~]# rpm -qa | grep lustre
    lustre-client-2.15.5_oci1-1.el8.x86_64
    lustre-client-dkms-2.15.5_oci1-1.el8.noarch

    Oracle Cloud Agentによって管理されるRDMAネットワークを持つGPUホストのある環境では、LNetインタフェースを追加すると、デフォルト・インタフェース(ホストの最初のインタフェース)を介したホスト通信を妨げるルールが注入されます。これにより、特にOKE環境で、内部通信にローカルIPを使用する環境で問題が発生する可能性があります。直近のシステムでは、ローカルIPへのpingが機能しません。これを修正するには、次の回避策を使用して、LNetによるルートおよびルールの追加を無効にします。

    LNetインタフェースを追加する前にこれを実行します。LNetインタフェースが明示的に追加されない場合は、ファイル・システムをマウントする前にこれを適用します。

    echo 'options ksocklnd skip_mr_route_setup=1' >/etc/modprobe.d/lnet.conf && rmmod lnet; modprobe -v lnet
  3. Lustreモジュールをアンロードして(すでにロードされている場合)、クリーン・スタートします。ファイル・システムがすでにマウントされている場合、モジュールのアンロードは機能しません。lustre_rmmodによってすべてのモジュールがアンロードされない場合は、システムをリブートして新しい起動を取得します。
    [root@lustre-ol8-client ~]# lustre_rmmod 
  4. Lustreファイル・システムをマウントします。特定のインタフェースをLustre用に構成する必要がある場合は、モジュールをロードする前にlnetctl構成を使用します。詳細は、次の項を参照してください。
    [root@lustre-ol8-client ~]# modprobe lustre
    [root@lustre-ol8-client ~]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint

    マウントがエラー・メッセージNo such file or directory. Is the MGS specification correct?で失敗した場合、複数のインタフェース、またはホスト内の他のネットワーク状況が原因で、LNet (Lustreネットワーク)を自動構成できない可能性があります。この場合、LNetを手動で構成する必要があります。

    エラーは次のようになります。

    mount.lustre: mount 10.0.3.8@tcp:/lustrefs at /mnt/mymountpoint failed: No such file or directory
    Is the MGS specification correct?
    Is the filesystem name correct?
    If upgrading, is the copied client log valid? (see upgrade docs)

LNetの構成(Lustre Networking)

次のステップは、ファイル・システムのマウント・ステップが失敗し、Lustreの正しいインタフェースがlnetctl net showに表示されない場合にのみ必要です。lnetctl net showでLustreの正しいインタフェースが表示される場合、これらのステップは必要ありません。
  1. インタフェース名を検索します。システムに複数のインタフェースが存在する場合があります。Lustreファイル・システムに近い適切なインタフェースを選択します。ip routeコマンドを使用して、システム内のネットワークを表示し、Lustreファイル・システムにアクセスするためのより適切なインタフェースを見つけます。これは、主要なデータ転送が発生するインタフェースになります。ここで、使用されるインタフェースはenp0s5です。
    [root@lustre-ol8-client ~]# ip addr
    出力は次のようになります。
    ...
    2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
        link/ether 02:00:17:12:91:e9 brd ff:ff:ff:ff:ff:ff
        inet 10.0.3.42/24 brd 10.0.3.255 scope global dynamic enp0s5
           valid_lft 84865sec preferred_lft 84865sec
        inet6 fe80::17ff:fe12:91e9/64 scope link
           valid_lft forever preferred_lft forever
  2. 次のコマンドを実行します。
    [root@lustre-ol8-client opc]# modprobe lnet
    [root@lustre-ol8-client opc]# lnetctl lnet configure
    [root@lustre-ol8-client opc]# lnetctl net add --net tcp --if enp0s5
    [root@lustre-ol8-client opc]# lnetctl net show
    出力は次のようになります。
    net:
        - net type: lo
          local NI(s):
            - nid: 0@lo
              status: up
        - net type: tcp
          local NI(s):
            - nid: 10.0.3.42@tcp  <<<<<<<<<
              status: up
              interfaces:
                  0: enp0s5   <<<<<<<<

ファイル・システムのマウント

  1. 次のコマンドを実行します:
    [root@lustre-ol8-client opc]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint
    [root@lustre-ol8-client opc]# df -h /mnt/mymountpoint
    出力は次のようになります。
    Filesystem Size Used Avail Use% Mounted on
    10.0.3.8@tcp:/lustrefs 31T 17M 30T 1% /mnt/mymountpoint
  2. 次のコマンドを実行します:
    [root@lustre-ol8-client opc]# lfs df -h /mnt/mymountpoint
    出力は次のようになります。
    UUID bytes Used Available Use% Mounted on
    lustrefs-MDT0000_UUID 563.4G 33.8M 513.4G 1% /mnt/mymountpoint[MDT:0]
    lustrefs-MDT0001_UUID 563.4G 33.7M 513.4G 1% /mnt/mymountpoint[MDT:1]
    lustrefs-OST0000_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:0]
    lustrefs-OST0001_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:1]
    lustrefs-OST0002_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:2]
    lustrefs-OST0003_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:3]
    lustrefs-OST0004_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:4]
    lustrefs-OST0005_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:5]
    lustrefs-OST0006_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:6]
    lustrefs-OST0007_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:7]
    lustrefs-OST0008_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:8]
    lustrefs-OST0009_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:9]
    lustrefs-OST000a_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:10]
    lustrefs-OST000b_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:11]
    
    filesystem_summary: 30.9T 16.4M 29.3T 1% /mnt/mymountpoint

読取りおよび書込み操作のテスト

Lustreサービス・メトリックを使用したファイル・ストレージは、ファイル・システムのパフォーマンス、容量およびヘルスの測定に役立ちます。メトリック・データを使用して、問題を診断してトラブルシューティングできます。

ddコマンドを実行して読取りと書込みをテストし、メトリック・ページに移動してメトリック・ダッシュボードを表示します。

  1. 次のようなddコマンドを実行します。
    [root@hpc-client-0 test]# dd if=/dev/zero of=10G_file  bs=1M count=10240 oflag=direct ;sleep 120 ; dd of=/dev/null if=10G_file  bs=1M count=10240 iflag=direct
    出力は次のようになります。
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 40.6989 s, 264 MB/s
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 39.2326 s, 274 MB/s
    この例では、ブロック・サイズは1MBです。
  2. コンソールでメトリック・チャートのデフォルト・セットを表示するには、ナビゲーション・メニューをクリックして「ストレージ」をクリックします。
  3. 「Lustre」で、「Lustreを含むファイル・システム」を選択します。
  4. メトリックを表示するファイル・システムを選択します。
  5. 「詳細」ページの「リソース」で、「メトリック」を選択します。
「メトリック」ページに、現在のファイル・システムのデフォルトのチャート・セットが表示されます。Lustreを使用したファイル・ストレージには、次のメトリックがあります。
  • ReadThroughput: 1分当たりの読取りバイト数で表されます。
  • WriteThroughput: 1分当たりの読取りバイト数で表されます。
  • DataReadOperations: 1分当たりの読取り操作数。
  • DataWriteOperation: 1分当たりの書込み操作数。
  • MetadataOperations: メタデータ操作の数。getattr、setattr、mknod、link、unlink、mkdirなど、使用可能な14種類のメタデータ操作ディメンション。
  • FileSystemCapacity: ファイル・システムの合計および使用可能な容量。
  • FileSystemInodeCapacity: ファイル・システムの合計および使用可能なiノード。

これらのメトリックは、次のスクリーンショットに示すように、OCIメトリック・エクスプローラのoci_lustrefilesystemネームスペースを使用して調査できます。


lustre-metrics-explorer.pngの説明が続きます
図lustre-metrics-explorer.pngの説明

モニタリング問合せ言語(MQL)の問合せをメトリック・エクスプローラやGrafanaなどの他のダッシュボードで使用する方法の例を次に示します。

読取りスループットを取得するには:

ReadThroughput[1m]{resourceId = "your_filesystem_ocid", targetType = "OST", clientName ="all@all"}.grouping().sum()/60

ノート:

この間隔は1分であるため、60が使用されます。同様に、他のメトリックにMQLを使用できます。