Amazon FSx for Lustre 效能 - FSx for Lustre

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon FSx for Lustre 效能

Amazon FSx for Lustre 以Lustre熱門的高效能檔案系統 為基礎,提供隨檔案系統大小線性增加的橫向擴展效能。 Lustre 檔案系統可水平擴展多個檔案伺服器和磁碟。此擴展可讓每個用戶端直接存取儲存在每個磁碟上的資料,以消除傳統檔案系統中存在的許多瓶頸。Amazon FSx for Lustre 以Lustre可擴展的架構為基礎,支援大量用戶端的高效能。

FSx for Lustre 檔案系統的運作方式

每個 FSx for Lustre 檔案系統都包含用戶端與之通訊的檔案伺服器,以及連接至每個儲存您資料之檔案伺服器的一組磁碟。每個檔案伺服器都使用快速的記憶體內快取,來增強最常存取資料的效能。HDD 型檔案系統也可以使用 SSD 型讀取快取進行佈建,以進一步增強最常存取資料的效能。當用戶端存取儲存在記憶體內或 SSD 快取中的資料時,檔案伺服器不需要從磁碟讀取資料,這可減少延遲並增加您可以駕駛的總傳輸量。下圖說明寫入操作的路徑、從磁碟提供的讀取操作,以及從記憶體或 SSD 快取提供的讀取操作。

FSx for Lustre 效能架構。

當您讀取存放在檔案伺服器記憶體內或 SSD 快取的資料時,檔案系統效能取決於網路輸送量。當您將資料寫入檔案系統,或讀取未存放在記憶體內快取的資料時,檔案系統效能取決於較低的網路輸送量和磁碟輸送量。

當您使用 SSD 快取佈建 HDD Lustre 檔案系統時,Amazon FSx 會建立 SSD 快取,其大小會自動調整為檔案系統 HDD 儲存容量的 20%。這樣做可為經常存取的檔案提供低於毫秒的延遲和更高的 IOPS。

彙總檔案系統效能

FSx for Lustre 檔案系統支援的輸送量與其儲存容量成正比。Amazon FSx for Lustre 檔案系統可擴展到數百 GBps 的輸送量和數百萬個 IOPS。Amazon FSx for Lustre 也支援從數千個運算執行個體同時存取相同的檔案或目錄。此存取可讓快速的資料檢查點從應用程式記憶體到儲存,這是高效能運算 (HPC) 的常見技術。您可以在建立檔案系統之後,隨時視需要增加儲存和輸送量容量。如需詳細資訊,請參閱管理儲存容量

FSx for Lustre 檔案系統使用網路 I/O 額度機制提供爆量讀取輸送量,以根據平均頻寬使用率配置網路頻寬。檔案系統會在其網路頻寬使用量低於其基準限制時累積額度,並在其執行網路資料傳輸時使用這些額度。

下表顯示 FSx for Lustre 部署選項的設計用途效能。

SSD 儲存選項的檔案系統效能
部署類型 網路輸送量 (MBps/TiB 的已佈建儲存體) 網路 IOPS (已佈建儲存體的 IOPS/TiB) 快取儲存 (佈建儲存的 RAM/TiB 的 GiB) TiB 每個檔案操作的磁碟延遲 (毫秒、P50) 磁碟輸送量 (MBps/TiB 的儲存或佈建 SSD 快取)

基準

爆量

基準

爆量

SCRATCH_2 200 1300

數萬個基準

數十萬次爆量

6.7

中繼資料:sub-ms

資料:sub-ms

200 (讀取)

100 (寫入)

PERSISTENT-125 320 1300 3.4

125

500
PERSISTENT-250 640 1300 6.8

250

500
PERSISTENT-500 1300 13.7 500

PERSISTENT-1000 2600 27.3 1000
HDD 儲存選項的檔案系統效能
部署類型 網路輸送量 (MBps/TiB 的儲存或佈建 SSD 快取) 網路 IOPS (已佈建儲存體的 IOPS/TiB) 快取儲存體 (已佈建儲存體的 RAM/TiB GiB) TiB 每個檔案操作的磁碟延遲 (毫秒、P50) 磁碟輸送量 (MBps/TiB 的儲存或佈建 SSD 快取)

