环境:
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.rpm2.安装依赖包:
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 web7.格式化并挂载分区:
准备:
[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由root@localhost.localdomain构建,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客户端在切换的时候会卡一段时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)