DRBD?技術是指設計用于高可用性(HA)叢集的塊裝置。 它會鏡像指定網絡内整個塊裝置。DRBD可以了解為基于RAID-1的網絡。在上圖中,兩個橙色框表示兩個伺服器組成一個HA群集。 框包含通常的Linux?核心的檔案系統,緩沖區高速緩存,磁盤排程,磁盤驅動程式,TCP / IP協定棧和網卡(NIC)驅動。 黑色箭頭标明明了這些元件之間的資料流。橙色箭頭顯示的資料流,DRBD技術作為一個高度可用性的服務,從HA叢集的活動節點鏡像備用節點HA叢集的資料。
http://www.drbd.org/ node1 的ip 位址:修改host檔案
[root@node1 mnt]# vim /etc/hosts
修改主機名
檢視主機名
時間同步:
hwclock -s
磁盤分區:
重新加載分區表
[root@node1 ~]# partprobe /dev/sdb
NFSyum install nfs
建立共享目錄:
mkdir /mnt/nfs (為了安全可以适當修改權限)
[root@node1 ~]# vim /etc/exports
導出:
service portmap start(可以寫到heartbeat管理的資源裡面)
HEARTBEAT[root@node1 ~]# vim /etc/ha.d/ha.cf
[root@node1 ~]# vim /etc/ha.d/authkeys
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!
這裡随便寫[root@node1 ~]# vim /etc/ha.d/haresources
#node-name resource1 resource2 ... resourceN(如果有些服務發現無法啟動,如果配置無誤,你可能需要将其控制腳本拷到ha.d/resource.d下)
44 node1.a.com 192.168.2.38/27/eth0/192.168.2.63 drbddisk::r0 filesystem::/dev/drbd0::/mnt/nfs::ext3 nfs
還有一點要注意的是,寫在這裡的服務不要在兩邊同時啟動,因為它是由heartbeat控制的
DRBD(Distibuted Replicated Block Device)分布式可複制塊裝置
安裝
yum localinstall drbd83-8.3.8-1.el5.centos.i386.rpm -y --nogpgcheck
如果drbd沒有内置到核心中(版本低于2.6.33),可能需要下面這個rpm包kernelmodules
yum localinstall kmod-drbd83-8.3.8-1.el5.centos.i686.rpm -y --nogpgcheck
我的linux核心版本:
主配置檔案:可以在指令行模式下輸入如下指令讀取,當然你也可以直接copy到/etc/下
全局配置檔案
[root@node1 ~]# vim /etc/drbd.d/global_common.conf
global {
usage-count no;
#使用統計
}
common {
protocol C;
#c協定,确認遠端主機的寫入之後,表示寫入完成
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
disk {
on-io-error detach;
fencing resource-only;
net {
#通信加密算法
cram-hmac-alg "sha1";
shared-secret "nfs";
syncer {
rate 100M;
#資料同步速率
資源:你可以寫到global_common.conf、drdb.conf裡面,也可以建立一個檔案
[root@node1 ~]# vim /etc/drbd.d/r0.res
resource r0 {
on node1.a.com {
device /dev/drbd0;
#drbd磁盤
disk /dev/sdb3;
#磁盤成員
address 192.168.2.39:7789;
#偵聽IP(ode1)、端口
meta-disk internal;
#meta data資訊存放的方式,内部存儲
on node2.a.com {
address 192.168.2.40:7789;
################################################################
以上步驟在兩個節點都要做一遍,除了主機名、 ip 不同外其他配置相同建立供DRBD記錄資訊的資料塊
drbdadm create-md r0
啟動:
root@node1 ~]# service drbd start
Starting DRBD resources: [
r0
Found valid meta data in the expected location, 1011703808 bytes into /dev/sdb3.
d(r0) s(r0) n(r0) ]..........
隻啟動一台無法啟動***************************************************************
DRBD's startup script waits for the peer node(s) to appear.
- In case this node was already a degraded cluster before the
reboot the timeout is 120 seconds. [degr-wfc-timeout]
- If the peer was available before the reboot the timeout will
expire after 120 seconds. [wfc-timeout]
(These values are for resource 'r0'; 0 sec -> wait forever)
To abort waiting enter 'yes' [30]
兩邊需要同時啟動,120s 逾時初始化,确定主、從關系(隻在一端做就可以了,預設都是secondery)
drbdadm -- --overwrite-data-of-peer primary r0動态觀察磁盤同步狀态
wtch -n 1 ‘cat /proc/drbd’
檢視主從狀态
格式化:
mkfs -t ext3 -L drbd /dev/drbd0
建立挂載點:
mkdir /mnt/nfs
mount /dev/drbd0 /mnt/nfs
可以建立幾個檔案,然後更改主從關系(drbdadm primary r0)
在另一端再挂載一下,測試一下是否正常。
####################################################################### 測試: 模拟節點二出現故障:/usr/lib/haertbaet/hb_takeover
可以看到出現node2:vip eth0:0
node2:
節點1自動挂載成功:
node2的挂載狀态
節點1上nfs啟動正常:
nfs程序:
節點2上nfs處于關閉狀态:
nfs啟動過程曾出現錯誤,程序無法結束,殺掉後重新開機正常
模拟節點一出現故障:nfs用戶端:
挂載:
建立挂載點:mkdir /nfs
#mount vip:dir 挂載點
[root@client ~]#mount 192.168.2.38:/mnt/nfs /nfs
臨時挂載,可以寫到/etc/fstab裡
以下分别為client、node1、node2建立的檔案,正常狀态下,節點狀态切換不影響使用,不需要重新挂載
分别在主機target、client編輯檔案client: