5、在41上查看hdfs文件系统 bin/hadoop dfs -ls
查看现有的文件和目录。显示是正常的。
-rw-r--r-- 1 hdfs supergroup 1951937 2009-01-14 17:15 /user/hdfs/hello drwxr-xr-x - hdfs supergroup 0 2009-01-13 16:44 /user/hdfs/testdir
其他 用户映射
在41上和44上我们的都创建相同的用户/口令:bobo/bobo,但在/etc/passwd和/etc/group中可以看到,在两台机器上,用户和组所对应的useid和groupid是不同的,这样会导致,drbd切换时,drbd的存储在两台机器上映射到不一致的用户和组。因此需要在创建用户和组时指定useid和groupid。目前我们采用修改44的方式:
1 首先打开41上的/etc/passwd和/etc/group,得到bobo的useid和groupid值为1000。
2 在44上修改bobo的useid和groupid值为1000。 usermod -u 1000 bobo groupmod -u 1000 bobo
3 这样drbd切换时,就不会出现权限问题。
split brain问题处理(参考)
split brain实际上是指在某种情况下,造成drbd的两个节点断开了连接,都以primary的身份来运行。当drbd某primary节点连接对方节点准备发送信息的时候如果发现对方也是primary状态,那么会会立刻自行断开连接,并认定当前已经发生split brain了,这时候他会在系统日志中记录以下信息:“Split-Brain detected,dropping connection!”当发生split brain之后,如果查看连接状态,其中至少会有一个是StandAlone状态,另外一个可能也是StandAlone(如果是同时发现split brain状态),也有可能是WFConnection的状态。
错误状态
1 节点重新启动时,在dmesg中出现错误提示: drbd0: Split-Brain detected, dropping connection! drbd0: self
055F46EA3829909E:899EC0EBD8690AFD:FEA4014923297FC8:3435CD2BACCECFCB
drbd0: peer
7E18F3FEEA113778:899EC0EBD8690AFC:FEA4014923297FC8:3435CD2BACCECFCB
drbd0: helper command: /sbin/drbdadm split-brain minor-0 drbd0: meta connection shut down by peer.
2在44查看cat /proc/drbd,44运行为StandAlone状态 version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@backup, 2008-12-30 17:16:32
0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown r--- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:664
3在41查看cat /proc/drbd,41运行为StandAlone状态 version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@master, 2008-12-30 17:23:44
0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown r--- ns:0 nr:0 dw:4 dr:21 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:68
4 原因分析
由于节点重启导致数据不一致,而配置文件中没有配置自动修复错误的内容,因而导致握手失败,数据无法同步。
split brain有两种解决办法:手动处理和自动处理。
手动处理
1 在44上停止heartbeat
Heartbeat会锁定资源,只有停止后才能释放 /etc/init.d/heartbeat stop
2 在作为secondary的节点上放弃该资源的数据 在44上
/sbin/drbdadm -- --discard-my-data connect r0 3在作为primary的节点重新连接secondary 在41上
/sbin/drbdadm disconnect r0 /sbin/drbdadm connect r0 把41设置为主节点
/sbin/drbdadm primary r0 4在44上重新启动heartbeat /etc/init.d/heartbeat start
5 查看41状态 cat /proc/drbd,显示为Connected,已经恢复了正常。 version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@master, 2008-12-30 17:23:44
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---
ns:768 nr:0 dw:800 dr:905 al:11 bm:10 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0 6查看44状态 cat /proc/drbd,显示为Connected,已经恢复了正常。 version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@backup, 2008-12-30 17:16:32
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r---
ns:0 nr:768 dw:768 dr:0 al:0 bm:10 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
(实际采用的恢复方法)
先选择好一个备机,在备机上执行: sudo drbdadm secondary r0 sudo drbdadm disconnect r0
sudo drbdadm -- --discard-my-data connect r0 在主上执行:
sudo drbdadm connect r0
自动处理
通过/etc/drbd.conf配置中设置自动处理策略,在发生数据不一致时自动处理。自动处理策略定义如下:
1 after-sb-0pri.
当两个节点的状态都是secondary时,可以通过after-sb-0pri策略自动恢复。 1)disconnect
默认策略,没有自动恢复,简单的断开连接。 2)discard-younger-primary
在split brain发生前从主节点自动同步。 3)discard-older-primary
在split brain发生时从变成primary的节点同步数据。 4)discard-least-changes
在split brain发生时从块最多的节点同步数据。 5)discard-node-NODENAME 自动同步到名字节点
2 after-sb-1pri
当两个节点的状态只有一个是primary时,可以通过after-sb-1pri策略自动恢复。 1)disconnect
默认策略,没有自动恢复,简单的断开连接。 2)consensus
丢弃secondary或者简单的断开连接。 3)discard-secondary 丢弃secondary数据。 4)call-pri-lost-after-sb
按照after-sb-0pri的策略执行。
3 after-sb-2pri
当两个节点的状态都是primary时,可以通过after-sb-2pri策略自动恢复。 1)disconnect
默认策略,没有自动恢复,简单的断开连接。 2)violently-as0p
按照after-sb-0pri的策略执行。
3)call-pri-lost-after-sb
按照after-sb-0pri的策略执行,并丢弃其他节点。
4 配置自动恢复
编辑/etc/drbd.conf,找到resource r0部分,配置策略如下,所有节点完全一致。 #after-sb-0pri disconnect;
after-sb-0pri discard-younger-primary;
#after-sb-1pri disconnect;
after-sb-1pri discard-secondary;
#after-sb-2pri disconnect;
after-sb-2pri call-pri-lost-after-sb;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库利用heartbeat和drbd实现HDFS的双机热备(4)在线全文阅读。
相关推荐: