国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
生產(chǎn)環(huán)境下的高可用NFS文件服務(wù)器
分布式復(fù)制塊設(shè)備(DRBD,Distributed Replicated Block Device)是一種基于Linux的軟件組件,它是由內(nèi)核模塊和相關(guān)程序而組成的,通過網(wǎng)絡(luò)鏡像促進(jìn)共享存儲系統(tǒng)的替換。也就是說:當(dāng)你將數(shù)據(jù)寫入本地的DRBD設(shè)備上的文件系統(tǒng)時,數(shù)據(jù)會同時被發(fā)送到網(wǎng)絡(luò)中的另外一臺主機(jī)之上,并以完全相同的形式記錄在一個文件系統(tǒng)中(實際上文件系統(tǒng)的創(chuàng)建也是由DRBD的同步來實現(xiàn)的)。本地節(jié)點(主機(jī))與遠(yuǎn)程節(jié)點(主機(jī))的數(shù)據(jù)可以保證實時的同步,并保證IO的一致性。所以當(dāng)本地節(jié)點的主機(jī)出現(xiàn)故障時,遠(yuǎn)程節(jié)點的主機(jī)上還會保留有一份完全相同的數(shù)據(jù),可以繼續(xù)使用,以達(dá)到高可用的目的。

   在高可用(HA)解決方案中使用DRBD的功能,可以代替使用一個共享盤陣存儲設(shè)備。因為數(shù)據(jù)同時存在于本地主機(jī)和遠(yuǎn)程主機(jī)上,在遇到需要切換的時候,遠(yuǎn)程主機(jī)只需要使用它上面的那份備份數(shù)據(jù),就可以繼續(xù)提供服務(wù)

分布式復(fù)制塊設(shè)備(DRBD)是在90年代末由Philipp Reisner和LarsEllenberg設(shè)想和開發(fā)的。開發(fā)者是為了創(chuàng)建一個Linux安全標(biāo)準(zhǔn),以最低成本提供最佳的安全保障。分布式復(fù)制塊設(shè)備的當(dāng)前版本可以與Linux的普通版本一起使用,用于在被動系統(tǒng)和主動系統(tǒng)之間進(jìn)行存儲數(shù)據(jù)的同步復(fù)制。數(shù)據(jù)可以在兩個系統(tǒng)同時讀取和輸入。分布式復(fù)制塊設(shè)備還支持資源級別防護(hù)。分布式復(fù)制塊設(shè)備(DRBD)工程與一組稱為Heartbeat的管理程序一起使用。它已經(jīng)被收集到Linux的一些發(fā)行版中,目前流行的Linux中只有Centos有預(yù)編譯好的安裝包和對應(yīng)內(nèi)核。

分布式復(fù)制塊設(shè)備(DRBD)是LINBIT信息技術(shù)有限責(zé)任公司的一個注冊商標(biāo),總部設(shè)在奧地利維也納。該軟件已通過通用公共許可證(GNUGPL)發(fā)布,它可以在許可協(xié)議允許的范圍內(nèi)自由分發(fā)和修改。

 

二、DRBD的工作原理

   理解DRBD其實就是網(wǎng)絡(luò)RAID-1,二臺服務(wù)器中就算其中的某臺因電源或主板損壞而宕機(jī)而對數(shù)據(jù)無任何影響(可以用硬盤RAID-1來理解DRBD),而真正的熱切換可以通過Heartbeat來實現(xiàn),這樣切換過程跟Keepalived類似,是非常短及不需要人為干預(yù)的。

 

三、DRBD的使用

DRBD需要構(gòu)建在底層設(shè)備之上,然后構(gòu)建出一個塊設(shè)備出來。對于用戶來說,一個DRBD設(shè)備,就像是一塊物理的磁盤,可以在商脈內(nèi)創(chuàng)建文件系統(tǒng)。DRBD所支持的底層設(shè)備有以下這些類:

(1)一個磁盤,或者是磁盤的某一個分區(qū)

(2)一個soft raid 設(shè)備

(3)一個LVM的邏輯卷