基準

爆量

基準

爆量

PERSISTENT-12
HDD 儲存體 40 375*

數萬個基準

數十萬次爆量

0.4 memory

中繼資料:sub-ms

資料:單位數 ms

12

80 (讀取)

50 (寫入)

SSD 讀取快取

200

1,900

200 SSD 快取

資料:sub-ms

200

-

PERSISTENT-40
HDD 儲存體 150 1,300*

數萬個基準

數十萬次爆量

1.5

中繼資料:sub-ms

資料:單位數 ms

40

250 (讀取)

150 (寫入)

SSD 讀取快取

750

6500

200 SSD cache

資料:sub-ms

200

-

上一代 SSD 儲存選項的檔案系統效能
部署類型 網路輸送量 (每 TiB 佈建儲存體的 MBps) 網路 IOPS (每 TiB 的已佈建儲存體 IOPS) 快取儲存 (每個 TiB 的已佈建儲存體 GiB) TiB 每個檔案操作的磁碟延遲 (毫秒、P50) 磁碟輸送量 (每個 TiB 儲存或佈建 SSD 快取的 MBps)

基準

爆量

基準

爆量

PERSISTENT-50 250 1,300*

數萬個基準

數十萬次爆量

2.2 RAM

中繼資料:sub-ms

資料:sub-ms

50

240

PERSISTENT-100 500 1,300* 4.4 RAM 100 240
PERSISTENT-200 750 1,300* 8.8 RAM 200 240
注意

* 下列 中的持久性檔案系統 AWS 區域 提供網路每 TiB 儲存空間高達 530 MBps:非洲 (開普敦)、亞太區域 (香港)、亞太區域 (大阪)、亞太區域 (新加坡)、加拿大 (中部)、歐洲 (法蘭克福)、歐洲 (倫敦)、歐洲 (米蘭)、歐洲 (斯德哥爾摩)、中東 (巴林)、南美洲 (聖保羅)、中國和美國西部 (洛杉磯)。

範例:彙總基準和爆量輸送量

下列範例說明儲存容量和磁碟輸送量如何影響檔案系統效能。

儲存容量為每 TiB 4.8 TiB TiB 和每單位儲存輸送量 50 MBps 的持久性檔案系統,可提供 240 MBps 的彙總基準磁碟輸送量和 1.152 GBps 的爆量磁碟輸送量。

無論檔案系統大小為何,Amazon FSx for Lustre 都會為檔案操作提供一致的次毫秒延遲。

檔案系統中繼資料效能

每秒檔案系統中繼資料 IO 操作 (IOPS) 決定您可以建立、列出、讀取和刪除的檔案和目錄數量。中繼資料 IOPS 會根據您佈建的儲存容量,自動佈建在 FSx for Lustre 檔案系統上。

持久性 2 檔案系統可讓您佈建與儲存容量無關的中繼資料 IOPS,並提高對檔案系統上中繼資料 IOPS 用戶端執行個體數量和類型的可見性。

透過 FSx for Lustre 持久性 2 檔案系統,您佈建的中繼資料 IOPS 數量和中繼資料操作類型會決定檔案系統可支援的中繼資料操作速率。您佈建的中繼資料 IOPS 層級會決定為您的檔案系統中繼資料磁碟佈建的 IOPS 數量。

操作類型 您可以為每個佈建中繼資料 IOPS 每秒驅動的操作

檔案建立、開啟和關閉

2

檔案刪除

1

目錄建立、重新命名

0.1

目錄刪除

0.2

您可以選擇使用自動模式或使用者佈建模式佈建中繼資料 IOPS。在自動模式中,Amazon FSx 會根據檔案系統的儲存容量,根據下表自動佈建中繼資料 IOPS:

檔案系統儲存容量 在自動模式下包含中繼資料 IOPS

1200 GiB

1500

2400 GiB

3000

4800–9600 GiB

6000

12000–45600 GiB

12000

≥48000 GiB

每 24000 GiB 12000 IOPS

