DRBD+HeartBeat+NFS 搭建高可用文件共享服务器笔记

DRBD+HeartBeat+NFS 搭建高可用文件共享服务器笔记,第1张

DRBD+HeartBeat+NFS搭建高可用文件共享服务器笔记

环境:

CentOS6.5_x64,两个硬盘,使用sdb1作为drbd分区(sdb1无需格式化和挂载即可设置分区)

主NFSeth0:192.168.140.128(心跳、drbd、NFS服务器)

备份NFSeth0:192.168.140.131(心跳,DRBD,NFS服务器)

贵宾:192.168.140.133


客户端:192.168.140.132(nfs客户端)



1.添加主机记录(主记录和备用记录):

主nfs

192168140131备份nfs



二。安装DRBD(主动和备用):

1.安装epel源:

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


2.安装依赖包:

yum install -y gcc gcc-c++ make perl kernel-devel kernel-headers flex drbd84-utils kmod-drbd84


如果出现错误:错误:无法检索资料档案库:epel的metalink。请验证其路径,然后重试

解决方案:删除[epel]下baseurl前的#号,并在mirrorlist前添加#号。


3.安装drbd:

wget http://oss.linbit.com/drbd/8.4/drbd-8.4.4.tar.gz tar xvf drbd-8.4.4.tar.gz cd drbd-8.4.4 ./configure --prefix=/usr/local/drbd --with-km make KDIR=/usr/src/kernels/`uname -r`/ make install mkdir -p /usr/local/drbd/var/run/drbd cp /usr/local/drbd/etc/rc.d/init.d/drbd  /etc/rc.d/init.d/ chkconfig --add drbd chkconfig drbd on cp drbd/drbd.ko /lib/modules/`uname -r`/kernel/lib/ modprobe drbd lsmod | grep drbd

如果modprobedrbd报告错误,可以通过yuminstallkernel*进行更新。您需要重启系统并重新安装。


4.配置DRBD

cd /usr/local/drbd/etc/drbd.d mv global_common.conf global_common.conf.bak


再次建立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.140.128:7899;                 meta-disk internal;         }         on backupnfs {                 device /dev/drbd0;                 disk /dev/sdb1;                 address 192.168.140.131:7899;                 meta-disk internal;         } }


5.创建DRBD记录信息数据块

drbdadm create-md web service drbd start                    #(主备一起启动)


6.设置主节点和备用节点:

主人:

drbdadm -- --overwrite-data-of-peer primary web

准备:

drbdadm secondary web


7.格式化并挂载分区:

准备:

[root@masternfs opt]# mkfs.ext4 /dev/drbd0  mke2fs 1.41.12 (17-May-2010) mkfs.ext4: Wrong medium type while trying to determine filesystem size

错误,因为这个分区不能在待机状态下 *** 作。


主人:

[root@backupnfs ~]# mkfs.ext4 /dev/drbd0 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5241029 blocks 262051 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks:          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,          4096000 Writing inode tables: done                             Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first.  Use tune2fs -c or -i to override.


8.测试:

主人:

cd /data/ mkdir test   #建立一个文件夹,测试用 umount /data   #卸载分区 drbdadm secondary web    #把本节点设为备节点

检查drbdadm角色网站的状态。此时会显示两个辅助节点,然后将另一个备用节点设置为主节点,看看新创建的文件夹是否还在。


准备:

drbdadm primary web        #设成主节点 mount /dev/drbd0 /data     #挂载分区

结果测试文件夹还在!


查看资源的连接状态。

[root@node1~]#drbdadmcstater1

连接的

资源的连接状态;资源可能具有下列连接状态之一

独立:网络配置不可用;资源尚未连接或无法断开连接(使用drbdadmdisconnect命令),或者由于身份验证失败或裂脑。

断开连接:断开连接只是一个临时状态,下一个状态是单机。

未连接挂起空:是尝试连接前的临时状态,下一个状态可能是WFconnection和WFReportParams。

超时超时:与对等节点的连接超时,也是临时状态,下一个状态是未连接挂起空

BrokerPipe:与对等节点的连接丢失,也处于临时状态,下一个状态是uncconnected空

NetworkFailure:与对等节点推送连接后的临时状态,下一个状态是uncconnected空

ProtocolError:与对等节点推送连接后的临时状态,下一个状态是uncconnected空

拆机反汇编:临时状态,对等节点关闭,下一状态未连接空

WFConnection:等待与对等节点的网络连接。

WFReportParams:TCP连接已建立,此节点正在等待来自对等节点的第一个网络数据包。

已连接:DRBD已建立连接,数据镜像现在可用,节点状态正常。

StartingSyncS:完全同步,管理员发起的同步刚刚开始,未来可能的状态是SyncSource或PausedSyncS。

StartingSyncT:完全同步,管理员发起的同步刚刚开始,下一个状态是WFSyncUUID。

WFBitMapS:部分同步刚刚开始,下一个可能的状态是SyncSource或PausedSyncS。

WFBitMapT:部分同步刚刚开始,下一个可能的状态是WFSyncUUID。

