Drbd+heartbeat+nfs
設備信息:
master:ip 192.168.8.220/24 eth0 增加sdb磁盤無需掛載
backup: ip 192.168.8.221/24 eth0 增加sdb磁盤無需掛載
拓撲:
編輯 /etc/hosts (master+backup)
下載drbd源碼包:drbd8.4.3.tar.bz2
一:編譯安裝drbd (master+backup)
1.1安裝依賴
Yum install gcc gcc-c++ make flexkernel-devel kernel-heders
解壓並安裝:
./configure –prefix=/usr/local/drbd –with-kem#--with-kem 開啓內核模塊
make KDIR=/usr/src/kernels/’uname-r’#指定系統內核源碼路徑
make install
modprobe drbd ##加載內核模塊
lsmod | grep drbd
配置drbd (master+backup)
cp /usr/local/drbd/etc/drbd.d/global_common.conf global_common.conf.bak
vi global_common.conf
global {
usage-countno;
}
common {
protocol C;
startup {
wfc-timeout120;
degr-wfc-timeout120;
}
disk {
on-io-errordetach;
fencingresource-only;
}
net {
cram-hmac-alg"sha1";
shared-secret"uccc";
}
syncer {
rate 30M;
}
}
2:創建資源文件(master+backup)
vi /usr/local/drbd/etc/drbd.d/nfs.res #創建名爲nfs的資源文件
resource nfs {
on master {
device/dev/drbd0;
disk/dev/sdb1;
address 192.168.8.220:7788;
meta-diskinternal;
}
on backup {
device/dev/drbd0;
disk/dev/sdb1;
address 192.168.8.221:7788;
meta-diskinternal;
}
}
激活資源:(master+backup)
drbdadm create-md nfs ##drbdadm爲drbd的管理命令
啓動drbd:(master+backup)
service drbd start ##啓動drbd
service drbd sattus ##查看drbd狀態
設置開機啓動(master+backup)
chkconfig –add drbd
chkconfig drbd on
因爲默認狀態下master與backup的狀態都爲secondary,所以需要設置master爲primary;(master)
drbdsetup /dev/drbd0 primary –force ##設置master爲primary
格式化並掛載磁盤(master)
mkfs.ext4 /dev/drbd0
mkdir /data
mount /dev/drbd0 /data
查看磁盤使用情況
df –h
至此drbd安裝完成。
二:安裝NFS(master+backup)
yum install rpcbind nfs-utils –y
編輯配置文件:vi exports
servicerpcbind start
service nfsstart
chkconfigrpcbind on
chkconfig nfson
修改nfs啓動配置
vi/etc/init.d/nfs
修改配置
killproc nfsd -2 爲 9 ##此處配置是否必須?
三:安裝heartbeat (master+backup)
3.1通過yum安裝,默認yum源沒有此包,需對源進行更新。
rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install heartbeat* -y
heartbeat有三個配置文件
authkeys ha.cf haresources ##分別爲認證文件、主配置文件、資源文件
3.2 master配置heartbeat
3.2.1 [root@master ~]# cat /etc/ha.d/ha.cf| grep -v "^#"
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 10
warntime 10
initdead 120
udpport 694 ##端口號
ucast eth0 192.168.8.221 ##對端的ip
auto_failback off ##自動切換
node master #主節點
node backup #備節點
ping 192.168.8.1 ##ping網關
3..2.2 配置authkeys
vi /etc/ha.d/authkeys
auth 1 # 採用何種認證
1 crc #無加密認證
#2 sha1 HI
#3 md5 Hello!
3.2.3配置haresources
vi /etc/ha.d/haresources
master IPaddr::192.168.8.222/24/eth0 drbddisk::nfs Filesystem::/dev/drbd0::/data::ext4 killnfsd
###此處說明:共有5部分
1部分:主節點主機名
2部分:設置heartbeat的vip;即對外服務ip。
3部分:設置對資源文件進行的操作。通過drbddisk。
4部分:文件系統類型及掛載點
5部分:執行killnfsd腳本
共有4個腳本:IPaddr drbddisk Filesystem killnfsd
需要存放在/etc/ha.d/resource.d/ 中,但是經過查看目錄中沒有drbddisk。所以導致啓動一直沒能成功。需要找到drbddisk文件並複製到/etc/ha.d/resource.d/。
killnfsd文件也需要自己創建。
3.2.4
如圖:
查找drbddisk文件,發現在drbd安裝文件中是有的,直接複製過去。
cp /usr/local/drbd/etc/ha.d/resource.d/drbddisk/etc/ha.d/resource.d/
創建killnfsd文件
cd /etc/ha.d/recource.d/;vi killnfsd
killall -9 nfsd; /etc/init.d/nfs restart;exit 0
chmod +x killnfsd
3.2.5 修改文件權限
chmod 600 /etc/ha.d/authkeys
chmod 755 /etc/ha.d/resource.d/killnfsd
3.3 backup配置heartbeat
3.3.1複製master的配置文件到backup中。
scp ha.cfauthkeys haresources backup:/etc/ha.d/
scp resource.d/killnfsd backup:/etc/ha.d/resource.d/
scp resource.d/drbddisk backup:/etc/ha.d/resource.d/
3.3.2配置master的ha.cf文件
ucast eth0 192.168.8.220 #修改此處爲master的ip
3.4啓動heartbeat(master+backup)
service heartbeat start #啓動
chkconfig heartbeat on #設置開機啓動
service heartbeat status #查看狀態
ip a 查看ip地址發現 vip已經存在
ping 192.168.8.222 已通
heartbeat已經安裝完成!
四:模擬測試
4.1 masterdrbd狀態與master /data 分區
可以看出master的drbd爲primary狀態,且/drv/drbd0已經掛載到/data
4.2 backup查看drbd狀態與 /data 分區
而backup的drbd狀態爲secondary,且無/data分區
4.3 關閉master的heartbeat,查看drbd狀態,與backup的分區信息
關閉heartbeat後,master的drbd狀態切換至secondary,且/data分區已經消失。
查看backup的主機。
發現drbd狀態已由原來的secondary切換至primary。
再觀察分區,發現/dev/drbd0已成功掛載至/data。