Centos5.6 x86_64下安裝DRBD+Heartbeat+NFS

這篇文章其實是對《構建高可用Linux服務器(第二版)》中第五章中“生產下的高可用NFS文件服務器”一節的補充,其實像drbd和heartbeat這些軟件都是可以通過yum來自動安裝的,例如安裝drbd的命令如下:
yum -y install drbd83 kmod-drbd83 
DRBD的配置文件/etc/drbd.conf如下所示:
global { 
# minor-count dialog-refresh disable-ip-verification 
usage-count no;         #統計drbd的使用 
} 
common { 
syncer  { rate 30M; }  #同步速率,視帶寬而定 
} 
resource r0 {           #創建一個資源,名字叫”r0” 
protocol C;             #選擇的是drbd的C 協議(數據同步協議,C爲收到數據並寫入後返回,確認成功) 
handlers {              #默認drbd的庫文件 
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; 
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; 
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"; 
# fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; 
# split-brain "/usr/lib/drbd/notify-split-brain.sh root"; 
# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root"; 
# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k"; 
# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh; 
} 
startup { 
# wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb 
wfc-timeout 120; 
degr-wfc-timeout 120;      
} 
disk { 
# on-io-error fencing use-bmbv no-disk-barrier no-disk-flushes 
# no-disk-drain no-md-flushes max-bio-bvecs 
on-io-error detach; 
} 
net { 
# sndbuf-size rcvbuf-size timeout connect-int ping-int ping-timeout max-buffers 
# max-epoch-size ko-count allow-two-primaries cram-hmac-alg shared-secret 
# after-sb-0pri after-sb-1pri after-sb-2pri data-integrity-alg no-tcp-cork 
max-buffers 2048; 
cram-hmac-alg "sha1"; 
shared-secret "123456"; 
#allow-two-primaries; 
} 
syncer { 
rate 30M; 
# rate after al-extents use-rle cpu-mask verify-alg csums-alg 
} 
on centos1.cn7788.com { #設定一個節點,分別以各自的主機名命名 
device  /dev/drbd0; #設定資源設備/dev/drbd0 指向實際的物理分區 /dev/sdb1 
disk    /dev/sdb; 
address 192.168.11.32:7788;      #設定監聽地址以及端口 
meta-disk       internal; 
} 
on centos2.cn7788.com {         #設定一個節點,分別以各自的主機名命名 
device  /dev/drbd0; #設定資源設備/dev/drbd0 指向實際的物理分區 /dev/sdb1 
disk    /dev/sdb; 
address 192.168.11.33:7788;       #設定監聽地址以及端口 
meta-disk       internal; 
} 
} 

Heartbeat的配置文件如下:
logfile /var/log/ha-log 
logfacility local0 
keepalive 2 
deadtime 15 
ucast eth0 192.168.11.32
ucast eth1 10.0.0.2 
auto_failback off 
node centos1.cn7788.com centos2.cn7788.com

補充說明的幾點是:
一、許多朋友喜歡用獨立分區的方式來部署DRBD,這個也是可行的,我們在安裝系統時只需要保留Free空間即可,在部署DRBD時再進行fdisk,這個是不需要寫進/etc/fstab表的,即不需要在安裝系統時就掛載,我在測試時發現用此方法部署DRBD還是比較繁瑣了,增加了整個實驗的複雜度,而且還需要操作dd,個人建議還是以獨立硬盤來作爲DRBD的塊設備較好;
二、Secondary主機用來做DRBD的硬盤或分區可以跟Primar主機的不一樣大小,但請不要小於Primary主機;
三、服務器網卡及交換機我都推薦千M系列的,在測試中發現其同步速率界於100M-200M之間,這裏採用官方的建議,以最小值的30%帶寬來設置rate速率;
四、DRBD對網絡環境要求很高,建議用單獨的雙絞線來作爲二臺主機之間的心跳線,如果條件允許,可以考慮用二根以上的心跳線;如果這個環節做得好,基本上腦裂的問題是不存在的。其實整個實驗初期都可以在同一網絡下實現,後期再加心跳線也是可行的。
五、安裝Heartbeat時需要安裝二遍,即yum -y install heartbeat要執行二次;
六、DRBD+Heartbeat+NFS的實驗在測試時發現也很威猛,我經常在做寫入測試時忽然關掉primary機器,寫數據絲毫不影響,用戶完全感覺不到有機器掛掉了;
七、建議不要用根分區作爲MySQL的datadir,不然你show database時會發現會出現名爲#mysql50#lost+found的數據庫;
八、就算髮生腦裂的問題,DRBD也不會丟失數據的,手動解決就是;正因爲DRBD可靠,MySQL也推薦將其作爲MySQL實現高可用方案之一,其具體操作詳見http://database.51cto.com/art/201209/355332.htm

本文出自 “撫琴煮酒” 博客,請務必保留此出處http://andrewyu.blog.51cto.com/1604432/976135

發佈了40 篇原創文章 · 獲贊 29 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章