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