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

19 OCFS2

Oracle Cluster File System 2 (OCFS2) 是一般性用途的日誌檔案系統,自 Linux 2.6 版起便已完全整合到該核心中。OCFS2 可讓您將應用程式二進位檔案、資料檔案和資料庫儲存於裝置上的共用儲存中。叢集中所有節點均同時具有檔案系統的讀取與寫入權限。透過複製品資源管理的使用者空間控制精靈可提供與 HA 堆疊的整合,特別是與 Corosync 和分散式鎖定管理員 (DLM) 的整合。

19.1 功能和優勢

OCFS2 可用於下列儲存解決方案,例如:

  • 一般應用程式與工作負載。

  • 叢集中的 Xen 影像儲存。Xen 虛擬機器與虛擬伺服器可以儲存到叢集伺服器掛接的 OCFS2 磁碟區。如此即可便捷地在伺服器之間實現 Xen 虛擬機器的可攜性。

  • LAMP (Linux、Apache、MySQL 和 PHP | Perl | Python) 堆疊。

做為一款高效能、對稱、平行的叢集檔案系統,OCFS2 支援下列功能:

  • 叢集上的所有節點均可使用應用程式的檔案。使用者只需在叢集上的 OCFS2 磁碟區安裝一次即可。

  • 所有節點可直接透過標準檔案系統介面同時讀取及寫入儲存,讓叢集上執行的應用程式更易於管理。

  • 檔案存取透過 DLM 來協調。在多數情況下,DLM 控制都能起到很好的效果,但如果應用程式設計與 DLM 爭奪檔案存取協調權,則擴充性可能就會受到限制。

  • 所有後端儲存均可使用儲存備份功能。您可輕鬆建立共用應用程式檔案的複本,以利於提供有效的災難復原。

OCFS2 亦提供下列功能:

  • 中繼資料快取。

  • 中繼資料日誌。

  • 跨節點資料檔案一致性。

  • 支援的多區塊最大大小為 4 KB,叢集最大大小為 1 MB,磁碟區最大大小為 4 PB (拍位元組)。

  • 最多支援 32 個叢集節點。

  • 支援對資料庫檔案進行非同步的直接 I/O 存取,以提升資料庫效能。

注意
注意:對 OCFS2 的支援

僅當與 SUSE Linux Enterprise High Availability Extension 所提供的 pcmk (Pacemaker) 堆疊搭配使用時,SUSE 才支援 OCFS2。與 o2cb 堆疊組合使用時,SUSE 不提供對 OCFS2 的支援。

19.2 OCFS2 套件和管理公用程式

OCFS3 核心模組 (ocfs2) 會自動安裝到 SUSE® Linux Enterprise Server 15 SP2 上的 High Availability Extension 中。若要使用 OCFS2,請確定在叢集中的每個節點上安裝您核心適用的以下套件: ocfs2-tools 及相符的 ocfs2-kmp-* 套件。

每則訊息前的 ocfs2-tools 套件提供下列用於管理 OFS2 磁碟區的公用程式。如需有關語法的資訊,請參閱其 man 頁面。

表 19.1︰ OCFS2 公用程式

OCFS2 公用程式

描述

debugfs.ocfs2

檢查 OCFS 檔案系統的狀態以進行除錯。

fsck.ocfs2

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

mkfs.ocfs2

在裝置上建立 OCFS2 檔案系統,通常是共用實體或邏輯磁碟上的分割區。

mounted.ocfs2

偵測並列出叢集系統上的所有 OCFS2 磁碟區。偵測並列出掛接 OCFS2 裝置的系統上之所有節點,或列出所有 OCFS2 裝置。

tunefs.ocfs2

變更 OCFS2 檔案系統參數,包括磁碟區標籤、節點插槽數量、所有節點插槽的日至大小,以及磁碟區大小。

19.3 設定 OCFS2 服務和 STONITH 資源

建立 OCFS2 磁碟區之前,您必須先將 DLM 及 STONITH 資源設定為叢集中的服務。

下面的程序將使用 crm 外圍程序來設定叢集資源。或者,您也可以依第 19.6 節 「使用 Hawk2 設定 OCFS2 資源」所述,使用 Hawk2 來設定資源。

程序 19.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 提交變更,然後使用 exit 離開 crm 即時組態。

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

19.4 建立 OCFS2 磁碟區

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

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

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

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

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

表 19.2︰ 重要的 OCFS2 參數

OCFS2 參數

描述與建議

磁碟區標籤 (-L)

磁碟區的描述性名稱可讓其掛接於不同節點時易於辨識。使用 tunefs.ocfs2 公用程式依需要修改標籤。

叢集大小 (-C)

叢集大小是配置給持有資料的檔案之空間最小單位。如需可用選項及建議,請參閱 mkfs.ocfs2 man 頁面。

節點插槽數量 (-N)

可同時掛接磁碟區的最大節點數量。OCFS2 會分別為每個節點建立系統檔案,例如日誌。存取磁碟區的節點可以是小 endian 架構 (如 AMD64/Intel 64) 和大 endian 架構 (如 S/390x) 的組合。

節點特定的檔案稱為本地檔案。節點插槽號碼會附加至本機檔案。例如,journal:0000 隸屬於指派至插槽 0 的任一節點。

建立磁碟區時,請根據您希望同時掛接磁碟區的節點數量,設定節點插槽的最大磁碟區數量。使用 tunefs.ocfs2 公用程式可以視需要增加節點數。請注意,該值不能減小,並且一個節點插槽將佔用 100 MiB 磁碟空間。

如果未指定 -N 參數,系統會依據檔案系統的大小確定節點插槽數。如需預設值,請參閱 mkfs.ocfs2 man 頁面。

區塊大小 (-b)