在使用者佈建模式中,您可以選擇指定要佈建的中繼資料 IOPS 數目。您需為佈建的中繼資料 IOPS 支付超過檔案系統預設中繼資料 IOPS 數量的費用。

個別用戶端執行個體的輸送量

如果您要建立輸送量超過 10 GBps 的檔案系統,建議您啟用 Elastic Fabric Adapter (EFA) 來最佳化每個用戶端執行個體的輸送量。若要進一步最佳化每個用戶端執行個體的輸送量,啟用 EFA 的檔案系統也支援啟用 EFA 的 NVIDIA GPU 用戶端執行個體的 GPUDirect Storage,以及啟用 ENA Express 的用戶端執行個體的 ENA Express。

您可以驅動至單一用戶端執行個體的輸送量取決於您選擇的檔案系統類型和用戶端執行個體上的網路介面。

檔案系統類型。 用戶端執行個體網路介面 每個用戶端的最大輸送量,Gbps

未啟用 EFA

任何

100 Gbps*

啟用 EFA

ENA

100 Gbps*

啟用 EFA

ENA Express

100 Gbps

啟用 EFA

EFA

700 Gbps

啟用 EFA

EFA 與 GDS

1200 Gbps

注意

* 個別用戶端執行個體與個別 FSx for Lustre 物件儲存伺服器之間的流量限制為 5 Gbps。如需 FSx for Lustre 檔案系統的基礎物件儲存伺服器數量先決條件,請參閱。

檔案系統儲存配置

