㈠ 如何利用linux和GFS打造集群存儲
負載均衡是一項困難的任務。我們經常需要通過NFS(網路文件系統)或其他機制來為數據提供中心地址,從而共享文件系統。雖然你的安全機制可能可以讓你免於Web伺服器節點的故障,但是你仍然需要通過中央存儲節點來共享數據。
通過GFS(全局文件系統)——Linux的一個免費集群文件系統——你可以創建一個不需要依賴其他伺服器的真正穩定的集群。在這篇文章中,我們將展示如何正確地設置GFS.
從概念上來說,一個集群文件系統可以允許多個操作系統載入同一個文件系統並可以在同一時間內向同一文件系統寫入數據。現在有許多集群文件系統,包括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"服務。現在你就可以通過"-t gfs"來將類型指定為GFS,從而載入文件系統。
在開始啟動之前,一定要設定好cman,clvmd和gfs服務。你最好能熟悉clustat和gfs_tool命令,因為在系統出現問題的時候,你可以用這些命令來查找問題所在。
不要指望GFS能很快。如果有一個節點在進行大量的寫入操作的話,那麼在訪問文件系統的時候出現停頓是很正常的。對於一個數據讀取操作比數據寫入操作多得多的Web集群來說,這倒不是什麼問題。如果出現明顯延遲,那麼首先要檢查一下所有組件的狀況,然後評估正在寫入的數據。防止延遲現象的最常見措施就是確保HTTP對話中的數據不是寫入GFS卷。
㈡ 如何配置drbd的yum源倉庫
drbd 工作原理
DRBD是一種塊設備,可以被用於高可用(HA)之中.它類似於一個網路RAID-1功能.當你將數據寫入本地 文件系統時,數據還將會被發送到網路中另一台主機上.以相同的形式記錄在一個文件系統中。 本地(主節點)與遠程主機(備節點)的數據可以保證實時同步.當本地系統出現故障時,遠程主機上還會 保留有一份相同的數據,可以繼續使用.在高可用(HA)中使用DRBD功能,可以代替使用一個共享盤陣.
因為數據同時存在於本地主機和遠程主機上,切換時,遠程主機只要使用它上面的那份備份數據,
就可以繼續進行服務了。
兩台機器的環境如下:
hostname:srv5.localdomain
192.168.8.5
hostname:srv6.localdomain
192.168.8.6
准備環境
在兩台機器上各新加一塊磁碟
fdisk -l 列出所有的磁碟和分區的情況
在實驗中可以看到新加的磁碟還沒有分區
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
對新加的磁碟分區
[root@srv5 ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
載入磁碟信息
partprobe /dev/sdb
cat /proc/partions
安裝和配置DRBD
1,兩台機器上分別安裝drbd
yum -y install kmod-drbd83 drbd83
檢查是否安裝成功
[root@srv5 yum.repos.d]# modprobe -l | grep -i drbd
/lib/moles/2.6.18-53.el5/weak-updates/drbd83/drbd.ko
安裝完成後再/sbin 目錄下有drbd的命令文件, 在/etc/init.d/目錄下有drbd啟動腳本
[root@srv5 yum.repos.d]# ls /sbin/drbd*
/sbin/drbdadm /sbin/drbdmeta /sbin/drbdsetup
2,配置drbd
2.1,在兩台機器的hosts文件中添加如下的內容:
192.168.8.5 srv5.localdomain
192.168.8.6 srv6.localdomain
2.2,DRBD運行的時候要讀取/etc/drbd.conf文件,
將文件的內容保存為如下內容:
include "drbd.d/global_common.conf";
include "drbd.d/*.res";
修改global_common.conf文件內容如下:
[html] view plain
global {
usage-count no;
}
common {
protocol C;
startup {
wfc-timeout 15;
degr-wfc-timeout 15;
outdated-wfc-timeout 15;
}
disk {
on-io-error detach;
fencing resource-only;
}
net {
cram-hmac-alg sha1;
shared-secret "123456";
}
syncer {
rate 100M;
}
}
創建一個xserver.res文件內容如下:
[html] view plain
resource xserver {
meta-disk internal;
device /dev/drbd0; #device指定的參數最後必須有一個數字,用於global的minor-count,
#否則會報錯。device指定drbd應用層設備。
on srv5.localdomain{ #注意:drbd配置文件中,機器名大小寫敏感!
address 192.168.8.5:7789;
disk /dev/sdb5;
}
on srv6.localdomain {
address 192.168.8.6:7789;
disk /dev/sdb5;
}
}
2.3,假設上面的配置是在92.168.8.5上做的,拷貝上面配置好的3個文件到92.168.8.6上
scp /etc/drbd.conf 192.168.8.6:/etc/drbd.conf
scp /etc/drbd.d/* 192.168.8.6:/etc/drbd.d/
3,在兩台機器上創建drbd元數據信息:
[root@srv5 ~]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
4,啟動服務,
4.1,在主節點92.168.8.5上
service drbd start
在備份節點92.168.8.6上
service drbd start
在兩台機器上用下面的命令drbd-overview或者cat /proc/drbd查看,發現都是Secondary 備份狀態
[root@srv5 ~]# drbd-overview
0:xserver Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[root@srv6 ~]# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: build by [email protected], 2013-03-27 16:04:08
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:1044092
4.2,在主節點92.168.8.5上執行下面的命令讓其成為主節點
drbdadm -- --overwrite-data-of-peer primary all
然後再看狀態:
[root@srv5 ~]# drbd-overview
0:xserver SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
[=============>......] sync'ed: 70.6% (310268/1044092)K
[root@srv5 ~]# drbd-overview
0:xserver SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
[================>...] sync'ed: 89.1% (117372/1044092)K
[root@srv5 ~]# drbd-overview
0:xserver Connected Primary/Secondary UpToDate/UpToDate C r-----
4.3,將/dev/drbd0格式化並掛載
在主節點192.168.8.5上執行下面的命令
mkfs.ext3 /dev/drbd0
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
4.4,測試同步
在主節點192.168.8.5上執行下面的命令
cd /xserver-storage
echo "a file created in server5" > testfile
在備份節點192.168.8.6上執行下面的命令
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
#mount 會出錯,因為mount只能在Primary一端使用
在主節點192.168.8.5上執行下面的命令變成備份節點
umount /xserver-storage
drbdadm secondary all
在備份節點192.168.8.6上執行下面的命令變為主節點,可以看到192.168.8.5同步過來的內容
drbdadm primary all
mount /dev/drbd0 /xserver-storage
less /xserver-storage/testfile
可以查看到文件的內容為"a file created in server5"
在192.168.8.6新建一個文件
echo "a file created in server6" > testfile2
再將192.168.8.5變為主節點後mount可以看到testfile2的內容也同步了。
㈢ 請幫我解釋一下下面的回答。(回答看不懂)
說明版本不對,你去官網重下最新版
㈣ 安裝heartbeat+drbd出現了點問題heartbeat裝完了沒問題,但是drbd讓我頭疼了一個星期,求高數指點。
我也是暑假才裝的ubuntu 9.04,我裝的是vista與Ubuntu雙系統。
一. .我推薦你下個UltraISO軟體,做一個U盤啟動,具體方法如下:在工具欄找到 啟動,下拉框中選 寫入硬碟映像 ,接下來選你的U盤盤符,寫入方式選USB-HDD,等完成後一個啟動U盤就做好了。安裝的時候,開機時,按F12,不過不同的電腦可能不同,選USB啟動。
二. 分區問題 我幫你找了個很詳細的教程
一.掛載點
在Linux系統裡面,「分區」,被稱作「掛載點」,簡單明了的說,「掛載點」意思就是:把一部分硬碟容量,「分」成一個文件夾的形式,用來干什麼事情。這個文件夾的名字,就叫做:「掛載點」。所以,和Windows有著本質上的超級大的區別,你在任何linux發行版系統裡面,絕對不會看到C盤,D盤,E盤這樣的,你能看到的,只有「文件夾」形式存在的「掛載點」。
在Linux 系統裡面,有一些已經定義好,用來干一些事情的掛載點,常見的「掛載點」有:
1. Boot
大家應該很常見這個英文,是引導的意思。對於Linux來講,一部分容量,用來「掛載」Boot,就是用於存儲系統的引導文件
2. / 或者 /ROOT
就一個符號,是Linux系統特有的,是「根目錄」的意思。根目錄,用來存儲用戶的一些基本配置文件,軟體設置文件等等很多
3. home
「家」的意思,在Linux系統裡面,它是用來存儲用戶的程序,文件,文檔等等所有資源。因此,進行「分區」操作的時候,它是要分的很大很大很大的。
4. SWAP
這個,是Linux和Windows最大的區別了。Windows沒這個東西,只有Linux才有。其實它也不是一個「掛載點」,為了菜鳥們理解方便,我這里姑且把它當作一種掛載點。SWAP分區,是讓「內存」臨時存儲文件的專用空間。
小知識:對於大部分常見的Linux核心的系統,上述的 2,4.有它們2個「掛載點」,就夠了。當然,Linux下還有其他很多「掛載點」,可以進行詳細的設置,我說的2和4,只是必須的,一定要有的,最最基礎的!沒有它們2個掛載點,根本不能繼續安裝系統的!
5. usr
用來存放系統自帶的,或者通過更新安裝的軟體的地方。
6. tmp
臨時文件存儲地方,大家可以理解為Windows下的:C:\Documents and Settings\Administrator\Local Settings\Temp 目錄。^_^
7. 自行設置「掛載點」
咱們在Windows裡面,可以通過「新建文件夾」來存儲一類東西,當然在Linux下也行。除了這個方法,你也可以在「分區」的時候,自己設置一個「掛載點」(其實功能就等於建立個專門的地方,存放專門的東西」)
其他,還有很多很多。我不一一細說了,下面有張圖,裡面有各個文件夾對應的功能,存貯的東西。大家都可以在「分區」的過程中,手動「掛載」,設置具體容量。
二.Linux系統下,硬碟光碟機等設備的命名規則
Linux 好像很喜歡「另類」,它對硬碟設備的命名方法,也和Windows有很大區別。在Linux系統裡面,你的硬碟設備信息,是專門存儲在「dev」這個掛載點裡面的。上面我沒有提到這個掛載點,大家知道就行了。後面會見到。它的硬碟命名方法是:
1. IDE 介面的硬碟,Linux下稱為(或者說是顯示為):HD
2. SATA 硬碟或者 SCSI硬碟,稱為: SD
3. 光碟機,就是 CDROM 了。如果有多個光碟機,是按數字命名排列的,比如:CDROM0,CDROM1,CDROM2
4. 硬碟裡面的 Windows下的分區
以Ubuntu 8.04以上為例,它已經很好很好的支持 Windows分區類型(FAT32,FAT,NTFS)的讀寫操作了。你系統安裝好後,它就能自動識別這些Windows分區。它們會以「該分區的容量大小+分區卷標」,來標明,比如:22.5G GAME, 30G System^^^這樣。在你系統的「位置」裡面,就能看到的。
5. 如果你有多硬碟………………
剛才說了,在Linux裡面,硬碟被分為:HD 和 SD,那麼,根據英文26個字母的順序。第一塊硬碟,就是 hda,那麼,這塊硬碟的第一個掛載點,就是 hda1,以此類推 hda2,hda3^^^
剛才說了,多塊硬碟,是根據26個字母順序排的,那麼, hdb就是第二塊硬碟了。這個應該很容易理解吧?它的「分區」,自然就是:hdb1,hdb2,hdb3……………………同樣道理,大家應該能知道, sdb3,是什麼意思了吧?
三.關於常見掛載點的容量設置
每個人的硬碟大小都不同,自然也沒有「定論」了,我大致說下,大家可以根據自己實際情況,酌情考慮
1. boot
Linux系統,它的引導文件很小很小,這個boot掛載點,大家分 100M,就足夠了(這個基本上能算是定論!不管你硬碟多大,就分這么多,足夠足夠了!等你安裝完了系統,去看看它,其實就占 45M——50M)
小知識:BOOT掛載點,並不是必須的。但是個人建議,如果你要做雙系統,最好是單獨分出來,等你安裝grub引導器的時候,把它安裝到boot上,就是雙系統了,這樣做,目的就是更明確,更方便。
2. /(有些linux發行版,這個也寫做:/root,功能道理是一樣的)
剛才說過了,得大點,至少5G以上
3. home
剛才也說了,是要求最大最大最大的。。。。。。你就盡量分吧。嘿嘿!網上常見的,80的硬碟,分給它 70G的都有………………
4. SWAP
有一個不成文的小規律: 電腦內存,小於 1G的,SWAP分 512M;內存大於 1G的,分 1G就行。
5. TMP
臨時存放些垃圾的,自己看著吧了。大不了用滿了清理唄。
小知識:linux和windows不一樣,垃圾很少很少,可以說是幾乎沒有,所以,在linux系統下,你完全不用考慮,系統垃圾文件的問題喔!所以,用linux,自然就不用天天吵著:我怎麼清理垃圾阿!
6. usr
占你整個容量的 15%差不多吧。呵呵,自己酌情考慮,其實你不「掛載」這個都行的。
Linux的分區,之所以讓大家頭疼,就是因為它並不是給每個分區,分配一個「字母盤符」,而是通過具體的文件夾名字,來進行「掛載」,進行功能的區分。其實,大家在潛意識里,明白這些掛載點的意思,就行了。別非想著Windows,分區就得有個盤符。。。。。。。^_^想用Linux,很多觀念都必須要改變滴~
四.實戰 Ubuntu 8.04.1 硬碟分區
基礎知識說完了,該進入正題了,以:Ubuntu 為例,來一步一步的圖文說明分區過程。
硬碟「分區」,是Ubuntu系統安裝過程的:第三步,前兩步我實在覺得沒必要說了。
1. 系統語言選擇—— 都知道選擇中文(簡體)吧?而且默認就是,直接回車即可!
2. 選擇時區 —— 默認就是 (SHANGHAI),會拼音的都明白。中國上海。直接回車
3. 開始頭疼的硬碟分區
首先出現的是這個界面,我們選擇「手動」
⑴ 這里,就是Ubuntu系統的「分區」軟體界面了。每種Linux系統,都自帶分區軟體,他們的界面和使用方法,也大致相同,菜鳥們學會一種,就完全可以應付所有的了。雖然網上也有很多專門給Linux系統「分區」的第三方軟體,但我個人還是推薦大家用系統自帶的,方便,直接,快捷~
如圖,下面列出了我的硬碟設備:dev/sda ,還用解釋么?sda:「sata介面第一塊硬碟」
⑵我們選中下面的「空閑空間」行,就能點擊「新的分區」了。
⑶點擊「新的分區」,我們來創建掛載點。界面如圖,我逐個解釋
★新分區的類型
boot 和 swap(交換分區)是主,其他的掛載點,都是邏輯。這個不解釋了。當然不是定論
★新建分區容量: 自己填寫吧
★新分區位置: 默認就行,選擇「開始」
★用於
Linux的「分區」,也有很多種類,就像是Windows包括NTFS,FAT32。 現在這個時代,建議大家選擇 Ext3 日誌文件系統就行了。還有一種 R...FS,具體名字忘了,^_^,也可以。不過我都用Ext3,實質存放檔案的分割區。事實上除了ext3外,GNU/Linux可以使用ext2、xfs、reiser及jfs等檔案系統存放檔案,每個檔案系統都有其長短處,不過初學者先使用ext3。
一會兒要建立SWAP掛載點,就是在這里選擇!別忘了!
★ 掛載點
不解釋了,前面開始時候就介紹了,「分區」軟體裡面羅列了常見的:boot, /, home,usr,temp
看看,這裡面已經提供了如下這些掛載點,大家直接選擇就行了:
⑷第一步,建立 BOOT 掛載點的「分區」,看圖吧,最直接
⑸第二步:建立 SWAP ,交換空間
⑹建立 /,根目錄掛載點
⑺建立 HOME,用戶掛載點
⑻到這里,最基本的,就建立忘了,教程裡面,我就建立這幾個,其他的,大家想建立,可以照貓畫虎就行了,應該這個本事都具備吧?^_^ 看下面的圖,是已經都掛載好的硬碟了。
4. 填寫個人信息:用戶名,密碼(輸入2遍),填寫計算機名稱
5. 開始「全自動」安裝。。。。。。。。。
6. 最後重啟,就裝完系統拉!
其實我裝的時候就分了/root boot swap home,總共我是分了20G。(Linux下可以打開FAT32,ntfs的盤就是xp下的盤,在xp下不能打開ext格式的盤)
三 關於怎麼切換系統,開機的時候有操作系統的選擇,你可以選擇windows或Linux。
四 按步驟來的話一般是不會使文件丟失的,不要擔心。當然可以用GHOST備份。
五 分區的話可以用分區魔法師,文件不會丟失的。分區最好是空出一部分。
(圖傳不上去,很抱歉,可以自己到網上搜索)
㈤ 伺服器死機的原因
伺服器死機的原因如下:
1、軟硬體不兼容。三維軟體和一些特殊軟體,在有的微機上不能正常啟動甚至安裝,可能就有軟硬體兼容方面的問題。
2、某些軟體程序不是標准化的,不能先載入並運行,而是先運行,會導致系統管理混亂。 Beta軟體在某些方面不夠穩定,使用後,可能會導致系統無法啟動。
3、在小內存的情況下,運行佔用大內存的應用程序很容易崩潰。因此,需要在運行這些程序時保存當前正在使用的文件。
4、該軟體存在沖突或不兼容。在安裝某些軟體之前,系統可以正常工作。安裝後系統異常時,問題可能是由軟體引起的。當運行不同的軟體時,有時會發生沖突和不兼容,或者防病毒軟體中存在一些小錯誤。只需關閉或卸載該軟體即可。
㈥ centos5.8 drbdadm create-md r0時,總提示can not open"/user/local/drbd/etc/drbd.conf"
drbd是需要drbd.conf配置文件的。你就把你的drbd.conf拷貝到報錯那麼文件夾下面,試一下。
不知道你的drbd怎麼裝的,可以生成rpm包,再裝。那麼drbd.conf在/etc下面。