數據存儲產業服務平臺

應用解析:利用Linux和GFS打造集群存儲

負載均衡是一項困難的任務。我們經常需要通過NFS(網絡文件系統)或其他機制來為數據提供中心地址,從而共享文件系統。雖然你的安全機制可能可以讓你免于Web服務器節點的故障,但是你仍然需要通過中央存儲節點來共享數據。

通過GFS(全局文件系統)——Linux的一個免費集群文件系統——你可以創建一個不需要依賴其他服務器的真正穩定的集群。在這篇文章中,我們將展示如何正確地設置GFS.

從概念上來說,一個集群文件系統可以允許多個操作系統載入同一個文件系統并可以在同一時間內向同一文件系統寫入數據?,F在有許多集群文件系統,包括Sun的Lustre,Oracle的OCFS(Oracle集群文件系統),以及Linux的GFS.

有許多方法可以讓一個塊設備同時被多個服務器所使用。你可以分區出一個對多個服務器都可視的SAN(存儲局域網)LUN(邏輯單元號),設置好相應的 iSCSI(互聯網小型計算機系統接口),或使用DRBD(分布式復制塊設備)在兩臺服務器之間復制一個分區。在使用DRBD的時候,你將需要在主/主節點中設置好DRBD以使用GFS.

GFS要求

運行GFS意味著你在運行一個集群。目前為止,運行GFS的最簡單的手段就是使用Red Hat Cluster Suite(RHCS:Red Hat集群套件)。這個套件在CentOS中就有。此外,還需要下面這些包:cman——集群管理器;lvm2-cluster——使LVM(邏輯卷管理器)可以支持集群的CLVM(集群邏輯卷管理器)包;kmod-gfs——GFS內核模塊;最后是gfs-utils.

集群管理器 (cman)包含必要的工具,比如分布式鎖管理器。除非你希望花時間來確認各種不同的分發版本是如何采用cman的,否則我們強烈推薦使用CentOS或 RHEL.同時,你還將獲得RH(Red Hat)所維護的各種最新版本的集群服務,此外你還可以獲得一個比較穩定的環境。

Fencing(阻絕)機制是絕對必要的。一些指導性文章建議將阻絕模式設定成"手動",因為阻絕設置有可能比較復雜。阻絕意味在集群中進行隔離,或馬上中斷某些危險節點的運作。如果集群無法阻絕某個發生故障的節點,那么你的GFS將會出現很多問題,因此不要跳過這個步驟。

創建集群設置

你可以通過/etc/cluster/里面的cluster.conf完成大部分的集群設置。我不建議使用各種集群管理應用程序來創建這個設置文 件。即使是完全支持的RHEL應用程序,比如兩個月前發布的Conga,也經常會創建一些無效的cluster.conf文件,并且無法被必要的服務所解 析。

下面是一個cluster.conf文件的例子。這個設置文件采用漂亮的XML格式,其內容非常直接。首先,我們對集群進行命名,我們將這個集群稱作"Web.1".

先跳過fence daemon選項,下一個部分就是集群主體的設置內容。你需要在clusternodes部分定義兩個節點。設置文件將同時存放在兩個節點上,這樣這兩個節點就都知道彼此的情況。

集群內的每個節點都聲明其阻絕方式的名稱是獨一無二的。在clusternames結束標簽下面,我們看到fencedevice部分定義了每個節 點如何阻絕其他節點的方式。使用一個支持IPMI(智能平臺管理接口)的服務器是最好的方式,而且其設置也是相當簡單。你只要將IPMI的地點以及登錄方 式告訴IP就可以了。為了避免在cluster.conf中留下密碼,你可以將它指向一個由根所擁有的腳本并由這個腳本來返回密碼。

我們還要指出的是我們在設置中定義了兩個節點。這是必須的,因為通常來說,除非大部分節點都同意自己的狀態,否則集群無法達到"Quorate"狀 態。如果只有兩個節點的話,沒有肯定多數,因此這種方式讓集群只能在兩個節點下工作,而不能只在只有一個節點的情況下工作。這是設置基本集群的必要方式。

在每個節點上運行"service cman start",系統應該可以開始正常運作。你可以檢查"clustat"或"cman nodes"來確認節點是否良好運行。如果有哪個必要的部分沒有啟動,那么集群將不會顯示"Quorate"狀態。

GFS設置

首先,我們需要設置CLVM,這樣我們才可以通過GFS使用LVM.激活CLVM只要在lvm.conf中設定"locking type=3"就可以了。

然后,就像平常一樣創建一個LVM卷組和卷,但是使用的是共享的塊設備。如果你使用的是DRBD,你將有可能使用/dev/drbd0.我創建了一個物理卷,然后創建一個名為vg01的卷組,然后創建一個名為web1的邏輯卷,這個卷在:/dev/vg01/web1.

最后,我們需要創建文件系統:

gfs_mkfs -t web1:mygfs -p lock_dlm -j 2 /dev/vg01/web1

-t中給定的名稱必須是集群的名稱,然后后面是你給這個文件系統所起的名字。只有web1集群的成員才可以載入這個文件系統。然后,設定分布式鎖管 理器的鎖鑰類型,指明你需要兩份journal(因為這是一個雙節點集群)。如果你預計未來要增加更多的節點,那么你需要在這時設定足夠高的 journal數量。

總結

我們現在可以開始使用這個文件系統了。在兩個節點上啟動"clvmd"和"gfs"服務?,F在你就可以通過"-t gfs"來將類型指定為GFS,從而載入文件系統。

在開始啟動之前,一定要設定好cman,clvmd和gfs服務。你最好能熟悉clustat和gfs_tool命令,因為在系統出現問題的時候,你可以用這些命令來查找問題所在。

不要指望GFS能很快。如果有一個節點在進行大量的寫入操作的話,那么在訪問文件系統的時候出現停頓是很正常的。對于一個數據讀取操作比數據寫入操 作多得多的Web集群來說,這倒不是什么問題。如果出現明顯延遲,那么首先要檢查一下所有組件的狀況,然后評估正在寫入的數據。防止延遲現象的最常見措施 就是確保HTTP對話中的數據不是寫入GFS卷。

未經允許不得轉載:存儲在線-存儲專業媒體 » 應用解析:利用Linux和GFS打造集群存儲
精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走