(4)一個EVMS(Enterprise Volume Management System,企業(yè)卷管理系統(tǒng))的卷

(5)其他任何的塊設(shè)備

我們的線上環(huán)境采取的第一種,即用單獨的磁盤來做的DRBD。

 

四、DRBD的配置過程

我查閱了網(wǎng)上大量的教程類文間,感覺寫得不算是詳細(xì);今天我登陸到服務(wù)器上,發(fā)現(xiàn)我的DRBD+Heartbeat已經(jīng)穩(wěn)定運行了161天(海量圖片文件服務(wù)器),相當(dāng)?shù)姆€(wěn)定和高效。如果沒有線上環(huán)境的同學(xué)也不要著急,大家完全可以根據(jù)我的文章用VMwareworkstation6.0+Centos5.x系統(tǒng)實現(xiàn)這個實驗,達(dá)到熟練掌握的目的。需要注意的地方我會重點說明,整個測試過程參考生產(chǎn)服務(wù)器。

服務(wù)器1:centos1.7788.com,單獨拿一塊硬盤sdb作DRBD

服務(wù)器2:centos2.7788.com,單獨拿一塊硬盤sdb作DRBD

網(wǎng)絡(luò)拓補很簡單:

centos1.7788.cometh0:192.168.4.191,物理bridge連接,eth1:10.0.0.1,這個可以采用虛擬網(wǎng)段VM5

centos2.7788.cometh0:192.168.4.192,物理bridge連接,eth1:10.0.0.2,這個可以采用虛擬網(wǎng)段VM5

VIP:192.168.4.194,這個是通過Heartbeat來實現(xiàn)的,原理跟Keepalived類似,它通過在某臺服務(wù)器的eth0:0上綁定,如果遇到故障就轉(zhuǎn)移,達(dá)到高HA的目的;這個同時也是對外提供服務(wù)的IP。

Hosts的配置在二臺機(jī)器上一樣,不需要太復(fù)雜,只配置心跳部分即可,即:

centos1.7788.com 192.168.4.191 centos1
centos2.7788.com 192.168.4.192 centos2

另外關(guān)于時間同步一說,蠻多哥哥說要ntpdate,其實也沒什么必要;不過為了線上環(huán)境的嚴(yán)謹(jǐn),這步就做一下吧,ntpdatentp.api.bz。

 

◆DRBD的安裝和配置

DRBD官方網(wǎng)站:http://www.linux-ha.org/DRBD

源碼下載地址: http://oss.linbit.com/drbd

FAQ: http://www.linux-ha.org/DRBD/FAQ

目前流行的Linux中只有Centos有預(yù)編譯好的安裝包和對應(yīng)內(nèi)核.

如果不想用Centos可以選擇從源碼安裝.

DRBD有兩種安裝模式:直接編譯進(jìn)內(nèi)核 或 作為一個可加載的內(nèi)核模塊編譯.

以下使用的是CentOS 5.2 i386 系統(tǒng)安裝與測試:

1. 安裝依賴庫.

yum install gcc gcc-c++ make glibc flex

2. 在primary和secondary上都使用相同的安裝方法:

  1. tar zxvfdrbd-8.0.6.tar.gz
  2. cd drbd-8.0.6
  3. make
  4. //make KDIR=/usr/src/linux *內(nèi)核所在的位置*,如果沒有更改內(nèi)核可
  5. //直接運行make,軟件會直接到/lib/module里邊去尋找系統(tǒng)環(huán)境,
  6. //如果是新的內(nèi)核需要對內(nèi)核進(jìn)行編譯安裝,否則make時候會錯誤中斷掉.
  7. makeinstall

3. 安裝完主要生成命令: “drbdsetup”, “drbdadmin”

和配置文件: /etc/drbd.conf

啟動文件: /etc/init.d/drbd

模塊文件: drbd.ko (在編譯好的安裝包目錄下的drbd下可以找到)

  1. ls/lib/modules/2.6.18-128.el5/kernel/drivers/block/
  2. cpqarray.ko drbd.ko nbd.kosx8.ko

所有命令和配置文件都可以在源碼包編譯成功的目錄下面找到.

./scripts/drbd.conf是最原始的配置文件, 當(dāng)/etc/drbd.conf被破壞, 可以直接拷貝覆蓋掉.

4. drbd采用的是模塊控制的方式, 所以先要加載drbd.ko 模塊.

  1. modprobedrbd
  2. 查看drbd模塊是否已經(jīng)加載到內(nèi)核中了:
  3. lsmod | grepdrbd
  4. drbd 226352 2//有的話表示加載模塊成功.

5. 先確認(rèn)兩臺要鏡像的機(jī)器是否正常, 之間的網(wǎng)絡(luò)是否通暢, 需要加載的硬盤是否處于umount狀態(tài).

6. 在兩臺主機(jī)上都創(chuàng)建硬件設(shè)備drbd.

  1. mknod/dev/drbd0 b 147 0
  2. //mknod /dev/drbd1 b 1471
  3. //mknod /dev/drbd2 b147 2 如需多個drbd設(shè)備則依次去創(chuàng)建.

7. 二臺機(jī)器將/dev/sdb1互為鏡相(兩臺機(jī)器配置相同).

  1. yum -y installportmap
  2. yum -y installnfs
  3. mkdir /d//創(chuàng)建共享目錄.
  4. vim/etc/exports
  5. /d10.1.2.0/255.255.252.0(rw,no_root_squash,no_all_squash,sync)
  6. /etc/init.d/portmapstart
  7. chkconfig –level 3portmap on
  8. chkconfig –level 3 nfsoff
  9. //nfs不需要啟動,也不需要設(shè)置成開機(jī)自動運行, 這些都將由后面的heartbeat來完成.

8. 配置drbd.

DRBD運行時,會讀取一個配置文件/etc/drbd.conf.

這個文件里描述了DRBD設(shè)備與硬盤分區(qū)的映射關(guān)系, 和DRBD的一些配置參數(shù)

  1. [root@centos1~]# cat /etc/drbd.conf
  2. #創(chuàng)建一個資源,名字叫r0
  3. resource r0{
  4. protocol C;
  5. #采用C協(xié)議,表示收到遠(yuǎn)程主機(jī)的寫入確認(rèn)后,則認(rèn)為寫入完成。
  6. startup { wfc-timeout 0;degr-wfc-timeout 120; }
  7. disk { on-io-errordetach; }
  8. net {
  9. timeout60;
  10. connect-int10;
  11. ping-int10;
  12. max-buffers2048;
  13. max-epoch-size2048;
  14. }
  1. syncer { rate30M; }
  2. #設(shè)置主備節(jié)點同步時的網(wǎng)絡(luò)速率最大值
  3. on centos1.7788.com{
  4. device/dev/drbd0;
  5. disk/dev/sdb;
  6. address10.0.0.1:7788;
  7. meta-diskinternal;
  8. }
  9. on centos2.7788.com{
  10. device/dev/drbd0;
  11. disk/dev/sdb;
  12. address10.0.0.2:7788;
  13. meta-diskinternal;
  14. }
  15. }
  16. #每個主機(jī)的說明以"on"開頭,分別是各自的主機(jī)名,再后面的{}為這個主機(jī)的配置;監(jiān)聽端口為7788,meta-disk internal即表示在同一個局域網(wǎng)內(nèi)
9.drbd的啟動, 激活前面配置的drbd資源 “r0″. (兩個節(jié)點都要執(zhí)行)
在啟動DRBD之前,你需要分別在兩臺主機(jī)的hdb1分區(qū)上, 創(chuàng)建供DRBD記錄信息的數(shù)據(jù)塊.
分別在兩臺主機(jī)上執(zhí)行:
 
  1. [root@centos1/]# drbdadm create-md r0 //創(chuàng)建r0的資源,r0是我們在drbd.conf里定義的資源名稱.
  2. [root@centos2 /]# drbdadmcreate-md r0
 
現(xiàn)在可以啟動drbd了, 分別在兩臺主機(jī)上執(zhí)行.
  1. [root@centos1/]# /etc/init.d/drbd start #我喜歡用service drbdstart
  2. [root@centos2 /]#/etc/init.d/drbd start
 
