drbd(distributed replicated block device),分布式複製塊裝置,是一種通過tcp/ip網路實現塊裝置資料實時映象的方案。利用這種方案,單一主節點模式(single primary mode)雙機系統能夠實時地將業務資料儲存在主備節點的磁碟中,正常情況下兩個節點的資料是一模一樣的。
heartbeat在此是用來做熱備切換的,兩節點間通過心跳線連線,如果主節點宕機的話,可以通過ha將drbd快速切換到另外乙個節點,同時搶占虛擬ip,並啟動mysql,對mysql客戶端來說,只有很短時間的中斷。此模式能有效提高mysql的可用性。
一.環境
--------------------------------
os: centos 5.5 32位
drbd: 8.3.9編譯安裝 (
====node1====
hostname: centos1
ip: 192.168.0.201
====node2====
hostname: centos2
ip: 192.168.0.202
三 配置伺服器的hostname hosts
在兩個伺服器中編輯hosts檔案
#vi /etc/hosts
新增 192.168.0.201 centos1
192.168.0.202 centos2
四. 在兩個伺服器中分出乙個空分割槽或者新增乙個空的硬碟
/dev/sdb1 不要帶有分割槽資訊 如果格式化分割槽的話,則
# mkfs.ext3 /dev/sdb1或者dd if=/dev/zero bs=1m count=1 of=/dev/sdb1; sync 這個命令破壞原有檔案系統,否則底下第一次執行主備同步會感覺到很慢
四. 配置drbd
--------------------------------
注意,新版本的drbd的配置檔案已拆分成多個,全部放在/etc/drbd.d/目錄,具體可參考/etc/drbd.conf中的配置.
如果開了iptables防火牆,需要開啟對應的7789埠。
在主節點配置/etc/drbd.d/dbdata.res:
*****====dbdata.res begin**********=
resource dbdata
on centos2
}*****====dbdata.res end**********=
建立drbd裝置
#drbdadm create-md all
#/etc/init.d/drbd restart
檢視是否有相應的塊裝置:
#ls -l /dev/drbd1
#cat /proc/drbd
現在可以檢視drbd的狀態,然後在centos1主機上執行:
# cat /proc/drbd
version: 8.3.9 (api:88/proto:86-95)
git-hash: 1c3b2f71137171c1236b497969734da43b5bec90 build by root@centos1, 2011-04-18 17:28:21
1: 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:4706832
」/proc/drbd」中顯示了drbd當前的狀態.第一行的cs表示兩台主機的狀態,都是」備機」狀態.ds是磁碟狀態,都是」不一致」狀態. 這是由於,drbd無法判斷哪一方為主機,以哪一方的磁碟資料作為標準資料.所以,我們需要初始化 乙個主機.在centos1上執行:
#drbdsetup /dev/drbd1 primary -o 或:/sbin/drbdadm primary dbdata
/sbin/drbdadm secondary r0 (此命令為降級)
# cat /proc/drbd
version: 8.3.9 (api:88/proto:86-95)
git-hash: 1c3b2f71137171c1236b497969734da43b5bec90 build by root@centos1, 2011-04-18 17:28:21
1: cs:syncsource ro:primary/secondary ds:uptodate/inconsistent c r-----
ns:1383040 nr:0 dw:0 dr:1383040 al:0 bm:84 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:3323792
[====>...............] sync'ed: 29.5% (3244/4596)m
finish: 0:43:08 speed: 1,280 (1,268) k/sec
主備機狀態分別是」主/備」,主機磁碟狀態是」實時」,備機狀態是」不一致」. 在第3行,可以看到資料正在同步中,即主機正在將磁碟上的資料,傳遞到備機上.現在的進度是29.5%.
稍等一會,在資料同步完後,再檢視一下centos1的drbd狀態: 在同步完成前,請不要重啟,否則會重新同步。
# cat /proc/drbd
version: 8.3.9 (api:88/proto:86-95)
git-hash: 1c3b2f71137171c1236b497969734da43b5bec90 build by root@centos1, 2011-04-18 17:28:21
1: cs:connected st:primary/secondary ds:uptodate/uptodate c r--- ns:497928 nr:0 dw:0 dr:497928 al:0 bm:31 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:31091 misses:31 starving:0 dirty:0 changed:31 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
磁碟狀態都是」實時」,表示資料同步完成了.
五 使用drbd
你現在可以把主機上的drbd裝置掛載到乙個目錄上進行使用.備機的drbd裝置無法被掛載,因為它是
用來接收主機資料的,由drbd負責操作.
在centos1上執行:
[root@centos1 /]# mount /dev/drbd1 /data1
六. 測試drbd同步
先在primary節點centos1上寫入資料:
# cp mysql-6.0.3.tar.gz /data1/
ls –l /data/
-rw-r--r-- 1 root root 56857784 mar 13 16:41 mysql-6.0.3-alpha-linux-x86_64-glibc23.tar.gz
然後,我們把primary降級成secondary,把secondary提公升成primary:
[root@centos1 /]# umount /data1
[root@centos1 /]# drbdadm secondary dbdata
把primary降級前,一定要先umount裝置才行。
然後提公升secondary:
[root@centos2 /]# drbdadm primary dbdata
[root@centos2 /]# mount /dev/drbd1 /data1
[root@centos2 /]# ls –l /data
-rw-r--r-- 1 root root 56857784 mar 13 16:41 mysql-6.0.3-alpha-linux-x86_64-glibc23.tar.gz
可以看到,資料已經完全同步過去了。
drdb的一些常規操作:
切換主從節點前,要注意umount
主從切換: drbdadm primary all, drbdadm secondary all
節點間連線:drbdadm connect|disconnect all
drbd腦裂後的處理:
腦裂後,兩個節點間資料不同步,主從關係失效,需要按下面的步驟修復:
a.在從節點如下操作:
#drbdadm secondary dbdata
#drbdadm -- --discard-my-data connect dbdata
b.在主節點上,通過cat /proc/drbd檢視狀態,如果不是wfconnection狀態,需要再手動連線:
#drbdadm connect dbdadta
CentOS5 5系統安裝
最近一段時間在折騰linux,今天搞了一天終於搭建成功,其中遇到不少的問題,現在記錄下來方便查詢。先從裝系統開始 0 首先要設定計算機的bios啟動順序為光碟機啟動,儲存設定後將安裝光碟放入光碟機,重新啟動計算機。1 出現centos安裝介面 2 選擇skip跳過不測試光碟 3 選擇next下一步 ...
centos5 5 安裝中文支援
1,安裝中文支援包。yum install fonts chinese yum install fonts iso8859 2 lang zh cn.utf 8 sysfont lat0 sun16 注 若是圖形介面,可直接通過language來設定 3,安裝中文輸入法 yum install sc...
Centos 5 5 編譯安裝Mysql5 5
環境 root linux lsb release a lsb version core 3.1 ia32 core 3.1 noarch graphics 3.1 ia32 graphics 3.1 noarch distributor id centos description centos r...