设为首页 收藏本站
查看: 1414|回复: 0

[经验分享] DRBD + Heratbeat + NFS 高可用文件共享存储

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-23 10:24:44 | 显示全部楼层 |阅读模式
                      

一、概述

1、架构图

aa11f791aa6cd48c44545a3e2ee4ef03.jpg

2、软件简介

Heartbeat(Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

DRBD:drbd是一个软件来实现数据实时、同步、异步的数据镜像块存储复制解决方案,主要功能是通过Linux内核实现。DRBD类似网络RAID-1功能写入本地的文件会通过网络以相同方式写在另一文件系统。

3、资源分配

系统:CentOS6.5_x64
wKiom1ZOwBXD4Tm2AAAlAIGwtqI752.jpg

4、配置两台hosts记录

[iyunv@masternfs ~]# vi /etc/hosts

192.168.0.202 masternfs

192.168.0.203 backupnfs

二、安装配置DRBD(两台服务器配置基本一样)

安装epel源:

rpm -ivh http://mirrors.ustc.edu.cn/fedor ... ease-6-8.noarch.rpm

下载drbd软件:http://oss.linbit.com/drbd/

1、安装依赖包

1
[iyunv@masternfs ~]# yum install -y gcc gcc-c++ make perl kernel-devel kernel-headers flex drbd84-utils kmod-drbd84



2、安装DRBD并加载到内核
1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@masternfs ~]# tar zxvf drbd-8.4.4.tar.gz
[iyunv@masternfs ~]# cd drbd-8.4.4
[iyunv@masternfs ~]# ./configure --prefix=/usr/local/drbd --with-km #--with-km,启用内核模块
[iyunv@masternfs ~]# make KDIR=/usr/src/kernels/2.6.32-358.23.2.el6.x86_64/ #指定内核源码路径
[iyunv@masternfs ~]# make install
[iyunv@masternfs ~]# chkconfig --add drbd
[iyunv@masternfs ~]# chkconfig drbd on
[iyunv@masternfs ~]# cp drbd/drbd.ko /lib/modules/`uname -r`/kernel/lib/ #加载DRBD模块到内核中
[iyunv@masternfs ~]# modprobe drbd
[iyunv@masternfs ~]# lsmod |grep drbd  #由此查看drbd模块已经加载
drbd                 333755  0
libcrc32c              1246  1 drbd




3、配置DRBD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[iyunv@masternfs ~]# cd /usr/local/drbd/
[iyunv@masternfs ~]# vi /usr/local/drbd/etc/drbd.d/global_common.conf
global {
        usage-count yes;
}
common {
        protocol C;
disk {
        on-io-error detach;
}
syncer {
        rate 100M;
}
}
resource web {
        on masternfs {
        device /dev/drbd0;
        disk /dev/sdb1;
        address 192.168.0.202:7899;
        meta-disk internal;
  }
        on backupnfs {
        device /dev/drbd0;
        disk /dev/sdb1;
        address 192.168.0.203:7899;
        meta-disk internal;
  }
}




4、创建供DRBD记录信息数据块

1
2
3
4
5
6
7
8
[iyunv@masternfs ~]# drbd admcreate-md web
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data blocksuccessfully created.
success
[iyunv@masternfs ~]# mkdir -p /usr/local/drbd/var/run/drbd  #创建资源目录
[iyunv@masternfs ~]# service drbd start




b7f077daba28145883efefb74f90f035.jpg

5、默认没有分主备节点的,需要设置
1
2
3
4
5
[iyunv@masternfs ~]# cat /proc/drbd
version: 8.4.4(api:1/proto:86-101)
GIT-hash:599f286440bd633d15d5ff985204aff4bccffadd build by phil@Build64R6, 2013-10-1415:33:06
0: cs:Connected ro:Secondary/Secondaryds:UpToDate/UpToDate C r-----
ns:64 nr:112 dw:176 dr:6088 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1wo:f oos:0