設(shè)置drbd開機(jī)自動啟動.
  1. [root@centos1/]# chkconfig --add drbd
  2. [root@centos2 /]# chkconfig--add drbd
 
現(xiàn)在可以查看drbd當(dāng)前的狀態(tài), 然后在centos1上執(zhí)行:
 
  1. [root@centos1/]# cat /proc/drbd
  2. version: 8.0.0(api:86/proto:86)
  3. SVN Revision: 2713build by root@centos1, 2008-06-27 14:07:14
  4. 1: cs:Connectedst:Secondary/Secondary ds:Inconsistent/Inconsistent Cr—
  5. ns:0 nr:0 dw:0 dr:0al:0 bm:0 lo:0 pe:0 ua:0 ap:0
  6. resync: used:0/31 hits:0misses:0 starving:0 dirty:0 changed:0
  7. act_log: used:0/257hits:0 misses:0 starving:0 dirty:0 changed:0
 
第一行的’st’表示兩臺主機(jī)的狀態(tài),都是”備機(jī)”狀態(tài).
‘ds’是磁盤狀態(tài),都是”不一致”狀態(tài).
這是由于,DRBD無法判斷哪一方為主機(jī),以哪一方的磁盤數(shù)據(jù)作為標(biāo)準(zhǔn)數(shù)據(jù).
所以,我們需要初始化一個主機(jī), 那么需要在centos1上執(zhí)行.
10.初始化centos1(這步只要在主節(jié)點上操作)
 
  1. [root@centos1/]# drbdsetup /dev/drbd0 primary -o//定義為主節(jié)點.
  2. # drbdadm primaryr0
 
第一次設(shè)置主節(jié)點時用 drbdadm 命令會失敗, 所以先用drbdsetup 來做, 以后就可以用drbdadm了.
再次查看drbd當(dāng)前的狀態(tài).
 
  1. [root@centos1~]# cat /proc/drbd
  2. version: 8.0.0(api:86/proto:86)
  3. SVN Revision: 2713build by root@centos1, 2008-06-27 14:07:14
  4. 1: cs:SyncSourcest:Primary/Secondary ds:UpToDate/Inconsistent Cr—
  5. ns:18528 nr:0 dw:0dr:18528 al:0 bm:1 lo:0 pe:0 ua:0 ap:0
  6. [>...................] sync’ed: 0.3%(8170/8189)M
  7. finish: 6:46:43speed: 336 (324) K/sec
  8. resync: used:0/31 hits:1156misses:2 starving:0 dirty:0 changed:2
  9. act_log: used:0/257hits:0 misses:0 starving:0 dirty:0 changed:0
 
現(xiàn)在主備機(jī)狀態(tài)分別是’主/備’, 主機(jī)磁盤狀態(tài)是’實時’, 備機(jī)狀態(tài)是’不一致’.
在第3行, 可以看到數(shù)據(jù)正在同步中, 即主機(jī)正在將磁盤上的數(shù)據(jù), 傳遞到備機(jī)上.
現(xiàn)在的進(jìn)度是0.3%.
設(shè)置完之后的第一次同步耗時比較長, 因為需要把整個分區(qū)的數(shù)據(jù)全部同步一遍.
第一次同步完成之后, 就可以對drbd的設(shè)備創(chuàng)建文件系統(tǒng)了:
稍等一段時間, 在數(shù)據(jù)同步完后, 再查看一下兩臺機(jī)器的DRBD狀態(tài):
 
  1. [root@centos1~]# cat /proc/drbd
  2. SVN Revision: 3048 build byroot@centos1.7788.cn, 2010-01-20 06:09:12
  3. 0: cs:Connectedst:Primary/Secondary ds:UpToDate/UpToDate C r—
 
 
  1. [root@centos2~]# service drbd status
  2. SVN Revision: 3048 build byroot@centos2.7788.cn, 2010-01-20 06:09:02
  3. 0: cs:Connectedst:Secondary/Primary ds:UpToDate/UpToDate C r—
 
