DRBD+HeatBeat+NFS实现文件存储高可用

实验环境:CentOS 6.5 (64位)

服务器:drbd1  192.168.18.132 

服务器:drbd2  192.168.18.133


一.DRBD环境搭建

1.hosts解析

[plain]  view plain  copy
  1. #vim /etc/hosts  

2.同步时间

[plain]  view plain  copy
  1. #ntpdate   

3.添加附加库

[plain]  view plain  copy
  1. (1)#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  
[plain]  view plain  copy
  1. (2)#rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm  

4.安装DRBD

[plain]  view plain  copy
  1. # yum install drbd84 kmod-drbd84 -y  

5.两台服务器上的分区/dev/sdb1作为drbd的网络mirror分区

[plain]  view plain  copy
  1. #fdisk /dev/sdb    备注,每个环境的磁盘名称可能不一样,用fdisk -L 查看一下磁盘名称为准。  

[plain]  view plain  copy
  1. #mkfs.ext4 /dev/sdb1        #在主上面做此操作。  
6.开始配置NFS(两个节点都要执行)

[plain]  view plain  copy
  1. 1.#yum -y install rpcbind nfs-utils  

[plain]  view plain  copy
  1. 2.# mkdir  /usr/local/ftp     #创建要存放的文件目录  
  2. 3.# vi /etc/exports  
[plain]  view plain  copy
  1. /usr/local/ftp *(rw,no_root_squash,no_all_squash,sync)  

[plain]  view plain  copy
  1. 4.# service rpcbind start  
  2. 5.# chkconfig rpcbind on  
  3. 6.# chkconfig nfs off      #NFS不需要启动,也不需要设置成开机启动,这些都将由后面的Heartbeat来完成。  
[plain]  view plain  copy
  1. 7.# netstat -tunlp|grep rpcbind      #查看rpcbind是否启动成功  


7.开始配置DRBD

[plain]  view plain  copy
  1. # modprobe drbd    #加载drbd模块到内核中(两个节点都要执行)  
[plain]  view plain  copy
  1. # lsmod | grep drbd      #查看drbd模块是否加载成功(两个节点都要执行)  

显示以上信息说明模块加载成功。

[plain]  view plain  copy
  1. # cat /etc/drbd.conf  

[plain]  view plain  copy
  1. #vim /etc/drbd.d/global_common.conf  
[plain]  view plain  copy
  1. global {  
  2.         usage-count yes;  
  3. }  
  4. common {  
  5.         protocol C;  
  6. disk {  
  7.         on-io-error detach;  
  8. }  
  9. syncer {  
  10.         rate 100M;                  #100M传输速度  
  11.  }  
  12. }  
  13. resource nfs {  
  14.         on dm1 {                    #主机名称  
  15.         device /dev/drbd1;           #drbd网络磁盘  
  16.         disk /dev/sdb1;                  #本地需要挂载的磁盘  
  17.         address 192.168.18.132:7899;       #主ip地址加drbd端口  
  18.         meta-disk internal;  
  19.   }  
  20.         on dm2 {  
  21.         device /dev/drbd1;  
  22.         disk /dev/sdb1;  
  23.         address 192.168.18.133:7899;  
  24.         meta-disk internal;  
  25.   }  
  26. }  

8.启动DRBD  
[plain]  view plain  copy
  1. # drbdadm create-md nfs       #激活前面配置的DRBD资源nfs(两个节点都要执行)  

[plain]  view plain  copy
  1. # service drbd start    #两个节点都要执行  

[plain]  view plain  copy
  1. # chkconfig drbd on     #两个节点都要执行  
[plain]  view plain  copy
  1. # cat /proc/drbd  

[plain]  view plain  copy
  1. #drbdsetup /dev/drbd1 primary      #初始化一个主机(这几步只在主节点上操作)  
  2. 注意:如果执行drbdsetup /dev/drbd1 primary的时候报图下所示,最后面加上“--o”即可。  

[plain]  view plain  copy
  1. #drbdadm primary nfs  
[plain]  view plain  copy
  1. #drbdadm -- --overwrite-data-of-peer primary nfs  
[plain]  view plain  copy
  1. #watch -n1 'cat /proc/drbd'      #查看格式化进度  

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

9.DRBD的使用

[plain]  view plain  copy
  1. # mkfs.ext4 /dev/drbd1           #在主上执行  
  2. # mount /dev/drbd1 /usr/local/ftp      #挂载在ftp文件上  
  3. 注意:secondary节点上不允许对DRBD设备进行任何操作,包括只读。所有的读写操作只能在主节点上进行,只有当主节点挂掉时,secondary节点才能提升为主节点,继续进行读写操作。  


二、Heartbeat环境搭建

主从都安装依赖库

[plain]  view plain  copy
  1. #yum -y install epel-release*  

主从都安装heartbeat

#yum -y install heartbeat

1.修改配置文件