中的所有檔案資料Lustre都會存放在稱為物件儲存目標 (OSTs儲存磁碟區上。所有檔案中繼資料 (包括檔案名稱、時間戳記、許可等) 都存放在稱為中繼資料目標 (MDTs儲存磁碟區上。Amazon FSx for Lustre 檔案系統由一或多個 MDTs 和多個 OSTs 組成。每個 OST 的大小約為 1 到 2 TiB,取決於檔案系統的部署類型。Amazon FSx for Lustre 會將檔案資料分散到組成檔案系統的 OSTs,以平衡儲存容量與輸送量和 IOPS 負載。

若要檢視組成檔案系統的 MDT 和 OSTs的儲存用量,請從掛載檔案系統的用戶端執行下列命令。

lfs df -h mount/path

此令命的輸出結果如下所示:

UUID bytes Used Available Use% Mounted on mountname-MDT0000_UUID 68.7G 5.4M 68.7G 0% /fsx[MDT:0] mountname-OST0000_UUID 1.1T 4.5M 1.1T 0% /fsx[OST:0] mountname-OST0001_UUID 1.1T 4.5M 1.1T 0% /fsx[OST:1] filesystem_summary: 2.2T 9.0M 2.2T 0% /fsx

分割檔案系統中的資料

您可以使用檔案分割來最佳化檔案系統的輸送量效能。Amazon FSx for Lustre 會自動將檔案分散到 OSTs以確保從所有儲存伺服器提供資料。您可以透過設定檔案在多個 OSTs 之間分割的方式,在檔案層級套用相同的概念。

分割表示檔案可以分成多個區塊,然後存放在不同的 OSTs 中。當檔案跨多個 OSTs 分割時,檔案的讀取或寫入請求會分散到這些 OSTs,進而提高彙總輸送量或您的應用程式可以透過其驅動的 IOPS。

以下是 Amazon FSx for Lustre 檔案系統的預設配置。

  • 對於 2020 年 12 月 18 日之前建立的檔案系統,預設配置會指定 1 的條紋計數。這表示除非指定不同的配置,否則使用標準 Linux 工具在 Amazon FSx for Lustre 中建立的每個檔案都會存放在單一磁碟上。

  • 對於 2020 年 12 月 18 日之後建立的檔案系統,預設配置是漸進式檔案配置,其大小小於 1GiB 的檔案會存放在一個條紋中,而較大的檔案會獲指派 5 個條紋計數。

  • 對於 2023 年 8 月 25 日之後建立的檔案系統,預設配置是 4 元件漸進式檔案配置,如 中所述漸進式檔案配置

  • 對於所有檔案系統,無論其建立日期為何,從 Amazon S3 匯入的檔案都不會使用預設配置,而是在檔案系統的 ImportedFileChunkSize 參數中使用配置。大於 S3-imported檔案ImportedFileChunkSize將存放在多個 OSTs 上,且條紋計數為 (FileSize / ImportedFileChunksize) + 1。的預設值ImportedFileChunkSize為 1GiB。

您可以使用 lfs getstripe命令檢視檔案或目錄的配置組態。

lfs getstripe path/to/filename

此命令會報告檔案的長條圖計數、長條圖大小和長條圖位移。條紋計數是檔案要分割多少 OSTs。條紋大小是 OST 上儲存的連續資料量。條紋位移是檔案分割第一個 OST 的索引。

修改分割組態

檔案的配置參數會在第一次建立檔案時設定。使用 lfs setstripe命令來建立具有指定配置的新空白檔案。

lfs setstripe filename --stripe-count number_of_OSTs

lfs setstripe 命令只會影響新檔案的配置。在建立檔案之前,請使用它來指定檔案的配置。您也可以定義目錄的配置。在目錄上設定後,該配置會套用至新增至該目錄的每個新檔案,但不會套用至現有檔案。您建立的任何新子目錄也會繼承新的配置,然後套用至您在該子目錄中建立的任何新檔案或目錄。

若要修改現有檔案的配置,請使用 lfs migrate命令。此命令會視需要複製檔案,以根據您在命令中指定的配置來分發其內容。例如,附加至 或 大小增加的檔案不會變更條紋計數,因此您必須遷移它們才能變更檔案配置。或者,您可以使用 lfs setstripe命令建立新的檔案,以指定其配置、將原始內容複製到新檔案,然後重新命名新檔案以取代原始檔案。

在某些情況下,預設配置組態可能不適合您的工作負載。例如,具有數十個 OSTs 和大量多 GB 檔案的檔案系統可能會看到更高的效能,方法是將檔案分割到超過五個 OSTs 的預設條紋計數值。建立具有低條紋計數的大型檔案可能會導致 I/O 效能瓶頸,也可能導致 OSTs 填滿。在這種情況下,您可以為這些檔案建立具有較大條紋計數的目錄。

設定大型檔案 (特別是大於 1 GB 的檔案) 的分割配置很重要,原因如下:

  • 允許多個 OSTs 及其相關聯的伺服器在讀取和寫入大型檔案時貢獻 IOPS、網路頻寬和 CPU 資源,藉此改善輸送量。

  • 降低一小部分 OSTs 成為熱點的可能性,以限制整體工作負載效能。

  • 防止單一大型檔案填滿 OST,這可能會導致磁碟完全錯誤。

所有使用案例都沒有單一的最佳配置組態。如需檔案配置的詳細指引,請參閱 https://Lustre.org 文件中的管理檔案配置 (分割) 和可用空間。以下是一般準則:

  • 條紋配置對大型檔案來說最為重要,尤其是檔案通常有數百MB 或更高大小的使用案例。因此,新檔案系統的預設配置會為大小超過 1GiB 的檔案指派 5 的分割計數。

  • 條紋計數是您應針對支援大型檔案的系統調整的配置參數。條紋計數指定將存放條紋檔案區塊的 OST 磁碟區數量。例如,如果條紋計數為 2 且條紋大小為 1MiB, 會將檔案的替代 1MiB 區塊Lustre寫入兩個 OSTs 中的每一個。

  • 有效條紋計數是實際 OST 磁碟區數量和您指定的條紋計數值中較少的。您可以使用 的特殊條紋計數值-1,指出條紋應放置在所有 OST 磁碟區上。

  • 為小型檔案設定大型條紋計數是次佳的,因為對於某些操作Lustre,需要網路往返到配置中的每個 OST,即使檔案太小而無法在所有 OST 磁碟區上耗用空間。

  • 您可以設定漸進式檔案配置 (PFL),以允許檔案的配置隨著大小而變更。PFL 組態可以簡化管理檔案系統,該檔案系統具有大型和小型檔案的組合,而無需明確設定每個檔案的組態。如需詳細資訊,請參閱漸進式檔案配置

  • 條紋大小預設為 1MiB。在特殊情況下,設定條紋位移可能非常有用,但通常最好不指定,並使用預設值。

漸進式檔案配置

您可以為目錄指定漸進式檔案配置 (PFL) 組態,以在填入之前為小型和大型檔案指定不同的條紋組態。例如,您可以在將任何資料寫入新的檔案系統之前,在頂層目錄上設定 PFL。

若要指定 PFL 組態,請使用 lfs setstripe命令搭配 -E選項來指定不同大小檔案的配置元件,例如下列命令:

lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32 /mountname/directory

此命令會設定四個配置元件:

  • 第一個元件 (-E 100M -c 1) 表示大小不超過 100MiB 的檔案的條紋計數值為 1。

  • 第二個元件 (-E 10G -c 8) 表示大小上限為 10GiB 的檔案的條紋計數為 8。

  • 第三個元件 (-E 100G -c 16) 表示大小不超過 100GiB 的檔案的條紋計數為 16。

  • 第四個元件 (-E -1 -c 32) 表示大於 100GiB 的檔案的條紋計數為 32。

重要

將資料附加至使用 PFL 配置建立的檔案,將會填入其所有配置元件。例如,使用上面顯示的 4 元件命令,如果您建立 1MiB 檔案,然後將資料新增至檔案的結尾,檔案的配置會擴展為 -1 的條紋計數,這表示系統中的所有 OSTs。這並不表示資料會寫入至每個 OST,但讀取檔案長度等操作會平行於每個 OST 傳送請求,為檔案系統新增大量網路負載。

因此,請小心限制任何中小型檔案的條紋計數,這些檔案之後可以附加資料。由於日誌檔案通常會透過附加新記錄來增加,因此 Amazon FSx for Lustre 會將預設的條紋計數 1 指派給在附加模式中建立的任何檔案,無論其父目錄指定的預設條紋組態為何。

Amazon FSx for Lustre 檔案系統在 2023 年 8 月 25 日之後建立的預設 PFL 組態會使用此命令設定:

lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32 /mountname

工作負載在中型和大型檔案上具有高度並行存取的客戶,可能受益於配置,其具有更多較小大小的條紋,並跨所有 OSTs 分割最大檔案,如四個元件範例配置所示。

監控效能和用量

Amazon FSx for Lustre 每分鐘會為每個磁碟 (MDT 和 OST) 發出用量指標至 Amazon CloudWatch。

若要檢視彙總檔案系統用量詳細資訊,您可以查看每個指標的總和統計資料。例如,DataReadBytes統計資料的總和會報告檔案系統中所有 OSTs 所見的總讀取輸送量。同樣地,FreeDataStorageCapacity統計資料的總和會報告檔案系統中檔案資料的總可用儲存容量。

如需監控檔案系統效能的詳細資訊,請參閱監控 Amazon FSx for Lustre 檔案系統

效能秘訣

使用 Amazon FSx for Lustre 時,請記住下列效能提示。如需服務限制,請參閱 Amazon FSx for Lustre 的配額

  • 平均 I/O 大小 – 由於 Amazon FSx for Lustre 是網路檔案系統,因此每個檔案操作都會在用戶端和 Amazon FSx for Lustre 之間經歷往返,因此會產生少量的延遲額外負荷。由於每個作業的低延遲,因此整體傳輸量通常會隨著平均 I/O 大小的增加而提高,因為延遲負擔會由大量的資料分攤。

  • 請求模型 – 透過啟用對檔案系統的非同步寫入,等待中的寫入操作會在 Amazon EC2 執行個體上緩衝,然後再以非同步方式寫入 Amazon FSx for Lustre。非同步寫入作業的延遲通常較低。執行非同步寫入時,核心會使用額外的記憶體來進行快取。已啟用同步寫入的檔案系統會向 Amazon FSx for Lustre 發出同步請求。每個操作都會在用戶端和 Amazon FSx for Lustre 之間進行往返。

    注意

    您所選擇的請求模型,必須在一致性 (如果使用多個 Amazon EC2 執行個體) 和速度之間權衡折衷。

  • 限制目錄大小 – 若要在持久性 2 FSx for Lustre 檔案系統上獲得最佳中繼資料效能,請將每個目錄限制在小於 100K個檔案。限制目錄中的檔案數量可減少檔案系統在父目錄中取得鎖定所需的時間。

  • Amazon EC2 執行個體 – 執行大量讀取和寫入操作的應用程式可能需要比不執行的應用程式更多的記憶體或運算容量。為運算密集型工作負載啟動 Amazon EC2 執行個體時,請選擇具有應用程式所需資源數量的執行個體類型。Amazon FSx for Lustre 檔案系統的效能特性不取決於 Amazon EBS 最佳化執行個體的使用。

  • 建議用戶端執行個體調校,以獲得最佳效能

    1. 對於記憶體超過 64 GiB 的用戶端執行個體類型,我們建議套用下列調校:

      sudo lctl set_param ldlm.namespaces.*.lru_max_age=600000 sudo lctl set_param ldlm.namespaces.*.lru_size=<100 * number_of_CPUs>
    2. 對於超過 64 個 vCPU 核心的用戶端執行個體類型,我們建議套用下列調校:

      echo "options ptlrpc ptlrpcd_per_cpt_max=32" >> /etc/modprobe.d/modprobe.conf echo "options ksocklnd credits=2560" >> /etc/modprobe.d/modprobe.conf # reload all kernel modules to apply the above two settings sudo reboot

      掛載用戶端之後,需要套用下列調校:

      sudo lctl set_param osc.*OST*.max_rpcs_in_flight=32 sudo lctl set_param mdc.*.max_rpcs_in_flight=64 sudo lctl set_param mdc.*.max_mod_rpcs_in_flight=50

    請注意,lctl set_param已知 不會在重新啟動時保留。由於這些參數無法從用戶端永久設定,建議實作開機 Cron 任務,以使用建議的調校設定組態。

  • 跨 OSTs工作負載平衡 – 在某些情況下,您的工作負載不會驅動檔案系統可提供的彙總輸送量 (每個 TiB 儲存體 200 MBps)。如果是這樣,您可以使用 CloudWatch 指標來疑難排解工作負載的 I/O 模式是否受到不平衡影響。若要識別是否為原因,請查看 Amazon FSx for Lustre 的最大 CloudWatch 指標。

    在某些情況下,此統計資料會顯示輸送量達到或超過 240 MBps 的負載 (單一 1.2-TiB Amazon FSx for Lustre 磁碟的輸送量)。在這種情況下,您的工作負載不會平均分散到磁碟。如果發生這種情況,您可以使用 lfs setstripe命令來修改工作負載最常存取之檔案的分割。為了獲得最佳效能,請在包含檔案系統的所有 OSTs 中,分割具有高輸送量需求的檔案。

    如果您的檔案是從資料儲存庫匯入,您可以採取另一種方法,將高輸送量檔案平均分割至 OSTs。若要這麼做,您可以在建立下一個 Amazon FSx for Lustre 檔案系統時修改 ImportedFileChunkSize 參數。

    例如,假設您的工作負載使用 7.0-TiB 檔案系統 (由 6x 1.17-TiB OSTs 組成),且需要跨 2.4-GiB 檔案驅動高輸送量。在這種情況下,您可以將 ImportedFileChunkSize值設定為 ,(2.4 GiB / 6 OSTs) = 400 MiB讓您的檔案平均分散到檔案系統的 OSTs。

  • clientLustre for Metadata IOPS – 如果您的檔案系統已指定中繼資料組態,我們建議您安裝 Lustre 2.15 Lustre 用戶端或 2.12 用戶端,其中具有下列其中一個作業系統版本:Amazon Linux 2023;Amazon Linux 2;Red Hat/Rocky Linux 8.9、8.10 或 9.x;CentOS 8.9 或 8.10;Ubuntu 22 具有 6.2、6.5 或 6.8 核心;或 Ubuntu 20。