一、概述

1、架构图

2、软件简介

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

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

3、资源分配

系统:CentOS6.5_x64

主机名

角色

IP地址

masternfs

主NFS

eth0:192.168.0.202/24

backupnfs

备NFS

eth0:192.168.0.203/24

VIP

192.168.0.204/24

4、配置两台hosts记录

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

192.168.0.202 masternfs

192.168.0.203 backupnfs

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

安装epel源:

rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

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

1、安装依赖包

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

2、安装DRBD并加载到内核

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

3、配置DRBD

[root@masternfs ~]# cd /usr/local/drbd/
[root@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记录信息数据块

[root@masternfs ~]# drbd admcreate-md web
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data blocksuccessfully created.
success
[root@masternfs ~]# mkdir -p /usr/local/drbd/var/run/drbd  #创建资源目录
[root@masternfs ~]# service drbd start

5、默认没有分主备节点的,需要设置

[root@masternfs ~]# cat /proc/drbd
version: 8.4.4(api:1/proto:86-101)
GIT-hash:599f286440bd633d15d5ff985204aff4bccffadd build by phil@Build64R6, 2013-10-1415:33:060: 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
[root@masternfs ~]# drbdadm -- --overwrite-data-of-peer primary web
[root@db-backup ~]# drbdadm secondary web   #backupnfs服务器设置从节点

 #再查看状态已经是主从

[root@masternfs ~]# drbd-overview0:mysql/0 Connected Primary/Secondary UpToDate/UpToDate C r-----

说明:
cs:两台数据连接状态

ro:两台主机的状态

ds:磁盘状态是“UpToDate/UpToDate”,同步状态。

6、格式化并挂载分区

[root@masternfs ~]# mkfs.ext4 /dev/drbd0
[root@masternfs ~]# mkdir /web
[root@masternfs ~]# mount /dev/drbd0 /web

三、安装配置NFS

[root@masternfs ~]# yum install -y nfs-utils
[root@masternfs ~]# vi /etc/exports
/web 192.168.0.0/24(rw,no_root_squash)
[root@masternfs ~]# service rpcbind start
[root@masternfs ~]# service nfs start
[root@masternfs ~]# chkconfig rpcbind on
[root@masternfs ~]# chkconfig nfs on

四、安装配置Heartbeat

[root@masternfs ~]# yum install heartbeat* -y
[root@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/
[root@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集群越稳定,建议使用网关
[root@masternfs ~]# vi /etc/ha.d/authkeys
auth 2
2 sha1 HI!
[root@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脚本

[root@masternfs ~]# echo "killall -9 nfsd ; /etc/init.d/nfs restart ; exit 0" >>/etc/ha.d/resource.d/killnfsd
[root@masternfs ~]# chmod +x /etc/ha.d/resource.d/killnfsd
[root@masternfs ~]# chmod 600 /etc/ha.d/authkeys  #不修改权限会报错
[root@masternfs ~]# service heartbeat start
[root@masternfs ~]# chkconfig heartbeat on

五、测试高可用性

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

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

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

DRBD+Heratbeat+NFS高可用文件共享存储相关推荐

  1. CentOS7搭建keepalived+DRBD+NFS高可用共享存储

    CentOS7搭建keepalived+DRBD+NFS高可用共享存储 一.服务器信息 IP地址 类型 主机名 操作系统 内存 磁盘 172.25.10.100 主服务器 node1 centos7 ...

  2. CentOS7.5搭建Heartbeat+DRBD+NFS高可用共享存储

    在一般的网络架构的设计中,如果前端web做了负载均衡,后端存储都会用到共享存储,在并发不大.数据量不大的情况下,nfs是一个不错共享存储方案,但是nfs存在单点故障的问题,要想保证nfs的高可用,就要 ...

  3. drbd+keepalived nfs高可用方案实践

    实验环境 系统CentOS 6.5 X64 Ip:172.16.25.162 172.16.25.163 epel源 每台主机有/dev/sdb1: 1073 MB挂载点/test供drbd使用 先升 ...

  4. heartbeat V2实现MySQL+NFS高可用

    heartbeatV2实现MySQL+NFS高可用  实验前准备 1.时间需要同步,建议使用NTP服务器同步时间并且创建时间同步计划 #ntpdate 172.16.0.1 //第一个节点#ntpda ...

  5. 故障转移集群搭建高可用文件共享服务器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.故障转移集群是什么? 二.什么是仲裁盘? 三.添加故障转移集群功能 四.故障转移集群的建立 五.配置集群仲裁盘 六 ...

  6. corosync+pacemaker+drbd构建mysql高可用平台的简单案例

    写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. 案例拓扑图 说明: ansible主机主要作用在于配置和安装两台corosync+pacemake ...

  7. Mysql+Heartbeat+Drbd生产环境高可用部署若干问题解惑

    Mysql+Heartbeat+Drbd生产环境高可用部署若干问题解惑: ############################################################ # ...

  8. 百度可观测系列 | 如何构建亿级指标的高可用 TSDB 存储集群?

    [百度云原生导读]在前一篇<采集亿级别指标,Prometheus 集群方案这样设计中>,我们为大家介绍了针对针对亿级指标场景,百度云原生团队基于Prometheus 技术方案的研究,包括资 ...

  9. NFS 高可用方案(NFS+keepalived+Sersync)

    NFS 高可用方案(NFS+keepalived+Sersync) 1. 简述 1.1 介绍 本方案 NFS 的高可用方案,应用服务器为 Client ,两台文件服务器分别Master和 Slave, ...

  10. corosync/openais+pacemaker+drbd+web实现高可用群集

    拓扑图: 配置前提: 1.节点的名字必须跟uname -n的名字相同,而且两个主机必须能通过主机名来访问.尽量不通过DNS来访问.时钟时间保持一样. 2.双方的通信要必须通过SSL的无障碍通信机制 3 ...

最新文章

  1. .net core实现跨域
  2. 新功能抢先看!Windows 11 2022 版全新 ISO 镜像来了+下载
  3. Php jsondb,JsonDB-PHP
  4. 用SQL中的isnull函数注意了
  5. python 取余_Python-基本使用
  6. python使用lxml解析html获取页面内所有叶子节点的xpath路径
  7. 理财通 for N9
  8. ssm教务排课系统MVC学校专业选修课程安排选课信息jsp源代码数据库mysql
  9. PayPal支付(Java开发)完整版
  10. [Kattis-crisscrosscables] Criss-Cross Cables (贪心+优先队列)
  11. 需要来自administrator的权限才能删除
  12. 大学一级计算机字处理模拟题,大学计算机一级模拟操作题2
  13. 微信小程序九宫格布局
  14. 二叉树所有节点数、叶子节点数的计算
  15. 乘风破浪、厚积薄发国产服务器软件: LinWin Http Server
  16. 杨晓峰Java核心36讲学习笔记
  17. vue2.0 axios 登录post请求自动读取Set-Cookie设置
  18. 通过jsp向mysql批量导入数据_通过JSP+JavaBean对mysql进行添加数据的操作
  19. 刚刚,FBI发布《2017年网络犯罪报告》,导致最多损失的原因竟是它?
  20. PyAutoGUI—自动化操作工具(1)基础入门

热门文章

  1. vscode——配置终端集成bash和cmd
  2. [CF600E]Dsu on tree
  3. POJ2536 Gopher II【二分图最大匹配】
  4. 每日的代码量真的重要么?
  5. request.get_full_path() 和request.path区别
  6. 【NOIP2013模拟联考6】选课
  7. [基础知识]在PeopleSoft中SMTP设置不生效如何查找问题
  8. [Unity3D]自己动手重制坦克舰队ArmadaTank
  9. CSS3常用功能 旋转等
  10. asp.net支持多文件上传的服务器控件