Linux AS4上安裝 OCFS2叢集檔案系統

tolywang發表於2007-12-11

:元件包安裝:


下載ocfs2軟體包

安裝:

$ su -
# rpm -Uvh ocfs2-2.6.9-42.EL-1.2.3-1.i686.rpm
ocfs2console-1.2.1-1.i386.rpm
ocfs2-tools-1.2.1-1.i386.rpm
Preparing... ############################## [100%]
1:ocfs2-tools ############################## [ 33%]
2:ocfs2-2.6.9-42.EL ######################### [ 67%]
3:ocfs2console ############################# [100%]
禁用 SELinuxRHEL4 U2 以及更高版本)

RHEL4 U2 以及更高版本(CentOS 4.4 基於 RHEL4 U2)的使用者提供一個建議,即 OCFS2 當前無法在啟用 SELinux 的情況下執行。如果您使用的是 RHEL4 U2 或更高版本(由於我們使用的是 CentOS 4.4,因此我們也包括在內),則您需要禁用 SELinux(使用工具 system-config-securitylevel)才能執行 O2CB 服務。


要禁用 SELinux,執行“Security Level Configuration”GUI 實用程式:

# /usr/bin/system-config-securitylevel &

現在,單擊 SELinux 選項卡並取消選中“Enabled”核取方塊。單擊 [OK] 後,將顯示一個警告對話方塊。只需單擊“Yes”確認該警告。禁用 SELinux 選項,

在叢集中的兩個節點上進行此更改後,將需要重新引導每個節點以實施更改:在繼續配置 OCFS2 之前,必須禁用 SELinux

# init 6配置 OCFS2

下一步是在叢集中的兩個節點上生成和配置 /etc/ocfs2/cluster.conf 檔案。完成此操作最簡單的方法是執行 GUI 工具 ocfs2console。在本節中,我們不但使用 ocfs2console 建立和配置 /etc/ocfs2/cluster.conf 檔案,而且還建立和啟動叢集堆疊 O2CB。如果 /etc/ocfs2/cluster.conf 檔案不存在(本示例中便是這種情況),ocfs2console 工具將建立該檔案以及一個預設叢集名為 ocfs2 的新叢集堆疊服務 (O2CB)。您將需要以 root 使用者帳戶在叢集中的兩個節點上執行該操作:

$ su -# ocfs2console &

使用 ocfs2console GUI 工具執行以下步驟:

選擇 [Cluster] -> [Configure Nodes...]。這將啟動 OCFS2 叢集堆疊並顯示“Node Configuration”對話方塊。 “Node Configuration”對話方塊上,單擊 [Add] 按鈕。 這將顯示“Add Node”對話方塊。 “Add Node”對話方塊中,輸入叢集中第一個節點的 Host name IP address。將 IP Port 設定為預設值 7777。在我的示例中,我新增了兩個節點,即使用 linux1 / 192.168.1.100 表示第一個節點,並使用 linux2 / 192.168.1.101 表示第二個節點。 單擊“Node Configuration”對話方塊上的 [Apply] — 所有節點現在將處於“Active”狀態. 單擊“Node Configuration”對話方塊上的 [Close] 確認所有值均正確後,使用 [File] -> [Quit] 退出應用程式。需要在叢集的兩個節點上執行該操作。

退出 ocfs2console 後,將獲得一個類似如下所示的 /etc/ocfs2/cluster.conf。需要在叢集中的兩個節點上完成該過程,並且所有節點的 OCFS2 配置檔案必須完全相同:

node: ip_port = 7777

ip_address = 192.168.1.100

number = 0

name = linux1

cluster = ocfs2node:

ip_port = 7777

ip_address = 192.168.1.101

number = 1

name = linux2

cluster = ocfs2cluster:

node_count = 2

name = ocfs2

:O2CB 叢集服務

在使用 OCFS2 執行任何操作(如格式化或掛載檔案系統)之前,我們需要先執行 OCFS2 的叢集堆疊 O2CB(它將是以上執行的配置過程的結果)。此堆疊包含以下服務:

NM:用於跟蹤 cluster.conf 中的所有節點的節點管理器
HB
:當節點加入或離開叢集時向上/向下發出通知的心跳服務
TCP
:處理節點之間的通訊
DLM
:用於跟蹤所有鎖、這些鎖的所有者和狀態的分散式鎖管理器
CONFIGFS
:在 /config 中掛載的使用者空間驅動的配置檔案系統
DLMFS
:使用者空間與核心空間 DLM 的介面 已將以上所有叢集服務打包到 o2cb 系統服務 (/etc/init.d/o2cb) 中。以下是 o2cb 系統服務的某些更有用的命令和選項的簡要列表。

注意:以下命令僅用於演示目的,不應在安裝和配置 OCFS2 時執行!

/etc/init.d/o2cb status
Module "configfs": Not loaded

Filesystem "configfs": Not mounted

Module "ocfs2_nodemanager": Not loaded

Module "ocfs2_dlm": Not loaded

Module "ocfs2_dlmfs": Not loaded

Filesystem "ocfs2_dlmfs": Not mounted
注意,本示例未載入所有服務。我在執行“status”選項之前執行了“unload”。如果要在使用 ocfs2console 實用程式配置 OCFS2 後立即檢查 o2cb 服務的狀態,則將載入所有這些服務。
/etc/init.d/o2cb load
Loading module "configfs": OK

Mounting configfs filesystem at /config: OK

Loading module "ocfs2_nodemanager": OK

Loading module "ocfs2_dlm": OK

Loading module "ocfs2_dlmfs": OK

Mounting ocfs2_dlmfs filesystem at /dlm: OK

載入所有 OCFS2 模組
/etc/init.d/o2cb online ocfs2
Starting cluster ocfs2: OK
以上命令將使我們建立的叢集 ocfs2 處於聯機狀態。

/etc/init.d/o2cb offline ocfs2
Unmounting ocfs2_dlmfs filesystem: OK

Unloading module "ocfs2_dlmfs": OK

Unmounting configfs filesystem: OK

Unloading module "configfs": OK以上命令將使我們建立的叢集 ocfs2 處於離線狀態。

/etc/init.d/o2cb unload
Cleaning heartbeat on ocfs2: OK

Stopping cluster ocfs2: OK以上命令將解除安裝所有 OCFS2 模組。

: O2CB 配置為在引導時啟動

您現在需要配置 OC2B 驅動程式的引導屬性,以便在每次引導時將啟動叢集堆疊服務。需要在叢集的所有節點上執行本節中的所有任務。

注意:OCFS2 1.2.1 之前的版本中 包含一個錯誤,即不會在每次引導時載入驅動程式,即使將引導屬性配置為執行此操作後也是如此。OCFS2 1.2.1 版中已經修復了該錯誤,本文不再贅述。然而,如果您使用的是 OCFS2 1.2.1 之前的版本,請參閱疑難解答一節以獲取有關該錯誤的變通方法。 按如下所示設定引導屬性:

# /etc/init.d/o2cb offline ocfs2

# /etc/init.d/o2cb unload

# /etc/init.d/o2cb configure

Configuring the O2CB driver.This will configure the on-boot properties of the O2CB driver.The following questions will determine whether the driver is loaded onboot. The current values will be shown in brackets ('[]'). Hitting without typing an answer will keep that current value. Ctrl-Cwill abort.Load O2CB driver on boot (y/n) [n]: y

Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfs2

Writing O2CB configuration: OK

Loading module "configfs": OK

Mounting configfs filesystem at /config: OK

Loading module "ocfs2_nodemanager": OK

Loading module "ocfs2_dlm": OK

Loading module "ocfs2_dlmfs": OK

Mounting ocfs2_dlmfs filesystem at /dlm: OK

Starting cluster ocfs2: OK

:格式化 OCFS2 檔案系統

$ su -
# mkfs.ocfs2 -b 4K -C 32K -N 4 -L webdatafile /dev/sdf6

