Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.4. 叢集

叢集儲存裝置會在叢集中的所有伺服器之間,提供一致性的檔案系統映像,這能讓伺服器讀取和寫入單一、共享的檔案系統。這能藉由將像是安裝和更新應用程式這般的任務,限制在單一檔案系統中,以簡化儲存裝置上的管理。一個叢集全域的檔案系統亦可省略應用程式資料的複件,簡化備份和災害復原。
Red Hat 的 High Availability 外掛提供了叢集儲存裝置結合 Red Hat Global File System 2(屬於 Resilient Storage 外掛的一部分)。

7.4.1. 全域檔案系統 2

全域檔案系統 2(GFS2,Global File System 2)是個直接與 Linux kernel 檔案系統結合的原生檔案系統。它能讓叢集中的多部電腦(節點)同時共享相同的儲存裝置。GFS2 檔案系統能自行微調,亦可透過手動微調。此部分詳述了嘗試手動式微調時,所需考量的效能相關注意事項。
RHEL 6.4 改善了 GFS2 中的檔案分散管理。在 RHEL 6.3 以前的版本上,若超過一項程序同時寫入多個檔案,所建立的檔案較容易分散。此分散情況會降低速度,特別是包含大型檔案的工作量。在 RHEL 6.4 上,同時寫入時所會發生的檔案分散情況較少,因此共作量的效能也會較佳。
在 RHEL 中,GFS2 沒有磁碟重組工具,但您可以使用 filefrag 工具找出各個檔案,將其複製為暫存檔案,然後重新命名暫存檔案並取代原有檔案,以重組它們。(只要循序寫入,此步驟亦可在 RHEL 6.4 之前的版本中完成。)
因為 GFS2 使用一種全域鎖定機制,且此機制需要叢集中的節點能夠進行通訊,因此您的系統若能避免在這些節點之間發生檔案和目錄的競用,便能達到最佳的效能。可避免競用的方式有:
  • 儘可能使用 fallocate 來預先分配檔案和目錄,以優化分配程序並避免需要鎖定來源分頁。
  • 減少共享於多個節點之間的檔案系統區域,以減少跨節點的快取無效判定,並改善效能。比方說,若有多個節點掛載了相同的檔案系統而存取不同的子目錄,將其中一個子目錄移至另一檔案系統上,可能能夠取得較佳的效能。
  • 選擇最佳的資源群組大小與數量。這取決於典型的檔案大小和系統上的可用空間,並影響多個節點是否會嘗試同時使用某個資源群組的機率。資源群組若過多,尋找分配空間時可能會使區塊分配變得緩慢。若資源群組過少,則可能會在解除分配時造成鎖定競用。一般建議測試多項不同配置,以判斷何種配置適用於您的工作量。
然而,競用並非唯一可影響 GFS2 檔案系統效能的問題。其它可改善整體效能的最佳做法包含了:
  • 根據來自叢集的預期 I/O 模式,以及檔案系統的效能需求選擇您的儲存裝置硬體。
  • 儘可能使用固態儲存裝置,以減少搜尋時間。
  • 為您的工作量建立適當大小的檔案系統,並確保檔案系統的使用量絕不會超出 80%。較小的檔案系統的備份時間相對之下也會較短,並且進行檔案系統檢查時所需的時間與記憶體也較少,然而若檔案系統對於其工作量來說過小,則容易發生檔案高度分散的情形。
  • 當工作量需要使用到大量 metadata,或是當日誌資料使用中的時候,請設置較大的日誌大小。雖然這會使用到較多的記憶體,卻也會提升效能,因為將會有更多可存放資料的日誌空間。
  • 確認 GFS2 節點上的時鐘已同步,以避免網路應用程式發生問題。我們建議使用 NTP(網路時間協定)。
  • 除非檔案或是目錄的存取時間對於您的應用程式來說相當重要,否則請以 noatimenodiratime 掛載選項來掛載檔案系統。

    注意

    Red Hat 強烈建議您搭配 noatime 選項使用 GFS2。
  • 若您需要使用配額,請嘗試減少配額同步交易的頻率,或是使用模糊配額同步,以避免持續的配額檔案更新,造成效能上的問題。

    注意

    模糊配額計量能讓使用者和群組稍微超用其配額限制。為了避免此問題發生,GFS2 會在某個使用者或群組即將超用其配額限制時,動態式地減少同步的時間。
欲取得更多有關於各項 GFS2 效能微調的詳細資訊,請參閱《全域檔案系統 2》指南,網址為 https://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/?locale=zh-TW