您好,登錄后才能下訂單哦!
http://freeloda.blog.51cto.com/2033581/1275384
升級(jí)內(nèi)核:
http://88fly.blog.163.com/blog/static/1226803902013111345347479/
常見錯(cuò)誤
http://blog.csdn.net/t1anyuan/article/details/52143789
heartbeat
http://www.iyunv.com/thread-39963-1-1.html
http://czmmiao.iteye.com/blog/1174010
http://www.linuxidc.com/Linux/2014-04/99503.htm
http://oldboy.blog.51cto.com/2561410/515345
http://oldboy.blog.51cto.com/2561410/1240412
大綱
一、前言
二、DRBD 是什么
三、DRBD 主要功能
四、DRBD 工作原理
五、DRBD與HA 集群
六、DRBD 復(fù)制模式
七、DRBD 配置工具
八、DRBD 配置文件
九、DRBD 資源
十、DRBD 支持的底層設(shè)備
十一、DRBD 配置步驟
十二、安裝與配置 DRBD 詳解
十三、DRBD 雙主模式配置示例
一、前言
在這一篇博文中我們主要講解DRBD,在這里說點(diǎn)題外話,其實(shí)學(xué)習(xí)任何Linux知識(shí)點(diǎn),最好的方式就是去看官方文檔,這是Linux的特點(diǎn),也是開源精神的體現(xiàn),不但提供軟件,還提供學(xué)習(xí)資料,這里DRBD的官方文檔http://www.drbd.org/users-guide/把DRBD講的非常詳細(xì),但是全是英文的,學(xué)習(xí)Linux有點(diǎn)好,就是有很多博友受開源精神影響,也會(huì)去做很無私事,這不有哥們就把我們的文檔翻譯出來了,這是翻譯版供大家參考http://blog.csdn.net/liuyunfengheda/article/details/6460814,我在這里主要說一下DRBD的重要知識(shí)點(diǎn),有時(shí)間的博友可以認(rèn)真的學(xué)習(xí)一下官方文檔。
二、DRBD 是什么
簡(jiǎn)單的說,DRBD (Distributed Replicated Block Device,分布式復(fù)制塊設(shè)備)是由內(nèi)核模塊和相關(guān)腳本而構(gòu)成,用以構(gòu)建高可用性的集群。其實(shí)現(xiàn)方式是通過網(wǎng)絡(luò)來鏡像整個(gè)設(shè)備。你可以把它看作是一種網(wǎng)絡(luò)RAID1。
三、DRBD 主要功能
簡(jiǎn)單說一下DRBD主要功能,DRBD 負(fù)責(zé)接收數(shù)據(jù),把數(shù)據(jù)寫到本地磁盤,然后通過網(wǎng)絡(luò)將同樣的數(shù)據(jù)發(fā)送給另一個(gè)主機(jī),另一個(gè)主機(jī)再將數(shù)據(jù)存到自己的磁盤中。
四、DRBD 工作原理
每個(gè)設(shè)備(drbd 提供了不止一個(gè)設(shè)備)都有一個(gè)狀態(tài),可能是‘主’狀態(tài)或‘從’狀態(tài)。在主節(jié)點(diǎn)上,應(yīng)用程序應(yīng)能運(yùn)行和訪問drbd設(shè)備(/dev/drbd*)。每次寫入都會(huì)發(fā)往本地磁盤設(shè)備和從節(jié)點(diǎn)設(shè)備中。從節(jié)點(diǎn)只能簡(jiǎn)單地把數(shù)據(jù)寫入它的磁盤設(shè)備上。 讀取數(shù)據(jù)通常在本地進(jìn)行。 如果主節(jié)點(diǎn)發(fā)生故障,心跳(heartbeat或corosync)將會(huì)把從節(jié)點(diǎn)轉(zhuǎn)換到主狀態(tài),并啟動(dòng)其上的應(yīng)用程序。(如果您將它和無日志FS 一起使用,則需要運(yùn)行fsck)。如果發(fā)生故障的節(jié)點(diǎn)恢復(fù)工作,它就會(huì)成為新的從節(jié)點(diǎn),而且必須使自己的內(nèi)容與主節(jié)點(diǎn)的內(nèi)容保持同步。當(dāng)然,這些操作不會(huì)干擾到后臺(tái)的服務(wù)。
五、DRBD與HA 集群
大部分現(xiàn)行高可用性集群(如:惠普、IBM、Dell)使用的是共享存儲(chǔ)器,因此存儲(chǔ)器連接多個(gè)節(jié)點(diǎn)(用共享的SCSI 總線或光纖通道就可以做到)。DRBD 也可以作為一個(gè)共享的設(shè)備,但是它并不需要任何不常見的硬件。它在IP 網(wǎng)絡(luò)中運(yùn)行,而且在價(jià)格上IP 網(wǎng)絡(luò)要比專用的存儲(chǔ)網(wǎng)絡(luò)經(jīng)濟(jì)的多。目前,DRBD 每次只允許對(duì)一個(gè)節(jié)點(diǎn)進(jìn)行讀寫訪問,這對(duì)于通常的故障切換高可用性集群來講已經(jīng)足夠用了?,F(xiàn)在的版本將支持兩個(gè)節(jié)點(diǎn)同時(shí)進(jìn)行讀寫存取。這很有用,比如對(duì)GFS 來講就是如此。兼容性DRBD可以在IDE、SCSI 分區(qū)和整個(gè)驅(qū)動(dòng)器之上運(yùn)行,但不能在回路模塊設(shè)備上運(yùn)行。(如果您硬要這樣做,它就會(huì)發(fā)生死鎖)。DRBD 也不能在回送網(wǎng)絡(luò)設(shè)備中運(yùn)行。(因?yàn)樗瑯訒?huì)發(fā)生死鎖:所有請(qǐng)求都會(huì)被發(fā)送設(shè)備占用,發(fā)送流程也會(huì)阻塞在sock_sendmsg()中。有時(shí),接收線程正從網(wǎng)絡(luò)中提取數(shù)據(jù)塊,并試圖把它放在高速緩存器中;但系統(tǒng)卻要把一些數(shù)據(jù)塊從高速緩存器中取到磁盤中。這種情況往往會(huì)在接收器的環(huán)境下發(fā)生,因?yàn)樗械恼?qǐng)求都已經(jīng)被接收器塊占用了。
六、DRBD 復(fù)制模式
協(xié)議A:異步復(fù)制協(xié)議。本地寫成功后立即返回,數(shù)據(jù)放在發(fā)送buffer中,可能丟失。
協(xié)議B:內(nèi)存同步(半同步)復(fù)制協(xié)議。本地寫成功并將數(shù)據(jù)發(fā)送到對(duì)方后立即返回,如果雙機(jī)掉電,數(shù)據(jù)可能丟失。
協(xié)議C:同步復(fù)制協(xié)議。本地和對(duì)方寫成功確認(rèn)后返回。如果雙機(jī)掉電或磁盤同時(shí)損壞,則數(shù)據(jù)可能丟失。
一般用協(xié)議C,但選擇C協(xié)議將影響流量,從而影響網(wǎng)絡(luò)時(shí)延。為了數(shù)據(jù)可靠性,我們?cè)谏a(chǎn)環(huán)境中還是用C協(xié)議。
七、DRBD 配置工具
drbdadm:高級(jí)管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta發(fā)送指令。
drbdsetup:配置裝載進(jìn)kernel的DRBD模塊,平時(shí)很少直接用。
drbdmeta:管理META數(shù)據(jù)結(jié)構(gòu),平時(shí)很少直接用。
八、DRBD 配置文件
DRBD的主配置文件為/etc/drbd.conf;為了管理的便捷性,目前通常會(huì)將些配置文件分成多個(gè)部分,且都保存至/etc/drbd.d目錄中,主配置文件中僅使用"include"指令將這些配置文件片斷整合起來。通常,/etc/drbd.d目錄中的配置文件為global_common.conf和所有以.res結(jié)尾的文件。其中g(shù)lobal_common.conf中主要定義global段和common段,而每一個(gè).res的文件用于定義一個(gè)資源。
在配置文件中,global段僅能出現(xiàn)一次,且如果所有的配置信息都保存至同一個(gè)配置文件中而不分開為多個(gè)文件的話,global段必須位于配置文件的最開始處。目前global段中可以定義的參數(shù)僅有minor-count, dialog-refresh, disable-ip-verification和usage-count。
common段則用于定義被每一個(gè)資源默認(rèn)繼承的參數(shù),可以在資源定義中使用的參數(shù)都可以在common段中定義。實(shí)際應(yīng)用中,common段并非必須,但建議將多個(gè)資源共享的參數(shù)定義為common段中的參數(shù)以降低配置文件的復(fù)雜度。
resource段則用于定義drbd資源,每個(gè)資源通常定義在一個(gè)單獨(dú)的位于/etc/drbd.d目錄中的以.res結(jié)尾的文件中。資源在定義時(shí)必須為其命名,名字可以由非空白的ASCII字符組成。每一個(gè)資源段的定義中至少要包含兩個(gè)host子段,以定義此資源關(guān)聯(lián)至的節(jié)點(diǎn),其它參數(shù)均可以從common段或drbd的默認(rèn)中進(jìn)行繼承而無須定義。
九、DRBD 資源
Resource name:可以是除了空白字符的任意的ACSII碼字符
DRBD device:在雙方節(jié)點(diǎn)上,此DRBD設(shè)備的設(shè)備文件;一般為/dev/drbdN,其主設(shè)備號(hào)147
Disk configuration:在雙方節(jié)點(diǎn)上,各自提供的存儲(chǔ)設(shè)備
Nerwork configuration:雙方數(shù)據(jù)同步時(shí)所使用的網(wǎng)絡(luò)屬性
案例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | resource web { #資源名為“web” on node1.magedu.com { #設(shè)置節(jié)點(diǎn)cluster1 device /dev/drbd0 ; #指出drbd的標(biāo)示名 disk /dev/sda5 ; #指出作為drbd的設(shè)備 address 172.16.100.11:7789; #指定ip和端口號(hào) meta-disk internal; #網(wǎng)絡(luò)通信屬性,指定drbd的元數(shù)據(jù)在本機(jī) } on node2.magedu.com { device /dev/drbd0 ; disk /dev/sda5 ; address 172.16.100.12:7789; meta-disk internal; } } |
十、DRBD 支持的底層設(shè)備
DRBD需要構(gòu)建在底層設(shè)備之上,然后構(gòu)建出一個(gè)塊設(shè)備出來。對(duì)于用戶來說,一個(gè)DRBD設(shè)備,就像是一塊物理的磁盤,可以在商脈內(nèi)創(chuàng)建文件系統(tǒng)。DRBD所支持的底層設(shè)備有以下這些類:
一個(gè)磁盤,或者是磁盤的某一個(gè)分區(qū)。
一個(gè)soft raid 設(shè)備。
一個(gè)LVM的邏輯卷。
一個(gè)EVMS(Enterprise Volume Management System,企業(yè)卷管理系統(tǒng))的卷。
其他任何的塊設(shè)備。
十一、DRBD 配置步驟
安裝drbd
配置資源文件(定義資料名稱,磁盤,節(jié)點(diǎn)信息,同步限制等)
將drbd加入到系統(tǒng)服務(wù)chkconfig --add drbd
初始化資源組drbdadm create-md resource_name
啟動(dòng)服務(wù) service drbd start
設(shè)置primary主機(jī),并同步數(shù)據(jù)
分區(qū)、格式化/dev/drbd*
一個(gè)節(jié)點(diǎn)進(jìn)行掛載
查看狀態(tài)
十二、安裝與配置 DRBD 詳解
1.實(shí)驗(yàn)拓?fù)?/span>
2.實(shí)驗(yàn)環(huán)境
(1).操作系統(tǒng)
CentOS 6.4 X86_64
(2).軟件環(huán)境
kmod-drbd84-8.4.2-1.el6_3.elrepo.x86_64
drbd84-utils-8.4.2-1.el6.elrepo.x86_64
(3).安裝epel源
node1:
1 2 3 4 5 6 7 8 | [root@node1 src] # wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@node1 src] # rpm -ivh epel-release-6-8.noarch.rpm warning: epel-release-6-8.noarch.rpm: Header V3 RSA /SHA256Signature , key ID 0608b895: NOKEY Preparing... ########################################### [100%] 1:epel-release ########################################### [100%] [root@node1 src] # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [root@node1 ~] # rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm [root@node1 ~] # yum list |
node2:
1 2 3 4 5 6 7 8 | [root@node2 src] # wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [root@node2 src] # rpm -ivh epel-release-6-8.noarch.rpm warning: epel-release-6-8.noarch.rpm: Header V3 RSA /SHA256Signature , key ID 0608b895: NOKEY Preparing... ########################################### [100%] 1:epel-release ########################################### [100%] [root@node2 src] # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [root@node2 ~] # rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm [root@node2 ~] # yum list |
3.安裝DRBD
說明:drbd共有兩部分組成:內(nèi)核模塊和用戶空間的管理工具。其中drbd內(nèi)核模塊代碼已經(jīng)整合進(jìn)Linux內(nèi)核2.6.33以后的版本中,因此,如果您的內(nèi)核版本高于此版本的話,你只需要安裝管理工具即可;否則,您需要同時(shí)安裝內(nèi)核模塊和管理工具兩個(gè)軟件包,并且此兩者的版本號(hào)一定要保持對(duì)應(yīng)。CentOS 6.4的內(nèi)核版本是2.6.32-358.el6.x86_64,所以還提安裝內(nèi)核模塊。
node1:
1 | [root@node1 ~] # yum -y install drbd84 kmod-drbd84 |
node2:
1 | [root@node2 ~] # yum -y install drbd84 kmod-drbd84 |
4.配置DRBD
(1).查看一下配置文件
1 2 3 4 5 | [root@node1 ~] # ll /etc/drbd.conf /etc/drbd.d/ -rw-r--r-- 1 root root 133 9月 6 2012 /etc/drbd .conf /etc/drbd .d/: 總用量 4 -rw-r--r-- 1 root root 1650 9月 6 2012 global_common.conf |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。