为了模拟客户现场坏盘,然后通过servicemag命令将客户现场的坏盘更换,首先我们在实验室无法用正常手段将磁盘标记为坏盘。这时我们只能用一些系统底层的命令将磁盘的数据块标记为坏块。
# tcli -e "inj add -m m -p no_wait -a pdchfail -did <disk id> -doff 0 -value 1"
例如:我们找到一个LD <dsp_9.usr.1>,找到这个LD里面的数据都对应到那个物理磁盘上的哪个chunklet。
root@1000878-1 Sat Apr 28 10:34:52: ~# showldch DSP_9.usr.1
Ldch Row Set PdPos Pdid Pdch State Usage Media Sp From To
0 0 0 0:11:0 5 33 normal ld valid N --- ---
<-- Marking this one as failed
1 0 0 1:11:0 14 102 normal ld valid N --- ---
2 0 0 0:12:0 6 35 normal ld valid N --- ---
3 0 0 1:12:0 15 31 normal ld valid N --- ---
root@1000878-1 Sat Apr 28 10:35:53: ~# showpd -c 5Id CagePos Type State Total OK Fail Free Uninit Unavail Fail OK Fail Free Uninit Fail
5 0:11:0 FC normal 1110 203 0 767 0 0 0 0 0 140 0 0
// 物理磁盘 PDID 5上没有坏的数据块
找到对应关系后,我们尝试对其中一个物理数据块标识为failed.
root@1000878-1 Sat Apr 28 10:36:22: ~# tcli -e "inj add -m m -p no_wait -a pdchfail -did 5 -doff 33 -value 1"
// 成功将一个坏的标记位写入到磁盘5的一个指定数据块上
我们再通过showpd -c 5 //检查磁盘5的状态,发现多个failed chunklet!
root@1000878-1 Sat Apr 28 10:37:52: ~# showpd -c 5
Id CagePos Type State Total OK Fail Free Uninit Unavail Fail OK Fail Free Uninit Fail
5 0:11:0 FC normal 1110 202 1 767 0 0 0 0 0 140 0 0
//我们这时再看看对应的LD状态,这个标记为坏块的数据块马上就开始重构。
~# showldch DSP_9.usr.1
Ldch Row Set PdPos Pdid Pdch State Usage Media Sp From To
0 0 0 0:11:0 5 33 normal relsrc failed N --- 5:101
//数据块33标记为坏块了,这时就会将这个数据块通过重构方式迁移到了5:101磁盘5的第101个chunklet。
~# showpd -c 5
Id CagePos Type State Total OK Fail Free Uninit Unavail Fail OK Fail Free Uninit Fail
5 0:11:0 FC normal 1110 203 0 766 0 0 1 0 0 140 0 0
// 这时候就发现坏块已经到了未被使用的数据块上了。
这样我们就完成了如何将物理磁盘上的某个chunklet标记为坏块的操作。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作