2012年(5)
分类: LINUX
2012-07-18 20:34:39
测试目的:当DRBD设备盘出现故障时,新盘替换坏盘是否状态正常,数据是否正确
声明:磁盘损坏,需关闭服务器电源,再进行替换磁盘操作。否则会对磁盘造成损害
测试1:
替换前 |
替换后 |
备注 |
DRBD正常运行,模拟数据盘损坏,降为从机,关闭服务器电源 |
将一块做过RAID0的同容量的磁盘替换原来坏掉的磁盘,重新引导会有磁盘错误信息(跳过),进入RAID管理界面,这时RAID卷组为1 of 3,此时发现第三个卷组没有盘标,故删除该卷。此时发现第二个卷组status为Inactive,故激活该卷,然后重新启动该服务器 |
启动成功后,DRBD会自动建立主从关系 drbd状态: cs:Connected ro:Secondary/Primary ds:Diskless/UpToDate
|
测试2:
替换前 |
替换后 |
备注 |
DRBD正常运行,模拟数据盘损坏,降为从机,关闭服务器电源 |
将一块裸盘(没有任何RAID)替换原来坏掉的磁盘,重新引导会有磁盘错误信息(跳过),进入RAID管理界面,这时RAID卷组为1 of 2,此时发现第二个卷组没有盘标,故删除该卷。将新盘做RAID0卷,然后重新启动该服务器 |
启动成功后,DRBD会自动建立主从关系 drbd状态: cs:Connected ro:Secondary/Primary ds:Diskless/UpToDate
|
当drbd已经建立好主从关系且磁盘状态Diskless/UpToDate
这时DRBD被称为运行在diskless模式,这种diskless运行模式会影响性能,但是服务将继续运行不受影响,实际上数据的读写都是发生在对端(不是本地)。
解决方案:
在ds状态为Diskless的服务器上执行:
drbdadm disconnect r0 //r0可以替换成all或者其他资源名称
drbdadm create-md r0 //建立DRBD块设备
drbdadm connect r0
查看DRBD状态:
[root@mysql-secondary ~]# cat /proc/drbd
version: 8.3.4 (api:88/proto:86-91)
GIT-hash: 70a645ae080411c87b4482a135847d69dc90a6a2 build by root@mysql-secondary, 2011-11-29 15:02:12
0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r----
ns:0 nr:244735648 dw:244727456 dr:0 al:0 bm:14936 lo:257 pe:29451 ua:256 ap:0 ep:1 wo:b oos:47255148
[>....................] sync'ed: 0.1% (285004/285136)M
finish: 0:09:55 speed: 79,268 (89,872) K/sec
同步完成,恢复到正常状态
[root@mysql-secondary ~]# cat /proc/drbd
version: 8.3.4 (api:88/proto:86-91)
GIT-hash: 70a645ae080411c87b4482a135847d69dc90a6a2 build by root@mysql-secondary, 2011-11-29 15:02:12
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----
ns:0 nr:291982604 dw:291982604 dr:0 al:0 bm:17822 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
注:DRBD数据盘损坏时,会自动降为从机,所以不考虑主机磁盘损坏或者备机磁盘损坏,主备机只是人为的定义