WFSyncUUID:同步即将开始。下一个可能的状态是SyncTarget或PausedSyncT。

SyncSource:正在将此节点作为同步源进行同步。

Sync:正在与作为同步SyncTarget的此节点进行同步。

PausedSyncS:本地节点是连续同步的源,但当前同步已暂停,可能是因为另一个同步正在进行中,或者命令(drbdadmpause-sync)用于暂停同步。

PausedSyncT:本地节点是连续同步的目标,但同步目前已暂停。这可能是因为另一个同步正在进行中,或者命令(drbdadmpause-sync)用于暂停同步。

验证:正在执行以本地节点作为验证源的在线设备验证。

VerifyT:正在执行以本地节点为验证目标的在线设备验证。

查看资源角色的命令


[root@node1~]#drbdadm角色r1

主要/次要(前面的当前节点)

Parimarymaster:资源当前是主资源,可能正在被读取或写入。如果不是双主,只会出现在两个节点中的一个上。

次要:资源当前是次要的,它通常从对等节点接收更新。

未知:资源的角色当前未知,本地资源不会处于这种状态。

查看硬盘状态


[root@node1~]#drbdadmdstater1

最新的/最新的

本地和对等节点的硬盘可能处于以下状态之一:

无盘无盘:没有本地块设备分配给DRBD,这意味着没有可用的设备,或者drbdadm命令用于手动分离,或者底层I/O错误导致自动分离。

附:读取无数据时的瞬时状态。

失败:本地绘图设备报告的I/O错误的下一个状态是无盘无盘。

协商:连接DRBD被设置为不读取数据之前的瞬时状态。

不一致:数据不一致,在两个节点上出现该状态后(初始完全同步前)立即创建新的资源。此外,在同步(同步目标)期间,此状态出现在一个节点上。

过时:数据资源是一致的,但是过时了。

DUnknown:当对等节点网络连接不可用时,会出现这种状态。

一致:未连接节点的数据是一致的。建立连接后,它会确定数据是最新的还是过时的。

最新:最新一致的数据状态,即正常状态。

查看同步进度


[root@node1~]#cat/proc/drbd或execute/usr/local/drbd/sbin/drbd-overview

版本:8.4.3(api:1/proto:86-101)

GIT-hash:89a294209144b68ADB3ee85a73221f964d3ee515由[email protected]构建,2016-04-2420:16:24

0:cs:SyncSourcero:主/辅助ds:最新/不一致的Cr-

ns:2767088NR:0dw:0dr:2774680al:0BM:168lo:0PE:1ua:7AP:0EP:1wo:fOOS:18202972

[=>;..................]同步:13.3%(17776/20476)M

完成时间:0:12:59速度:23,344(22,492)公里/秒

可以看到进度已经完成13.3%,传输速度约22m/s。

注意:

是磁盘状态信息。

Dw是磁盘写信息。

Dr是磁盘读取信息。




三。安装NFS:

yum -y install nfs-utils rpcbind cat > /etc/exports << EOF /data 192.168.140.132/24(rw,no_root_squash)  #(IP为客户机的IP) EOF service rpcbind start service nfs start chkconfig rpcbind on chkconfig nfs on

四。安装和配置心跳

yum install heartbeat* -y cd /usr/share/doc/heartbeat-3.0.4 cp ha.cf authkeys haresources /etc/ha.d/ cd /etc/ha.d/ cat > authkeys << EOF auth 2 2 sha1 HI! EOF chmod 600 authkeys cat > ha.cf << EOF 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.140.2 EOF cat > haresources << EOF masternfs IPaddr::192.168.140.133/24/eth0 drbddisk::web Filesystem::/dev/drbd0::/data::ext4 killnfsd EOF cat > resource.d/killnfsd << EOF killall -9 nfsd ; /etc/init.d/nfs restart ; exit 0 EOF chmod +x resource.d/killnfsd cp /opt/drbd-8-4.4/scripts/drbddisk  /etc/ha.d/resource.d/    #源码包找到drbddisk脚本 chmod 755 /etc/ha.d/resource.d/drbddisk   service heartbeat start

遇到错误:

heartbeat:udpport设置必须在媒体语句heartbeat[2244]:2016/01/28_17:38:57错误:keyfile[/etc/ha.d//authkeys]上的权限错误,建议600。

心跳[2244]:2016/01/28_17:38:57错误:认证配置错误。

心跳[2244]:2016/01/28_17:38:57错误:配置错误,心跳未启动。

解决方案:

chmod600认证密钥


错误报告:

ResourceManager(默认)[2251]:2016/01/27_23:44:39错误:找不到资源脚本drbddisk

解决方案:

cd/opt/drbd-8.4.4

CPscripts/drbddisk/etc/ha.d/resource.d/

chmod755/etc/ha.d/resource.d/drbddisk


主从启动心跳后,看VIP能不能PING通,然后做一个失败测试,看IP会不会自动迁移,drbd分区会不会自动挂载,nfs功能是否正常。

美中不足:虽然可以自动切换,但是nfs客户端在切换的时候会卡一段时间。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/778967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存