跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文件 / 管理指南 / 儲存和資料複製 / GFS2
適用範圍 SUSE Linux Enterprise High Availability Extension 15 SP4

20 GFS2

全域檔案系統 2 (GFS2) 是適用於 Linux 電腦叢集的共用磁碟檔案系統。GFS2 允許所有節點同時直接存取同一個共用區塊儲存。GFS2 不提供斷線操作模式,也沒有用戶端角色或伺服器角色。GFS2 叢集中的所有節點以對等形式運作。GFS2 最多支援 32 個叢集節點。在叢集中使用 GFS2 需要透過硬體來存取共用儲存,並需要透過一個鎖定管理員來控制對儲存的存取。

如果效能是您的主要考量之一,SUSE 建議為您的叢集環境使用 OCFS2,而不要使用 GFS2。我們的測試表明,與採用此類設定的 GFS2 相比,OCFS2 的表現更好。

20.1 GFS2 套件和管理公用程式

若要使用 GFS2,請確定叢集的每個節點上均已安裝適用於您的核心的 gfs2-utils 和相符的 gfs2-kmp-* 套件。

gfs2-utils 套件提供下列用於管理 GFS2 磁碟區的公用程式。如需有關語法的資訊,請參閱其 man 頁面。

表 20.1︰ GFS2 公用程式

GFS2 公用程式

描述

fsck.gfs2

檢查檔案系統是否有錯誤,並選擇性修復錯誤。

gfs2_jadd

將更多記錄新增至 GFS2 檔案系統。

gfs2_grow

產生一個 GFS2 檔案系統。

mkfs.gfs2

在裝置上建立一個 GFS2 檔案系統,通常是一個共用裝置或分割區。

tunegfs2

可用於檢視和操作 GFS2 檔案系統參數 (例如 UUIDlabellockprotolocktable)。

20.2 設定 GFS2 服務和 STONITH 資源

在可以建立 GFS2 磁碟區之前,必須先設定 DLM 和 STONITH 資源。

程序 20.1︰ 設定 STONITH 資源
注意
注意:需要 STONITH 裝置

您需要設定一部圍籬區隔裝置。如果沒有設定合適的 STONITH 機制 (如 external/sbd),組態將失敗。

  1. 啟動外圍程序,並以 root 或同等身分登入。

  2. 程序 11.3 「啟始化 SBD 裝置」 所述建立一個 SBD 分隔區。

  3. 執行 crm configure

  4. external/sbd 設定為圍籬區隔裝置,並且 /dev/sdb2 做為共用儲存上的專用分割區,用於活動訊號與圍籬區隔操作:

    crm(live)configure# primitive sbd_stonith stonith:external/sbd \
        params pcmk_delay_max=30 meta target-role="Started"
  5. 使用 show 檢閱所做的變更。

  6. 如果所有設定均正確無誤,請使用 commit 提交變更,然後使用 quit 離開 crm 即時組態。

如需為 DLM 設定資源群組的詳細資料,請參閱程序 18.1 「設定 DLM 的基礎群組」

20.3 建立 GFS2 磁碟區

依照第 20.2 節 「設定 GFS2 服務和 STONITH 資源」所述將 DLM 設定為叢集資源後,將系統設定為使用 GFS2,並建立 GFS2 磁碟區。

注意
注意:用於儲存應用程式和資料檔案的 GFS2 磁碟區

一般情況下,建議您將應用程式檔案與資料檔案儲存在不同的 GFS2 磁碟區中。如果您的應用程式磁碟區和資料磁碟區對於掛接有不同的要求,請務必將它們儲存到不同的磁碟區中。

開始之前,請先準備您計劃用於 GFS2 磁碟區的區塊裝置。將裝置留為可用空間。

然後依照程序 20.2 「建立並格式化 GFS2 磁碟區」所述,使用 mkfs.gfs2 建立並格式化 GFS2 磁碟區。此指令最重要的參數列於表格 20.2 「重要的 GFS2 參數」。如需詳細資訊及指令語法,請參閱 mkfs.gfs2 man 頁面。

表 20.2︰ 重要的 GFS2 參數

