DRBD?技術是指設計用於高可用性(HA)集羣的塊設備。 它會鏡像指定網絡內整個塊設備。DRBD可以理解爲基於RAID-1的網絡。在上圖中,兩個橙色框表示兩個服務器組成一個HA羣集。 框包含通常的Linux?內核的文件系統,緩衝區高速緩存,磁盤調度,磁盤驅動程序,TCP / IP協議棧和網卡(NIC)驅動。 黑色箭頭標明明瞭這些組件之間的數據流。橙色箭頭顯示的數據流,DRBD技術作爲一個高度可用性的服務,從HA集羣的活動節點鏡像備用節點HA集羣的數據。
node1的ip地址:
修改host文件
[root@node1 mnt]# vim /etc/hosts
修改主機名
查看主機名
時間同步:
hwclock -s
磁盤分區:
重新加載分區表
[root@node1 ~]# partprobe /dev/sdb
NFS
yum 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 {
device /dev/drbd0;
disk /dev/sdb3;
address 192.168.2.40:7789;
meta-disk internal;
}
}
################################################################
以上步驟在兩個節點都要做一遍,除了主機名、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啓動過程曾出現錯誤,進程無法結束,殺掉後重啓正常
模擬節點一出現故障:
/usr/lib/haertbaet/hb_takeover
nfs客戶端:
掛載:
創建掛載點:mkdir /nfs
#mount vip:dir 掛載點
[root@client ~]#mount 192.168.2.38:/mnt/nfs /nfs
臨時掛載,可以寫到/etc/fstab裏
以下分別爲client、node1、node2創建的文件,正常狀態下,節點狀態切換不影響使用,不需要重新掛載
分別在主機target、client編輯文件client:
可以看到不能同時編輯此文件: