DRBD+HEARTBEAT+NFS

clip_image001

DRBD?技術是指設計用於高可用性(HA)集羣的塊設備。 它會鏡像指定網絡內整個塊設備。DRBD可以理解爲基於RAID-1的網絡。在上圖中,兩個橙色框表示兩個服務器組成一個HA羣集。 框包含通常的Linux?內核的文件系統,緩衝區高速緩存,磁盤調度,磁盤驅動程序,TCP / IP協議棧和網卡(NIC)驅動。 黑色箭頭標明明瞭這些組件之間的數據流。橙色箭頭顯示的數據流,DRBD技術作爲一個高度可用性的服務,從HA集羣的活動節點鏡像備用節點HA集羣的數據。

http://www.drbd.org/

clip_image003

node1的ip地址:

clip_image004

clip_image005

clip_image006

clip_image007

修改host文件

[root@node1 mnt]# vim /etc/hosts

clip_image008

修改主機名

clip_image009

查看主機名

clip_image010

時間同步:

hwclock -s

磁盤分區:

clip_image012

重新加載分區表

[root@node1 ~]# partprobe /dev/sdb

NFS

yum install nfs

創建共享目錄:

mkdir /mnt/nfs (爲了安全可以適當修改權限)

[root@node1 ~]# vim /etc/exports

clip_image013

導出:

clip_image014

service portmap start(可以寫到heartbeat管理的資源裏面)

HEARTBEAT

[root@node1 ~]# vim /etc/ha.d/ha.cf

clip_image015

[root@node1 ~]# vim /etc/ha.d/authkeys

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello! 這裏隨便寫

clip_image016

[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

clip_image018

還有一點要注意的是,寫在這裏的服務不要在兩邊同時啓動,因爲它是由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內核版本:

clip_image019

主配置文件:可以在命令行模式下輸入如下命令讀取,當然你也可以直接copy到/etc/下

clip_image020

全局配置文件

[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’

查看主從狀態

clip_image021

clip_image022

clip_image024

格式化:

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

clip_image025

node2:

clip_image026

節點1自動掛載成功:

clip_image028

node2的掛載狀態

clip_image029

節點1上nfs啓動正常:

clip_image030

nfs進程:

clip_image031

節點2上nfs處於關閉狀態:

clip_image032

nfs啓動過程曾出現錯誤,進程無法結束,殺掉後重啓正常

clip_image033

模擬節點一出現故障:

/usr/lib/haertbaet/hb_takeover

clip_image034

clip_image035

clip_image036

nfs客戶端:

掛載:

創建掛載點:mkdir /nfs

#mount vip:dir 掛載點

[root@client ~]#mount 192.168.2.38:/mnt/nfs /nfs

臨時掛載,可以寫到/etc/fstab裏

clip_image037

以下分別爲client、node1、node2創建的文件,正常狀態下,節點狀態切換不影響使用,不需要重新掛載

clip_image038

 

clip_image039

分別在主機target、client編輯文件client:

clip_image040

clip_image041

可以看到不能同時編輯此文件:

clip_image043

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章