ocfs2檔案系統使用詳解

tolywang發表於2009-10-09


     OCFS1問世於2002年10月,它是Oracle公司為了讓RAC使用者避免必須要與裸裝置打交道而開發出來的。這個檔案系統用來存放資料庫相關的檔案,比如資料檔案,控制檔案,線上日誌檔案,歸檔日誌檔案等。

    OCFS2是下一代的ORACLE叢集檔案系統,它已經被設計成為一種為通用的檔案系統,它不僅可以存放資料庫相關的檔案,還可以存放oracle二進位制檔案(指Oracle_home下的軟體檔案-譯者注)和配置檔案,從而使RAC的管理更加輕鬆。


安裝

OCFS2的發行版包括了2個安裝包,一個稱為核心模組,另一個叫工具包。

可以從以下連結下載:

工具包可以從以下連結下載;


 

工具包又分為兩部分,ocfs2-tools命令列工具,ocfs2console圖形工具,使用者可以選擇不安裝這部分,但它的確可以令操作簡單化。


配置

OCFS2有一個配置配置檔案,路徑為/etc/ocfs2/cluster.conf.在這個檔案中,你需要指定RAC中所有的節點資訊,並且所有的節點上都應該保留相同的一份。你可以動態的增加新節點到RAC,或者改變一些節點的IP,名字,但這需要重起RAC以便於使更改生效。

我們強烈建議使用者使用OCFS2-CONSOLE工具來對RAC中所有的節點進行配置。

執行OCFS2-CONSOLE,進入cluster選單,選擇configure nodes.如果cluster已經停止,控制檯會啟動它,並且返回一個成功的資訊。如果cluster.conf檔案不存在,控制檯將會創健一個並給一個預設的叢集名字ocfs2.點選add按鈕將節點新增到RAC中,每一個節點需要輸入節點名稱,ip和埠號。控制檯從0-254順序的分配節點序號。一旦所有的節點都新增到RAC當中,透過點選選單cluster裡propagate configration項,我們可以在任何一臺節點上將配置檔案cluster.conf分發到所有節點相應的位置上去,由於控制檯使用的是ssh協議來傳送檔案,所以之前需要在所有節點上建好彼此的信任,以避免在檔案傳遞過程中出現提出輸入口令的問題。

附一個cluster.conf的示例

Sample /etc/ocfs2/cluster.conf
cluster:
node_count = 2
name = racdb
node:
ip_port = 7777
ip_address = 192.168.0.107
number = 7
name = node7
cluster = racdb
node:
ip_port = 7777
ip_address = 192.168.0.106
number = 6
name = node6
cluster = racdb


O2CB叢集服務

OCFS2有自己的叢集服務結構,叫做O2CB,它包括:

NM:節點管理器,它對cluster.conf檔案中所有節點進行的監控。

HB:心跳服務(Heart beat service),他在節點離開或加入rac時提示up和down的訊息。

TCP:控制節點間的通訊。

DLM:分散式鎖管理器,它持續跟蹤所有的鎖,鎖的所有者及狀態。

CONFIGFS:使用者配置檔案系統驅動空間,掛節點是/config

DLMFS:使用者空間和核心空間DLM的介面。

所有這些cluster服務都已經被打包在o2cb系統服務當中,所有的操作,比如format,mount等,都需要cluster可用。在使用format等命令前,要先啟動這些服務。

可以透過以下方式檢查所有服務的狀態:

# /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


# mkfs.ocfs2 -b 4K -C 32K -N 4 -L oracle_home /dev/sdf2

mkfs.ocfs2 1.2.0

Overwriting existing ocfs2 partition.

Proceed (y/N): y

Filesystem label=oracle_home

Block size=4096 (bits=12)

Cluster size=32768 (bits=15)

Volume size=21474820096 (655359 clusters) (5242872 blocks)

21 cluster groups (tail covers 10239 clusters, rest cover 32256 clusters)

Journal size=33554432

Initial number of node slots: 4

Creating bitmaps: done

Initializing superblock: done

Writing system files: done

Writing superblock: done

Writing lost+found: done

mkfs.ocfs2 successful

 

掛載(mount)


 

 

         首先要下載相應的軟體包.對於核心模組,下載時要考慮它的發行號,適用的平臺,作業系統核心版本以及核心的型別(比如SMP,HUGEMEM,PSMP等),對於工具包,只要符合發行版本和平臺就可以了。

 

透過以下方式啟動所有服務:

# /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


透過以下方式使cluster ocfs2 啟動:

# /etc/init.d/o2cb online ocfs2

Starting cluster ocfs2: OK


透過以下方式停止cluster ocfs2


# /etc/init.d/o2cb offline ocfs2

Cleaning heartbeat on ocfs2: OK

Stopping cluster ocfs2: OK


透過以下方式停止所有服務:

 

# /etc/init.d/o2cb unload

Unmounting ocfs2_dlmfs filesystem:

Unloading module "ocfs2_dlmfs": OK

Unmounting configfs filesystem: OK

Unloading module "configfs": OK

 

透過以下方式使O2CB在系統啟動時自動被載入:


# /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 on

boot. The current values will be shown in brackets ('[]'). Hitting

without typing an answer will keep that current value. Ctrl-C

will abort.

Load O2CB driver on boot (y/n) [n]: y

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

Writing O2CB configuration:       oK

#


如果cluster已經被配置為系統啟動時載入,可以透過以下方式啟動和停止它:


# /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


格式化(format)


 

如果O2CB CLUSTER沒有啟動,首先啟動它。格式化操作依賴於這些服務。同時它需要你確保所有的節點上都沒有掛載需要格式化的裝置。

你可以使用圖形介面或者命令列來格式化分割槽。

如果你使用圖形介面,選擇task/Format來執行操作,在下拉選單中選擇可用的裝置。同時控制檯會盡可能的列出裝置上存在的檔案系統。

為要格式化的裝置輸入一個標籤,為了便於管理,我們建議你輸入一個標籤,你仍然可以在格式化之後修改它。

為裝置選擇一個叢集單元大小(cluster  size),它支援從4k到1M。如果這個裝置用來儲存資料檔案或者大的檔案,比較合適的大小是128K。

選擇一個塊單元大小(block size),它支援從512位元組到4k,由於OCFS2在格式化的時候並不分配一個靜態的inode 區域,所以4k是我們強烈推薦的大小,它幾乎適合所有的磁碟大小,換句話說,即時這些磁碟支援512位元組,但我們仍然不建議使用小的單元。

一旦格式化完畢,叢集單元和塊單元都不可以再改變。

輸入一個節點槽位(node slots),這個數值決定了允許多少節點同時掛載這個裝置。這個數值隨後可以修改,但只能增加,不能減小。

點選ok按鈕執行格式化操作。

要格式化一個3k塊大小,32k叢集單元大小,包括4個節點的裝置,在命令列下,可以通mkfs.ocfs2工具按如下操作完成

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

相關文章