DRBD+HeartBeat+NFS:配置NFS的高可用

说明:

上周研究了DRBD的安装和配置,今天研究下DRBD的第一个应用,利用DRBD+HeartBeat+NFS:配置NFS的高可用,作为集群中的底端共享存储

NFS主要存储WEB服务器上的程序代码和一些图片文件

参考:

http://network.51cto.com/art/201010/230237_all.htm

http://showerlee.blog.51cto.com/2047005/1212185

环境:

[[email protected] ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m

[[email protected] ~]# uname -r
2.6.32-358.el6.i686
dbm135 192.168.186.135 dbm135.51.com primary DRBD+HeartBeat+NFS
dbm134 192.168.186.134 dbm134.51.com secondary DRBD+HeartBeat+NFS
VIP 192.168.186.150

准备工作和安装DRBD:

参考:http://732233048.blog.51cto.com/9323668/1665979

安装配置HeartBeat:

安装HeartBeat:(dbm135,dbm134)

这里采用yum的方式安装HeartBeat(推荐)

centos6.4默认不带HeartBeat软件包,需要安装epel源

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[[email protected] src]# rpm -ivh epel-release-6-8.noarch.rpm 
[[email protected] src]# yum -y install heartbeat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

注意:yum安装时报错,解决方法:

[[email protected] ~]#vi /etc/yum.repos.d/epel.repo
#将所有baseurl行的注释去掉
#将所有mirrorlist行注释掉
[[email protected] src]# yum -y install heartbeat

注意:在yum安装HeartBeat时,第一次安装总是有问题,需要第二次安装才会成功(不知道是为什么)

在yum安装HeartBeat时,会把nfs相关的软件包和rpcbind一起安装

配置HeartBeat:(dbm135,dbm134)

Heartbeat配置共涉及以下几个文件:
/etc/ha.d/ha.cf          #主配置文件
/etc/ha.d/haresources    #资源文件
/etc/ha.d/authkeys       #认证相关
/etc/ha.d/resource.d/killnfsd      #nfs启动脚本,由HeartBeat管理
[[email protected] ~]# vi /etc/ha.d/ha.cf (dbm135)
logfile         /var/log/ha-log
#定义HA的日志名及存放位置

logfacility     local0
keepalive       2
#设定心跳(监测)时间为2秒

deadtime        5
#死亡时间定义为5秒

ucast           eth0 192.168.186.134
#采用单播方式,IP地址指定为对方IP,若有内网网卡,最好指定内网ip

auto_failback   off
#服务器正常后由主服务器接管资源,另一台服务器放弃该资源

node           dbm135.51.com dbm134.51.com
#定义节点,指定主机名 hostname
[[email protected] ~]# vi /etc/ha.d/ha.cf (dbm134)
logfile         /var/log/ha-log
#定义HA的日志名及存放位置

logfacility     local0
keepalive       2
#设定心跳(监测)时间为2秒

deadtime        5
#死亡时间定义为5秒

ucast           eth0 192.168.186.135
#采用单播方式,IP地址指定为对方IP,若有内网网卡,最好指定内网ip

auto_failback   off
#服务器正常后由主服务器接管资源,另一台服务器放弃该资源

node           dbm135.51.com dbm134.51.com
#定义节点,指定主机名 hostname

编辑双机互联验证文件authkeys :(dbm135,dbm134)

[[email protected] ~]# vi /etc/ha.d/authkeys
auth 1
1 crc
#需要将 /etc/ha.d/authkeys设为600的权限
[[email protected] ~]# chmod 600 /etc/ha.d/authkeys

编辑集群资源文件haresources:(dbm135,dbm134)

[[email protected] ~]# vi /etc/ha.d/haresources
dbm135.51.com IPaddr::192.168.186.150/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext4 killnfsd
##两台主机dbm135和dbm134的此文件内容一模一样,不要擅自把dbm134修改为dbm134.51.com
##主机名设置为此时的主节点的主机名,即dbm135.51.com
##Ipaddr:绑定虚拟ip,且绑定在eth0上
##drbddisk:指定drbd的资源r0
##Filesystem:指定drbd的设备/dev/drbd0,挂载点/data,文件系统ext4
##killnfsd:指定nfs的启动脚本,由heartbeat管理

编辑nfs脚本文件killnfsd:(dbm135,dbm134)

目的是为了重启nfs服务,因为NFS服务切换后,必须重新mount一下nfs共享出来的目录,否则会出现stale NFS file handle的错误

[[email protected] ~]#vi /etc/ha.d/resource.d/killnfsd
killall -9 nfsd; /etc/init.d/nfs restart; exit 0
[[email protected] ~]#chmod 755 /etc/ha.d/resource.d/killnfsd
[[email protected] ~]# cd /etc/ha.d/resource.d/
[[email protected] resource.d]# ll drbddisk Filesystem killnfsd IPaddr 
-rwxr-xr-x 1 root root 3162 Sep 27  2013 drbddisk
-rwxr-xr-x 1 root root 1903 Dec  2  2013 Filesystem
-rwxr-xr-x 1 root root 2273 Dec  2  2013 IPaddr
-rwxr-xr-x 1 root root   49 Jun 30 12:02 killnfsd
##四个脚本都存在

配置nfs:(dbm135,dbm134)

注意:nfs相关软件包,在安装HeartBeat时作为依赖包已经安装好了

[[email protected] ~]# vi /etc/exports
/data 192.168.186.0/255.255.255.0(rw,no_root_squash,sync)
[[email protected] ~]# chkconfig rpcbind on
[[email protected] ~]# chkconfig nfs off        #nfs不需要设置开机自动启动,因为nfs的启动由heartbeat管理
[[email protected] ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
##nfs不需要启动,会由heartbeat来启动

启动HeartBeat:(dbm135,dbm134)

注意:先在主节点上启动(dbm135是primary)

[[email protected] ~]# /etc/init.d/heartbeat start
[[email protected] ~]#chkconfig heartbeat on
[[email protected] ~]# ps -ef | grep heartbeat
root      1854     1  0 12:33 ?        00:00:00 heartbeat: master control process
root      1858  1854  0 12:33 ?        00:00:00 heartbeat: FIFO reader      
root      1859  1854  0 12:33 ?        00:00:00 heartbeat: write: ucast eth0
root      1860  1854  0 12:33 ?        00:00:00 heartbeat: read: ucast eth0 
root      2057  2034  0 12:33 ?        00:00:00 /bin/sh /usr/share/heartbeat/ResourceManager takegroup IPaddr::192.168.186.150/24/eth0
root      2283     1  0 12:33 ?        00:00:00 /bin/sh /usr/lib/ocf/resource.d//heartbeat/IPaddr start
root      2286  2283  0 12:33 ?        00:00:00 /usr/libexec/heartbeat/send_arp -i 200 -r 5 -p /var/run/resource-agents/send_arp-192.168.186.150 eth0 192.168.186.150 auto not_used not_used
root      2471  2057  0 12:33 ?        00:00:00 /bin/sh /usr/share/heartbeat/ResourceManager takegroup IPaddr::192.168.186.150/24/eth0
root      2566  1352  0 12:33 pts/1    00:00:00 grep heartbeat
[[email protected] ~]# ps -ef | grep nfs       #查看主节点上的nfs是否启动
root      2493     2  0 17:59 ?        00:00:00 [nfsd4]
root      2494     2  0 17:59 ?        00:00:00 [nfsd4_callbacks]
root      2495     2  0 17:59 ?        00:00:00 [nfsd]
root      2496     2  0 17:59 ?        00:00:00 [nfsd]
root      2497     2  0 17:59 ?        00:00:00 [nfsd]
root      2498     2  0 17:59 ?        00:00:00 [nfsd]
root      2499     2  0 17:59 ?        00:00:00 [nfsd]
root      2500     2  0 17:59 ?        00:00:00 [nfsd]
root      2501     2  0 17:59 ?        00:00:00 [nfsd]
root      2502     2  0 17:59 ?        00:00:00 [nfsd]
root      2530  1528  0 17:59 pts/1    00:00:00 grep nfs

测试:

测试一:

测试是否可以成功挂载

##nfs服务端,dbm135,primary
[[email protected] ~]# cd /data/
[[email protected] data]# ll
total 16
-rw-r--r-- 1 root root     0 Jun 30 10:15 file1
-rw-r--r-- 1 root root     0 Jun 30 10:15 file2
-rw-r--r-- 1 root root     0 Jun 30 10:15 file3
-rw-r--r-- 1 root root     0 Jun 30 10:15 file4
-rw-r--r-- 1 root root     0 Jun 30 10:15 file5
-rw-r--r-- 1 root root     0 Jun 30 18:01 file6
drwx------ 2 root root 16384 Jun 30 10:14 lost+found

在另外一台主机192.168.186.131上挂载nfs服务器共享出来的目录

[[email protected] ~]# showmount -e 192.168.186.150
Export list for 192.168.186.150:
/data 192.168.186.0/255.255.255.0
[[email protected] ~]# mount 192.168.186.150:/data /data
[[email protected] ~]# cd /data/
[[email protected] data]# ll
total 16
-rw-r--r-- 1 root root     0 Jun 30  2015 file1
-rw-r--r-- 1 root root     0 Jun 30  2015 file2
-rw-r--r-- 1 root root     0 Jun 30  2015 file3
-rw-r--r-- 1 root root     0 Jun 30  2015 file4
-rw-r--r-- 1 root root     0 Jun 30  2015 file5
-rw-r--r-- 1 root root     0 Jun 30  2015 file6
drwx------ 2 root root 16384 Jun 30  2015 lost+found
##挂载成功

测试二:主节点DRBD重启

在主节点把DRBD重启,看Secondary节点的变化,192.168.186.131挂载是否仍正常

时间: 2024-10-20 06:13:43

DRBD+HeartBeat+NFS:配置NFS的高可用的相关文章

heartbeat安装配置及httpd高可用简单示例

注意事项: 1.节点名称:hostname./etc/hosts 2.ssh互信 3.节点时间同步 heartbeat的三个配置文件: authkeys:通信密钥文件 ha.cf:heartbeat服务配置文件 haresources:资源管理配置文件 安装配置(系统为CentOS6.5): WAN IP:192.168.101.168 node1:192.168.101.21 node2:192.168.101.22 1.配置node1.node2节点名称.ssh互信.时间同步 node1:

高可用集群技术之heartbeat+NFS实现web服务高可用(文本方式配置接口--gui图形配置)

一.高可用集群基本概念   什么是高可用技术呢?在生产环境中我既要保证服务不间断的服务又要保证服务器稳定不down机,但是异常还是会发生,比如说:服务器硬件损坏...导致服务器down机,我该如何保证服务器down机后继续提供服务呢?这时我就应该请出高可用技术来帮忙了,当我们的服务器发生故障后不能继续时,高可用集群技术解决将业务及服务自动转移至其他主机服务器上继续服务,保证服务架构不间断运行. 高可用集群的架构层次: 后端主机层: 这一层主要是正在运行在物理主机上的服务. 2.Message l

DRBD+Heartbeat+Mysql:配置mysql的高可用

说明: 今天接着研究DRBD的第二个应用,利用DRBD+Heartbeat+Mysql:配置mysql的高可用 环境: [[email protected] ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m [[email protected] ~]# uname -r 2.6.32-358.el6.i686 dbm137 192.168.186.137 dbm137.51.com primary DRBD+Hear

CentOS6.5安装DRBD+MariaDB+Heartbeat实现数据库集群高可用

本实验使用两台服务器搭建: 系统                  CentOS6.5 tese02              IP:192.168.1.244 test03               IP:192.168.1.245 DRBD               版本:8.4.6 DRBD-UTIL       版本:8.9.2 MariaDB           版本:10.0.17 Heartbeat         版本:3.0.4 VIP                  

heartbeat v2版CRM的高可用web集群的实现

上篇文章:heartbeat v1版CRM的高可用集群的实现 集群架构图 : 主节点(172.16.31.10) 客户端(172.16.31.12) Vitual IP(172.16.31.166)                            NFS IP(172.16.31.12) 从节点(172.16.31.11) 注:心跳信息传递借助eth0网卡实现 网络以及IP地址规划如下所示: 节点类型     IP地址规划          主机名      类型 主用节点     eth

使用drbd结合corosync实现mysql的高可用集群服务

DRBD:Distributed Replicated Block Dvice 分布式复制块设备,它可以将两个主机的硬盘或者分区做成镜像设备,类似于RAID1的原理,只不过它会将主节点的数据主动通过网络同步到从节点做成镜像,当主节点发生故障,让从节点成为主节点,因为是镜像设备,所以数据不会丢失.corosync在这里的作用就是将drbd通过pacemaker做成高可用服务的资源,以便于主从节点间的自动切换.drbd由于使用各节点之间自身的硬盘设备,因此对于需要共享存储的场景不失为一种节约成本的解

drbd与corosync/pacemaker 结合构建高可用mariadb服务

drbd与corosync/pacemaker 结合构建高可用mariadb drbd介绍: 高可用节点之间为了使切换节点时数据一致,不得不使用共享存储,共享存储一般只有两种选择:NAS 和 SAN.NAS是文件系统级别的共享,性能低下,访问也受限制,使用时有诸多不变:SAN块级别共享存储,但又太贵.当资金不足时,就可以考虑drbd. drbd是跨主机的块设备镜像系统,一主一从(两个主机只能有一个能进行写操作,slave主机只能接受master主机传过来的数据).drbd是工作于内核中的,工作时

lvs+heartbeat+ldirectord实现Director的高可用

测试环境: OS:rhel6 Director1:192.168.1.121  heartbeat  heartbeat-ldirectord  ipvsadm  VIP  hb_gui Director2:192.168.1.122  heartbeat  heartbeat-ldirectord  ipvsadm  VIP RS1:192.168.1.111  httpd  VIP RS2:192.168.1.112  httpd  VIP VIP:192.168.1.160 LVS实现DR

heartbeat+iscsi+mysql实现双机高可用

8.heartbeat+iscsi+mysql实现双机高可用 虚拟地址的迁移 iscsi提供存储共享 (mysql 是application  也可以是ftp web等) 在iscsi服务器上:10.0.2.220 必修有两块磁盘./dev/sdb是用来共享的.   (1)安装iscsi服务器端软件    # yum install scsi-target-utils        (2)设置配置文件进行iscsi共享    # vim /etc/tgt/targets.conf    <tar

Keepalived+MariaDB10配置双主高可用数据库

Keepalived+MariaDB10配置双主高可用数据库 OS RS 子网掩码 路由网关 Centos6.6 MariaDB10 Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 255.255.255.252 Centos6.6 MariaDB10 Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP:192.168.