DRBD+Heartbeat+NFS高可用图文实操

实验环境:CentOS 6.5 (64位)

服务器:drbd1  192.168.18.132 

服务器:drbd2  192.168.18.133


一.DRBD环境搭建

1.hosts解析

#vim /etc/hosts

2.同步时间

#ntpdate 

3.添加附加库

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

4.安装DRBD

# yum install drbd84 kmod-drbd84 -y

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

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

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

1.#yum -y install rpcbind nfs-utils

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

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


7.开始配置DRBD

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

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

# cat /etc/drbd.conf

#vim /etc/drbd.d/global_common.conf
global {
        usage-count yes;
}
common {
        protocol C;
disk {
        on-io-error detach;
}
syncer {
        rate 100M;                  #100M传输速度
 }
}
resource nfs {
        on dm1 {                    #主机名称
        device /dev/drbd1;           #drbd网络磁盘
        disk /dev/sdb1;                  #本地需要挂载的磁盘
        address 192.168.18.132:7899;       #主ip地址加drbd端口
        meta-disk internal;
  }
        on dm2 {
        device /dev/drbd1;
        disk /dev/sdb1;
        address 192.168.18.133:7899;
        meta-disk internal;
  }
}


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

# service drbd start    #两个节点都要执行

# chkconfig drbd on     #两个节点都要执行
# cat /proc/drbd

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

#drbdadm primary nfs
#drbdadm -- --overwrite-data-of-peer primary nfs
#watch -n1 'cat /proc/drbd'      #查看格式化进度

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

9.DRBD的使用

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


二、Heartbeat环境搭建

主从都安装依赖库

#yum -y install epel-release*

主从都安装heartbeat

#yum -y install heartbeat

1.修改配置文件

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

#chmod 600 authkeys  #给认证文件授权为600,否则启动会报错。

2.修改haresources文件

#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


# chkconfig heartbeat on
# netstat -tunlp|grep hear

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

#ip a | grep eth0

# df -h


查看从服务状态

#ip a | grep eth0    #没看到VIP是对的,只有主宕了才会切。

# df -h    #没有挂载盘是对的,主宕了才会挂载过来。


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

实验挂载盘的服务器:192.168.18.138

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

#mkdir ftp

安装NFS

#yum -y install rpcbind nfs-utils
#service rpcbind start
#chkconfig rpcbind on
ping一下挂载VIP是否能ping通。

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

挂在完成。

实验共享目录

#touch 566

读写成功。

6.测试高可用

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

#/etc/init.d/heartbeat stop

查看VIP是否释放

#ip a|grep eth0        #图下可以看到VIP已经释放

查看drbd资源是否释放

#df -h                   #可以看到图下资源已经释放。

#cat /proc/drbd          #查看资源状态变为从

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

#ip a|grep eth0    #已看到VIP飘移成功

#df -h      #DRBD资源切换成功,并挂载

# cat /proc/drbd         #我们看到dm2上的DRBD角色由原来的备,已转换成主


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章