1
2
[iyunv@masternfs ~]# drbdadm -- --overwrite-data-of-peer primary web
[iyunv@db-backup ~]# drbdadm secondary web   #backupnfs服务器设置从节点




#再查看状态已经是主从
1
2
[iyunv@masternfs ~]# drbd-overview
  0:mysql/0 Connected Primary/Secondary UpToDate/UpToDate C r-----




说明:

  • cs:两台数据连接状态
  • ro:两台主机的状态
  • ds:磁盘状态是“UpToDate/UpToDate”,同步状态。

6、格式化并挂载分区
1
2
3
[iyunv@masternfs ~]# mkfs.ext4 /dev/drbd0
[iyunv@masternfs ~]# mkdir /web
[iyunv@masternfs ~]# mount /dev/drbd0 /web




三、安装配置NFS[iyunv@masternfs ~]# yum install -y nfs-utils
[iyunv@masternfs ~]# vi /etc/exports
/web 192.168.0.0/24(rw,no_root_squash)
[iyunv@masternfs ~]# service rpcbind start
[iyunv@masternfs ~]# service nfs start
[iyunv@masternfs ~]# chkconfig rpcbind on
[iyunv@masternfs ~]# chkconfig nfs on
四、安装配置Heartbeat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[iyunv@masternfs ~]# yum install heartbeat* -y
[iyunv@masternfs ~]# cd /usr/share/doc/heartbeat-3.0.4/
[root@masternfsheartbeat-3.0.4]# cp ha.cf authkeys haresources /etc/ha.d/
[root@masternfsheartbeat-3.0.4]# cd /etc/ha.d/
[iyunv@masternfs ha.d]# vi ha.cf
logfile /var/log/ha-log
logfacility local0    #如果未定义上述日志,默认写入/var/log/message
keepalive 2       #心跳间隔
deadtime 30       #死亡阀值
warntime 10       #警告时间
initdead 120      #首次启动heartbeat,等待多久才启动主服务资源
udpport  694      #连接端口
bcast eth0            #使用什么方式组织心跳,最好用ucast方式
auto_failback off     #当主节点故障恢复后,自动获取资源并取代从节点
node masternfs        #主节点主机名
node backupnfs        #备份节点主机名
ping 192.168.0.1      #选择ping节点,ping的越好对HA集群越稳定,建议使用网关




1
2
3
[iyunv@masternfs ~]# vi /etc/ha.d/authkeys
auth 2
2 sha1 HI!




  
1
[iyunv@masternfs ~]# masternfs IPaddr::192.168.0.204/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/web::ext4 killnfsd




参数说明:

  • masternfsIPaddr::192.168.0.204/24/eth0  #主机名,后跟虚拟IP地址、接口
  • drbddisk::web  #管理drbd资源
  • Filesystem::/dev/drbd0::/web::ext4 killnfsd   #文件系统,目录及格式,后跟nfs资源脚本

#killnfsd脚本

1
2
[iyunv@masternfs ~]# echo "killall -9 nfsd ; /etc/init.d/nfs restart ; exit 0" >>/etc/ha.d/resource.d/killnfsd
[iyunv@masternfs ~]# chmod +x /etc/ha.d/resource.d/killnfsd





1
2
3
[iyunv@masternfs ~]# chmod 600 /etc/ha.d/authkeys  #不修改权限会报错
[iyunv@masternfs ~]# service heartbeat start
[iyunv@masternfs ~]# chkconfig heartbeat on




五、测试高可用性

1、停掉masternfs服务器heartbeat服务,是否虚拟IP正常切换,可通过ip addr命令查看。

2、通过一台测试机, mount -t nfs 192.168.0.204:/web/media,当故障切换时,nfs无间断提供服务,提供完美冗余。

3、通过ha-log日志可以看出主释放资源,备接管资源。

d32327c894820ccf0ff35ce55ddd4a3a.jpg

a1d6005a69b9bba7dd2c8959a6961ee1.jpg
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142530-1-1.html 上篇帖子: HeartBeat+MySQL+DRBD 下篇帖子: drbd整合heartbeat实现自动选主及自动挂载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表