[plain]  view plain  copy
  1. #cd /usr/share/doc/heartbeat-3.0.4/  
  2. #cp authkeys ha.cf haresources /etc/ha.d/  
  3. #cd /etc/ha.d  
  4. #vim authkeys    #打开下面两项:一共有三种认证方式供选择,第一种是CRC循环冗余校验,第二种是SHA1哈希算法,第三种是MD3哈希算法,其中他们的密码可以任意设置,但是两边密码必须保持一致。  

[plain]  view plain  copy
  1. #chmod 600 authkeys  #给认证文件授权为600,否则启动会报错。  

2.修改haresources文件

[plain]  view plain  copy
  1. #vim haresources  

再最底下加入这一行,设置VIP。

dm1 IPaddr::192.168.18.180/32/eth0 drbddisk::nfs Filesystem::/dev/drbd1::/usr/local/ftp::ext4 nfs
说明

dm1 IPaddr::192.168.18.180/32/eth0        #主机名 后跟虚拟IP地址、接口

drbddisk::nfs               #管理drbd资源的名称

Filesystem::/dev/drbd1::/usr/local/ftp::ext4 nfs       #文件系统::挂载的目录及格式::后跟nfs资源脚本


3.修改ha.cf文件

debugfile /var/log/ha-debug         #设定debug文件目录

logfile /var/log/ha-log                     #设定日志文件目录

logfacility  local0                             #利用系统日志打印日志

keepalive 2                                      #设定检查时间间隔为1s

deadtime 30                                    #设定在10s内没有心跳信号,则立即切换服务

warntime 10                                    #设定告警时间为5s(5s内没有收到对方的回应就报警)

initdead 120                                    #设定初始化时间为60s

udpport 694                                    #设定集群节点间的通信协议及端口为udp694监听端口(该端口可以修改)

ucast eth0 192.168.18.137           #设定心跳方式使用单播方式,并且是在eth0接口上进行单播,ip地址为对方的IP(网卡名称要一致性的IP)从机要改成主机的IP

auto_failback off                              #当主节点恢复后,是否自动切回,一般都设为off

node    dm1                                      #指定两个节点
node    dm2

ping 10.0.0.254                              #两个IP的网关

respawn hacluster /usr/lib64/heartbeat/ipfail           #使用这个脚本去侦听对方是否还活着(使用的是ICMP报文检测)

两边配置文件要一致!

4.启动Heartbeat(先主后从)

#service heartbeat start


[plain]  view plain  copy
  1. # chkconfig heartbeat on  
[plain]  view plain  copy
  1. # netstat -tunlp|grep hear  

查看主的IP是否有VIP地址出现

[plain]  view plain  copy
  1. #ip a | grep eth0  

[plain]  view plain  copy
  1. # df -h  


查看从服务状态

[plain]  view plain  copy
  1. #ip a | grep eth0    #没看到VIP是对的,只有主宕了才会切。  

[plain]  view plain  copy
  1. # df -h    #没有挂载盘是对的,主宕了才会挂载过来。  


5.测试目录是否能够共享

实验挂载盘的服务器:192.168.18.138

进入对应的要挂载的目录下创建同名的目录

[plain]  view plain  copy
  1. #mkdir ftp  

安装NFS

[plain]  view plain  copy
  1. #yum -y install rpcbind nfs-utils  
[plain]  view plain  copy
  1. #service rpcbind start  
[plain]  view plain  copy
  1. #chkconfig rpcbind on  
ping一下挂载VIP是否能ping通。

[plain]  view plain  copy
  1. #showmount -e 192.168.18.180        #showmount -e 挂载的VIP地址  
[plain]  view plain  copy
  1. #mount -t nfs 192.168.18.180:/usr/loacal/ftp /usr/local/ftp      #共享文件的目录挂载到138的/usr/local/ftp上  
[plain]  view plain  copy
  1. #df -h  

挂在完成。

实验共享目录

[plain]  view plain  copy
  1. #touch 566  

读写成功。

6.测试高可用

1.进到主服务器上,把服务关了看看。

[plain]  view plain  copy
  1. #/etc/init.d/heartbeat stop  

查看VIP是否释放

[plain]  view plain  copy
  1. #ip a|grep eth0        #图下可以看到VIP已经释放  

查看drbd资源是否释放

[plain]  view plain  copy
  1. #df -h                   #可以看到图下资源已经释放。  

[plain]  view plain  copy
  1. #cat /proc/drbd          #查看资源状态变为从  

2.进到从服务器查看VIP是否漂移过来。

[plain]  view plain  copy
  1. #ip a|grep eth0    #已看到VIP飘移成功  

[plain]  view plain  copy
  1. #df -h      #DRBD资源切换成功,并挂载  

[plain]  view plain  copy
  1. # cat /proc/drbd         #我们看到dm2上的DRBD角色由原来的备,已转换成主  


DRBD+Heartbeat+NFS的高可用至此结束,对高可用的测试,我们上面只是测试了一种情况,当然还有其它几种情况,留给大家去测试吧!


转自:http://blog.csdn.net/kjsayn/article/details/52871835


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值