mkfs.ocfs2 1.2.1
Filesystem label=oracrsfiles
Block size=4096 (bits=12)
Cluster size=32768 (bits=15)
Volume size=2145943552 (65489 clusters) (523912 blocks)
3 cluster groups (tail covers 977 clusters, rest cover 32256 clusters)
Journal size=67108864
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Formatting Journals: done
Writing lost+found: done
mkfs.ocfs2 successful

:掛載 OCFS2 檔案系統

現在已經建立了此檔案系統,接下來我們便可以載入它了。首先,使用命令列進行掛載,然後我將介紹如何將它包含在 /etc/fstab 中以在每次引導時掛載它。

注意:需要使用 OCFS2 標籤 webdatafile root 使用者帳戶在叢集中的兩個節點上執行檔案系統掛載!

首先,此處介紹瞭如何從命令列手動掛載 OCFS2 檔案。注意,需要以 root 使用者帳戶執行該操作:

$ su –

# mount -t ocfs2 -o datavolume,nointr -L "webdatafile" /webdata如果掛載成功,您將只是獲得提示。但我們應執行以下檢查來確保檔案系統掛載正確。

首先,使用 mount 命令確保成功掛載了新檔案系統。應在叢集的兩個節點上執行該操作:

# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda1 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
cartman:SHARE2 on /cartman type nfs (rw,addr=192.168.1.120)
configfs on /config type configfs (rw)
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw)
/dev/sde1 on /u02/oradata/orcl type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)

注意:請記下我掛載新檔案系統所使用的 datavolume 選項。Oracle 資料庫使用者必須使用 datavolume 掛載選項安裝任何將包含表決磁碟檔案、叢集登錄檔 (OCR)、資料檔案、重做日誌、歸檔日誌以及控制檔案的卷,以確保 Oracle 程式開啟包含 o_direct 標誌的檔案。nointr 選項確保 I/O 不會由於訊號而中斷。

不應使用該掛載選項掛載任何其他型別的卷,其中包括 Oracle 主目錄(本指南未使用它)。

為什麼掛載卷需要花費這麼長的時間?掛載一個卷大約需要 5 秒鐘。它這樣做是為了使心跳執行緒保持穩定。在以後的版本中,Oracle 計劃增加對全域性心跳(這將使大多數掛載瞬間完成)的支援。

: OCFS2 配置為在啟動時自動掛載

讓我們瞭解一下到目前為止已經執行的操作。您下載並安裝了 OCFS2,它將用於儲存叢集管理器 檔案所需的檔案。安裝後,您將 OCFS2 模組載入到核心中,然後對叢集檔案系統進行了格式化。最後,您使用 OCFS2 標籤webdatafile掛載了新建的檔案系統。本節將逐步完成在每次使用 OCFS2 標籤引導計算機時負責掛載新 OCFS2 檔案系統的步驟。

首先將以下行新增到叢集中兩個節點上的 /etc/fstab 檔案中:

LABEL= webdatafile /webdata ocfs2 _netdev,datavolume,nointr 0 0注意用於掛載此檔案系統的“_netdev”選項。OCFS2 卷必須使用 _netdev 掛載選項。該掛載選項指示將在網路啟動後掛載該卷,在關閉網路前解除安裝該卷。

現在,讓我們確保已經載入了 ocfs2.ko 核心模組,並確保將在引導過程中安裝檔案系統。

配置過程可能出現的問題

# /etc/init.d/o2cb online ocfs2

Starting cluster ocfs2: Failed

Cluster ocfs2 created

o2cb_ctl: Configuration error discovered while populating cluster ocfs2. None of its nodes were considered local. A node is considered local when its node name in the configuration maches this machine's host name.

Stopping cluster ocfs2: OK

主機名問題,檢查more /etc/ocfs2/cluster.conf以及/etc/hosts檔案資訊,修改相應的主機名即可,

注意:為了保證開機能自動掛載ocfs2檔案系統,需要在/etc/fstab加入自動啟動選項後,必須在/etc/hosts中加入兩個節點的主機名和ip的對應解析,主機名和 /etc/ocfs2/cluster.conf配置的主機名一定要相同。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-85092/,如需轉載,請註明出處,否則將追究法律責任。

相關文章