GFS2 參數

描述與建議

鎖定通訊協定名稱 (-p)

要使用的鎖定通訊協定的名稱。可接受的鎖定通訊協定包括 lock_dlm (用於共用儲存);如果您將 GFS2 用做本地檔案系統 (只有 1 個節點),則可以指定 lock_nolock 通訊協議。如果未指定此選項,將採用 lock_dlm 通訊協定。

鎖定表名稱 (-t)

對應於所用鎖定模組的鎖定表欄位。該欄位的格式為叢集名稱:檔案系統名稱叢集名稱必須與叢集組態檔案 /etc/corosync/corosync.conf 中的叢集名稱相符。只有此叢集的成員才允許使用此檔案系統。檔案系統名稱是唯一的檔案系統名稱 (1 到 16 個字元),用於將此 GFS2 檔案系統與建立的其他檔案系統區分開。

記錄數量 (-j)

要為 gfs2_mkfs 建立的記錄數量。將要掛接該檔案系統的每台機器至少需要有一個記錄。如果未指定此選項,系統會建立一個記錄。

程序 20.2︰ 建立並格式化 GFS2 磁碟區

在其中個叢集節點上執行下列步驟。

  1. 開啟終端機視窗,並以 root 身分登入。

  2. 使用指令 crm status 檢查叢集是否上線。

  3. 使用 mkfs.gfs2 公用程式建立並格式化磁碟區。如需此指令語法的資訊,請參閱 mkfs.gfs2 man 頁面。

    例如,若要在 /dev/sdb1 上建立最多支援 32 個叢集節點的新 GFS2 檔案系統,請使用以下指令:

    root # mkfs.gfs2 -t hacluster:mygfs2 -p lock_dlm -j 32 /dev/sdb1

    hacluster 名稱與檔案 /etc/corosync/corosync.conf 中的項目 cluster_name 相關 (此為預設設定)。

20.4 掛接 GFS2 磁碟區

您可以手動掛接 GFS2 磁碟區,也可以依照程序 20.4 「使用叢集管理員掛接 GFS2 磁碟區」所述使用叢集管理員來掛接。

程序 20.3︰ 手動掛接 GFS2 磁碟區
  1. 開啟終端機視窗,並以 root 身分登入。

  2. 使用指令 crm status 檢查叢集是否上線。

  3. 從指令行掛接磁碟區,請使用 mount 指令。

警告
警告:手動掛接的 GFS2 裝置

如果您為了測試目的手動掛接了 GFS2 檔案系統,則在開始將其做為叢集資源使用之前,務必要將其卸載恢復原狀。

程序 20.4︰ 使用叢集管理員掛接 GFS2 磁碟區

若要使用高可用性軟體掛接 GFS2 磁碟區,請在叢集中設定 OCF 檔案系統資源。下面的程序將使用 crm 外圍程序來設定叢集資源。或者,您也可以使用 Hawk2 來設定資源。

  1. 啟動外圍程序,並以 root 或同等身分登入。

  2. 執行 crm configure

  3. 設定 Pacemaker 以在叢集中的各節點上掛接 GFS2 檔案系統:

    crm(live)configure# primitive gfs2-1 ocf:heartbeat:Filesystem \
      params device="/dev/sdb1" directory="/mnt/shared" fstype="gfs2" \
      op monitor interval="20" timeout="40" \
      op start timeout="60" op stop timeout="60" \
      meta target-role="Stopped"
  4. 建立一個基礎群組,該群組包含您在程序 18.1 「設定 DLM 的基礎群組」中建立的 dlm 基本資源,以及 gfs2-1 基本資源。複製群組:

    crm(live)configure# group g-storage dlm  gfs2-1
         clone cl-storage g-storage \
         meta interleave="true"

    鑒於基礎群組的內部並存與順序條件約束,Pacemaker 只會在其上已有 dlm 資源在執行的節點上啟動 gfs2-1 資源。

  5. 使用 show 檢閱所做的變更。

  6. 如果所有設定均正確無誤,請使用 commit 提交變更,然後使用 quit 離開 crm 即時組態。