部署 Lustre File System

使用 Lustre 部署 OCI File Storage 包含下列步驟:
  • 使用 Lustre 檔案系統建立 OCI 檔案儲存
  • 掛載檔案系統
  • 設定 LNet
  • 測試讀取和寫入作業

建立 Lustre 檔案系統

以下步驟逐步解說如何建立具備 Lustre 檔案系統的 OCI File Storage。

  1. 在 OCI 主控台導覽功能表中,按一下「儲存體」,然後按一下「 Lustre 檔案系統」。
  2. 按一下建立
  3. 設定 Lustre 檔案系統詳細資訊:
    • 檔案系統名稱:接受預設名稱或輸入易記的檔案系統名稱。
    • 掛載名稱:接受預設值,或輸入掛載檔案系統時所使用的易記名稱。
    • 檔案系統說明:(選擇性) 輸入檔案系統的說明。
    • 區間:接受預設區間,或選取清單以變更區間。
    • 可用性網域:接受預設可用性網域,或選取清單以變更可用性網域。
    • 標記:如果您有建立資源的權限,則也有將任意格式標記套用至該資源的權限。若要套用定義的標記,您必須具有使用標記命名空間的權限。如果您不確定是否要套用標記,請略過此選項或詢問管理員。您之後可以套用標記。
    • 叢集位置群組:建議您選取叢集位置群組,將檔案系統和其他資源實際放置在可用性網域中,以確保低延遲。檔案系統建立後即無法變更叢集位置群組。
    • 效能層:選取檔案系統的效能層。效能層控制檔案系統的傳輸量。傳輸量是針對佈建儲存的每 TB 指定。檔案系統建立後即無法變更效能層。
    • 容量:選取檔案系統的儲存容量。如果您選取的容量大於服務限制,系統可能會提示您要求增加容量。

      檔案系統的聚總傳輸量是從效能層和容量計算而得。

    • 網路:選取要在其中掛載檔案系統的 VCN 和子網路。主控台預設會顯示您正在使用之區間中的 VCN 和子網路清單。變更區間以從其他區間選取 VCN 或子網路。

      選取的子網路將會是用於部署 Lustre 伺服器的子網路。確定此子網路允許 Lustre 伺服器端連接埠 988 與從屬端連接埠在連接埠 512-1023 之間進行通訊。

    • 使用網路安全群組控制流量: 啟用此選項並選取一個網路安全群組 (NSG),以作為檔案系統的虛擬防火牆。選取 + 另一個網路安全群組即可將檔案系統加到最多 5 個 NSG。
    • Root squash :這些設定值控制存取檔案系統的從屬端,其使用者 ID (UID) 和群組 ID (GID) 是否會重新對應至 quash UIDSquash GID

      平方:選取。預設值為,因此預設不會進行重新對應。

      Squash UID :如果 Squash 設為 Root ,則 root 使用者 (UID 0) 會重新對應至此值。預設值為 65534。

      Squash GID :如果 Squash 設為 Root ,則根群組使用者 (GID 0) 會重新對應至此值。預設值為 65534。

    • Root squash 異常狀況:若要將特定從屬端自 root squash 組態中排除,請輸入其從屬端位址作為有效的 IP 位址或範圍。例如,10.0.2.4 或 10.0。[2-10]。[1-255]。選取 + 另一個從屬端位址,最多可新增 10 個異常狀況。
    • 加密金鑰:Oracle 預設會管理加密檔案系統的金鑰。如果您想要更有效地控制金鑰的生命週期及其使用方式,可以選取自己的保存庫加密金鑰。
開始建立之後,需要幾分鐘的時間才能完成後端資源的佈建。時間會根據檔案系統的效能層和大小而有所不同。

掛載 Lustre File System

  1. 瀏覽至 Lustre 檔案系統詳細資訊,然後從主控台尋找掛載命令。
  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 介面會插入防止透過預設介面 (主機的第一個介面) 進行主機通訊的規則。這可能會導致使用本機 IP 進行內部通訊的環境問題,尤其是在 OKE 環境中。目前的系統是偵測本機 IP 將無法運作。若要修正此問題,請使用下列解決方法來停用 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 networking)。發生此情況時,您必須手動設定 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

測試讀寫作業

File Storage with 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 下,選取 File Systems with Lustre
  4. 選取您要檢視其測量結果的檔案系統。
  5. 在詳細資訊頁面的資源底下,選取測量結果
測量結果頁面會顯示目前檔案系統的預設圖表集。File Storage with Lustre 提供下列指標:
  • ReadThroughput:以每分鐘讀取的位元組數表示。
  • WriteThroughput:以每分鐘讀取的位元組數表示。
  • DataReadOperations:每分鐘的讀取作業數目。
  • DataWriteOperation:每分鐘的寫入作業數目。
  • MetadataOperations:描述資料作業數目。有 14 個不同的描述資料作業可用維度,例如 getattr、setattr、mknod、link、unlink、mkdir 等。
  • FileSystemCapacity:檔案系統的總容量和可用容量。
  • FileSystemInodeCapacity:檔案系統的總計與可用 Inode。

您可以使用 OCI 度量總管 oci_lustrefilesystem 命名空間探索這些度量,如以下螢幕擷取畫面所示。


lustre-metrics-explorer.png 的描述如下
lustre-metrics 說明 - explorer.png

以下範例說明如何在度量總管或其他儀表板 (例如 Grafana) 中使用監控查詢語言 (MQL) 的查詢。

取得讀取傳輸量:

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

附註:

此處的間隔為 1 分鐘,因此使用 60。同樣地,您可以將 MQL 用於其他度量。