現(xiàn)在磁盤狀態(tài)都是’實時’, 表示數(shù)據(jù)同步完成了.
#查看drbd的實時狀態(tài),我喜歡用service drbd status
11.drbd的使用.
現(xiàn)在可以把主機(jī)上的DRBD設(shè)備掛載到一個目錄上進(jìn)行使用.
備機(jī)的DRBD設(shè)備無法被掛載, 因為它是用來接收主機(jī)數(shù)據(jù)的, 由DRBD負(fù)責(zé)操作.
在centos1主服務(wù)器上執(zhí)行:
 
  1. [root@centos1/]# mkfs.ext3 /dev/drbd0
  2. [root@centos1 mnt]# mount/dev/drbd0 /d //只要在主節(jié)點上操作
 
現(xiàn)在, 就可以對 /d 分區(qū)進(jìn)行讀寫操作了.
注意: secondary節(jié)點上不允許對drbd設(shè)備進(jìn)行任何操作, 包括只讀.
所有的讀寫操作只能在primary節(jié)點上進(jìn)行.
只有當(dāng)primary節(jié)點掛掉之后, secondary節(jié)點才能提升成為primary節(jié)點, 繼續(xù)進(jìn)行讀寫操作. 
 
五、Heartbeat的配置過程
真實的服務(wù)器之間的連接用交叉線連接,本著簡單高效的原則,直接購買即可。
1. 安裝, 在兩臺主機(jī)都同樣的安裝.
 
  1. yum -y installheartbeat
  2. #奇怪的事,此命令要執(zhí)行二次,不然heartbeat還真安裝不上去,奇怪的問題。
  3. 其中Heartbeat配置共涉及3個文件.
  4. /etc/ha.d/ha.cf
  5. /etc/ha.d/haresources
  6. /etc/ha.d/authkeys
  7. /etc/ha.d/resource.d/killnfsd
 
2. 二個節(jié)的配置的配置文件都是一樣, 文件內(nèi)容如下
 
  1. logfile/var/log/ha-log
  2. #定義HA的日志名字及存放位置
  3. logfacilitylocal0
  4. keepalive 2
  5. #設(shè)定心跳(監(jiān)測)時間為2秒
  6. deadtime 5
  7. #死亡時間定義為5秒
  8. ucast eth110.0.0.2
  9. #采用單播方式,IP地址指定為對方IP
  10. auto_failbackoff
  11. #服務(wù)器正常后由主服務(wù)器接管資源,另一臺服務(wù)器放棄該資源
  12. node centos1.7788.comcentos2.7788.com
  13. #定義節(jié)點
 
2. 編輯雙機(jī)互聯(lián)驗證文件: authkeys
 
  1. [root@centos1ha.d]# vim /etc/ha.d/authkeys
  2. auth 1
  3. 1crc
  4. //需要將/etc/ha.d/authkeys設(shè)為600的權(quán)限.
  5. [root@centos1 ha.d]#chmod 600 /etc/ha.d/authkeys
  6. [root@centos2 ha.d]# chmod 600/etc/ha.d/authkeys
 
3. 編輯集群資源文件: haresources
 
  1. [root@centos1ha.d]# vim /etc/ha.d/haresources
  2. centos1.7788.comIPaddr::192.168.4.194/24/eth0 drbddisk::r0Filesystem::/dev/drbd0::/d::ext3 killnfsd
  3. #此文件二臺機(jī)器上配置一樣,千萬不要自做聰明在另一臺機(jī)器上配置成centos2.7788.com
 
4.編輯腳本文件killnfsd,目的其實就是為了重啟nfs服務(wù)。這是因為NFS服務(wù)切換后,必須重新mount一下nfs共享出來的目錄,否則會出現(xiàn)stale NFS file handle的錯誤。
 
  1. #[root@centos1ha.d]# vim /etc/ha.d/resource.d/killnfsd
  2. #killall -9 nfsd;/etc/init.d/nfs restart; exit 0
  3. #[root@centos1ha.d]# chmod 755 /etc/ha.d/resource.d/killnfsd
 