檔案系統可定址的空間最小單位。請在建立磁碟區時指定區塊大小。如需可用選項及建議,請參閱 mkfs.ocfs2 man 頁面。

開啟/關閉特定功能 (--fs-features)

可提供以逗號分隔的功能標籤清單,mkfs.ocfs2 會根據此清單嘗試建立具有這些功能集的檔案系統。若要開啟功能,請在清單中包含該功能。若要關閉功能,則在名稱前預增 no

如需所有可用標記的綜覽,請參閱 mkfs.ocfs2 man 頁面。

預定義功能 (--fs-feature-level)

可讓您從一組預定義檔案系統功能中進行選擇。如需可用選項,請參閱 mkfs.ocfs2 man 頁面。

使用 mkfs.ocfs2 建立並格式化磁碟區時,如果不指定任何功能,則預設會啟用下列功能:backup-supersparseinline-dataunwrittenmetaeccindexed-dirsxattr

程序 19.2︰ 建立並格式化 OCFS2 磁碟區

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

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

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

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

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

    root #  mkfs.ocfs2 -N 32 /dev/sdb1

19.5 掛接 OCFS2 磁碟區

您可以按程序 19.4 「使用叢集資源管理員掛接 OCFS2 磁碟區」 中所述,手動或使用叢集管理員掛接 OCFS2 磁碟區。

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

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

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

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

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

程序 19.4︰ 使用叢集資源管理員掛接 OCFS2 磁碟區

若要使用 High Availability 軟體掛接 OCFS2 磁碟區,請在叢集中設定 ocfs2 檔案系統資源。下面的程序將使用 crm 外圍程序來設定叢集資源。或者,您也可以依第 19.6 節 「使用 Hawk2 設定 OCFS2 資源」所述,使用 Hawk2 來設定資源。

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

  2. 執行 crm configure

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

    crm(live)configure# primitive ocfs2-1 ocf:heartbeat:Filesystem \
      params device="/dev/sdb1" directory="/mnt/shared" fstype="ocfs2" \
      op monitor interval="20" timeout="40" \
      op start timeout="60" op stop timeout="60" \
      meta target-role="Started"
  4. ocfs2-1 基本資源新增至您在程序 18.1 「設定 DLM 的基礎群組」中建立的 g-storage 群組。

    crm(live)configure# modgroup g-storage add ocfs2-1

    add 子指令預設會附加新的群組成員。鑒於基礎群組的內部並存與順序條件約束,Pacemaker 只會在其上也有 dlm 資源在執行的節點上啟動 ocfs2-1 資源。

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

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

19.6 使用 Hawk2 設定 OCFS2 資源

除了使用 crm 外圍程序手動為 OCFS2 設定 DLM 和檔案系統資源以外,您還可以使用 Hawk2 設定精靈中的 OCFS2 範本。

重要
重要:手動設定與使用 Hawk2 的區別

設定精靈中的 OCFS2 範本包含 STONITH 資源的組態。如果使用該精靈,仍需在共用儲存上建立 SBD 分割區,並依照程序 19.1 「設定 STONITH 資源」所述設定一個 STONITH 資源。

使用 Hawk2 設定精靈中的 OCFS2 範本還會導致資源組態與程序 18.1 「設定 DLM 的基礎群組」程序 19.4 「使用叢集資源管理員掛接 OCFS2 磁碟區」中所述的手動組態略有不同。

程序 19.5︰ 使用 Hawk2 的精靈設定 OCFS2 資源
  1. 登入 Hawk2:

    https://HAWKSERVER:7630/
  2. 在左側導覽列中,選取精靈

  3. 展開檔案系統類別,然後選取 OCFS2 檔案系統

  4. 按照螢幕上的指示執行操作。如需關於某個選項的資訊,按一下該選項即可在 Hawk2 中顯示簡要說明文字。在最後一個設定步驟之後,驗證所輸入的值。

    精靈會顯示將套用於 CIB 的組態代碼片段以及任何其他變更 (如果需要)。

    Image
  5. 檢查建議的變更。如果一切都符合您的預期,請套用變更。

    如果動作成功,螢幕上會顯示一則訊息。

19.7 在 OCFS2 檔案系統上使用定額

若要在 OCFS2 檔案系統上使用定額,請分別使用以下相應的定額功能或掛接選項來建立和掛接檔案系統:ursquota (個別使用者的定額) 或 grpquota (群組的定額)。您也可在以後使用 tunefs.ocfs2 在解下的檔案系統上啟用這些功能。

檔案系統啟用相應的定額功能後,將會在中繼資料中追蹤每個使用者 (或群組) 使用的空間量和檔案數量。由於 OCFS2 將定額資訊視為檔案系統內部的中繼資料,因此,您不需要執行 quotacheck(8) 程式。fsck.ocfs2 和檔案系統驅動程式自身中已內建所有功能。

若要對每個使用者或群組強制實施限制,請執行 quotaon(8),就像對其他任何檔案系統執行該指令一樣。

出於效能的考量,每個叢集每隔 10 秒會在本地執行一次定額計算,並將此資訊同步至通用中央儲存。您可以使用 tunefs.ocfs2、選項 usrquota-sync-intervalgrpquota-sync-interval 來調整此間隔。因此,定額資訊並非一直都是精確的,所以,當使用者或群組同時操作多個叢集節點時,可能會略微超出其定額限制。

19.8 更多資訊

如需有關 OCFS2 的詳細資訊,請參閱下列連結的內容:

https://ocfs2.wiki.kernel.org/

OCFS2 專案首頁。

http://oss.oracle.com/projects/ocfs2/

Oracle 上的原 OCFS2 專案首頁。

http://oss.oracle.com/projects/ocfs2/documentation

專案的原文件首頁。