备用drbd+heartbeat+nfs的脑裂故障恢复

状态如下:
1,NFS挂载在NFS的主服务器,并且对外提供正常的服务,但是drbd-overview的状态是StandAlone.
[root@10.1.1.190 ~]$ drbd-overview
  1:nfs  StandAlone Primary/Unknown UpToDate/DUnknown r—– /nfs ext3 289G 142G 132G 52%
此时HA的VIP还是在该服务器,没有进行漂移,提示挂载的NFS也正常

2,NFS的备机服务器处于StandAlone状态.
  [root@10.1.1.189 /data]$ drbd-overview
  1:nfs  StandAlone Secondary/Unknown UpToDate/DUnknown r—–
此时备机并没有因为脑裂把HA的VIP抢过来,挂载NFS的资源.
整个集群没有脑裂,只是drbd的备机和主机处于StandAlone状态,所以整个集群是正常提供nfs挂载服务的,只是nfs的数据没有通过drbd实时的把块设备同步到备机.

解决步骤如下:
因为整个集群的是ok的,所以不需要考虑以哪台服务器的数据作为最新的数据来做Primary,只需要把Secondary能够连接到Primary重新把最新的数据同步即可
1,在Secondary操作如下:
[root@10.1.1.189 /data]$ drbdadm disconnect nfs   断开与drbd资源nfs

[root@10.1.1.189 /data]$ drbdadm secondary nfs

[root@10.1.1.189 /data]$ drbd-overview
  1:nfs  StandAlone Secondary/Unknown UpToDate/DUnknown r—–

做完上述3步查看drbd的状态依然是StandAlone ,没有和Primary建立起连接和同步数据的

2,在Primary操作如下:
[root@10.1.1.190 ~]$ drbd-overview
  1:nfs  StandAlone Primary/Unknown UpToDate/DUnknown r—– /nfs ext3 289G 142G 132G 52%

[root@10.1.1.190 ~]$ drbdadm connect nfs

[root@10.1.1.190 ~]$ drbd-overview     
  1:nfs  WFConnection Primary/Unknown UpToDate/DUnknown C r—– /nfs ext3 289G 142G 132G 52%

此时Primary的状态已经由StandAlone变成WFConnection

3,在Secondary操作如下:
[root@10.1.1.189 /data]$ drbd-overview
  1:nfs  StandAlone Secondary/Unknown UpToDate/DUnknown r—–

[root@10.1.1.189 /data]$ drbdadm — –discard-my-data connect nfs    #告诉drbd,Secondary的数据不正确,以Primary的为准

[root@10.1.1.189 /data]$ drbd-overview
  1:nfs  SyncTarget Secondary/Primary Inconsistent/UpToDate C r—–
        [=>………………] sync’ed: 13.8% (205176/236936)K

[root@10.1.1.189 /data]$ drbd-overview
  1:nfs  SyncTarget Secondary/Primary Inconsistent/UpToDate C r—–
        [==============>…..] sync’ed: 79.4% (51916/236936)K
同步一段时间后状态恢复
[root@10.1.1.189 /data]$ drbd-overview
  1:nfs  Connected Secondary/Primary UpToDate/UpToDate C r—–

4,此时Primary的状态如下:
[root@10.1.1.190 ~]$ drbd-overview
  1:nfs  SyncSource Primary/Secondary UpToDate/Inconsistent C r—– /nfs ext3 289G 142G 132G 52%
        [===========>……..] sync’ed: 63.8% (87264/236936)K

[root@10.1.1.190 ~]$ drbd-overview
  1:nfs  Connected Primary/Secondary UpToDate/UpToDate C r—– /nfs ext3 289G 142G 132G 52%

整个Secondary的脑裂恢复完成,恢复的过程中Primary正常对外提供NFS server服务.

 

DRBD的状态含义:
一个资源可能有以下连接状态之一:
StandAlone独立的:网络配置不可用。资源还没有被连接或者是被管理断开(使用drbdadm disconnect命令),或者是由于出现认证失败或者是裂脑的情况。
Disconnecting断开:断开只是临时状态,下一个状态将是StandAlone独立的。
Unconnected悬空:是尝试连接前的临时状态,可能的下一个状态为WFconnection和WFReportParams。
Timeout超时:与对等节点连接超时,也是临时状态,下一个状态为Unconected悬空。
BrokerPipe:与对等节点连接丢失,也是临时状态,下一个状态为Unconected悬空。
NetworkFailure:与对等节点失去连接后的临时状态,下一个状态为Unconected悬空。
ProtocolError. 与对等节点失去连接后的临时状态,下一个状态为Unconected悬空。
TearDown拆解:临时状态,对等节点连接关闭,下一个状态为Unconected悬空。
WFConnection.等待和对等节点建立网络连接。
WFReportParams:已经建立TCP连接,本节点等待从对等节点传来的第一个网络包。
Connected连接:Drbd已经建立连接,数据镜像现在可用,节点处于正常状态。
StartingSyncS:完全同步,有管理员发起的刚刚开始同步。未来可能的状态为SyncSource或PausedSyncS。
StartingSyncT:完全同步,有管理员发起的刚刚开始同步,下一状态为WFSyncUUID。
WFBitMapS:部分同步刚刚开始,下一步可能的状态:SyncSource或PausedSyncS。
WFBitMapT:部分同步刚刚开始,下一步可能的状态:WFSyncUUID。
WFSyncUUID:同步即将开始,下一步可能的状态:SyncTarget或PausedSyncT。
SyncSource:以本节点为同步源的同步正在进行。
SyncTarget:以本节点为同步目标的同步正在进行。
PausedSyncS:以本地节点是一个持续同步的源,但是目前同步已经暂停。可能是因为另外一个同步正在进行或者是使用命令drbdadm pause-sync暂停了同步。
PausedSyncT:以本地节点为持续的同步目标,但是目前同步已经暂停,这可能是因为另外一个同步正在进行或者是使用命令drbdadm pause-sync暂停了同步。
VerifyS:以本地节点为验证源的线上设备验证正在执行。
VerifyT:以本地节点为目标源的线上设备验证正在执行。

此条目发表在DRBD, HA分类目录,贴了, , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注