5. 在二個節(jié)點啟動Heartbeat即可,先在主節(jié)點啟動
  1. [root@centos1/]# service heartbeat start
  2. [root@centos2 /]# serviceheartbeat start
  3. #這時就可以在另外的機(jī)器上面,正常掛載192.168.4.194:/d到自己的/mnt/data下進(jìn)行正常的讀寫了,client會認(rèn)為這個就是一個提供NFS的機(jī)器。
 
六、測試     由于我的線上環(huán)境已經(jīng)很穩(wěn)定了,這個測試結(jié)果是讓大家進(jìn)行的,讓大家熟悉DRBD+Heartbeat;我建議做完此步后再做測試,看Heartbeat是否能做到真正的熱切換。 測試一、在另一臺FreeBSD8下掛載192.168.4.194:/d,向里面寫數(shù)據(jù)時,忽然重新啟動主DRBD,看此時寫數(shù)據(jù)有影響不,發(fā)現(xiàn)DRBD+Heartbeat正常切換還是需要些時間的; 測試二、正常狀態(tài)下關(guān)機(jī)Primary機(jī),然后看數(shù)據(jù)有無問題,觀察DRBD的status;然后等主機(jī)啟動后,再觀察變化,然后再關(guān)機(jī)secondary,然后再啟動,觀察DRBD變化及Heartbeat起作用了沒。 測試三、假設(shè)此時把primary的eth0 給ifdown了, 然后直接在secondary上進(jìn)行主的提升,并也給mount了, 發(fā)現(xiàn)在primary上測試拷入的文件確實同步過來了。之后把primary的 eth0 恢復(fù)后, 發(fā)現(xiàn)沒有自動恢復(fù)主從關(guān)系, 經(jīng)過支持查詢,發(fā)現(xiàn)出現(xiàn)了drbd檢測出現(xiàn)了Split-Brain 的狀況, 兩個節(jié)點各自都standalone了,故障描術(shù)如下:Split-Brain detected, dropping connection!這個即時傳說中的腦裂了,DRBD官方推薦手動恢復(fù)(生產(chǎn)環(huán)境下出現(xiàn)這個機(jī)率的機(jī)會很低的,誰會去故障觸動生產(chǎn)中的服務(wù)器)以下手動恢復(fù)Split-Brain狀況:i. 在secondary上:
ii.在primary上:
  1. drbdadmdisconnect all
  2. drbdadm connectr0
 
測試四、假設(shè)Primary因硬件損壞了,需要將Secondary提生成Primay主機(jī),如何處理,方法如下:在primaty主機(jī)上,先要卸載掉DRBD設(shè)備.[root@centos1 /]# umount /d將主機(jī)降級為”備機(jī)”
現(xiàn)在,兩臺主機(jī)都是”備機(jī)”.在備機(jī)centos2上, 將它升級為”主機(jī)”.
現(xiàn)在centos2成為主機(jī)了.至此,整個實驗結(jié)束了;建議大家多做測試和總結(jié),幾十遍后就會完全掌握其用法,祝大家Happy先了。
  1. [root@centos2/]# drbdadm primary r0
  2. [root@centos2 /]# cat/proc/drbd
  3. 1: cs:Connectedst:Primary/Secondary ds:UpToDate/UpToDate C r—
  1. [root@centos1/]# drbdadm secondary r0
  2. [root@centos1 /]# cat/proc/drbd
  3. 1: cs:Connectedst:Secondary/Secondary ds:UpToDate/UpToDate C r—
  1. drbdadmsecondary r0
  2. drbdadm disconnectall
  3. drbdadmin ----discard-my-data connect r0
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Heartbeat+DRBD+NFS+Keepalived+Lnmp雙機(jī)熱備+負(fù)載均衡-線上方案
CentOS6.5下DRBD+HeartBeat+NFS配置(一)
CentOS 5.5下搭建Mysql DRBD Heartbeat
hadoop分析之四:關(guān)于hadoop namenode的雙機(jī)熱備份方案
Heartbeat+DRBD+MySQL高可用方案
CentOS5系統(tǒng)安裝和配置HA+DRBD+MySQL筆記
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服