向mdadm RAID6阵列添加新硬盘时遇‘dn does not have a valid v1.2 superblock’错误的求助
向mdadm RAID6阵列添加新硬盘时遇‘dn does not have a valid v1.2 superblock’错误的求助
嘿,我最近碰到个头疼的问题——我有个现成的mdadm RAID6阵列(就是md1),想加块新硬盘扩容,以前这么干过都成了,结果这次第一步就卡壳,加硬盘的时候报‘dn does not have a valid v1.2 superblock’错误。先给你看看我的阵列状态:
当前阵列状态(cat /proc/mdstat输出)
Personalities : [raid6] [raid5] [raid4] [raid1] [raid0] [raid10] md150 : active raid1 sdj[1] sdk[0] 1953382464 blocks super 1.2 [2/2] [UU] bitmap: 8/15 pages [32KB], 65536KB chunk md1 : active raid6 sde[17] sdc[13] sdi[16] sda[9] sdh[11] sdg[12] sdd[14] sdf[15] sdb[10] 68364158464 blocks super 1.2 level 6, 512k chunk, algorithm 2 [9/9] [UUUUUUUUU] bitmap: 0/10 pages [0KB], 524288KB chunk unused devices: <none>
mdadm --detail /dev/md1部分输出
/dev/md1: Version : 1.2 Creation Time : Thu Jun 10 18:23:07 2021 Raid Level : raid6 Array Size : 68364158464 (63.67 TiB 70.00 TB) Used Dev Size : 9766308352 (9.10 TiB 10.00 TB) Raid Devices : 9 Total Devices : 9 Persistence : Superblock is persistent
我自己琢磨了下,大概率是新硬盘上有残留的分区表、旧的mdadm超级块,或者我没先给硬盘做初始化?列了几个打算尝试的步骤,也想请大佬们给点建议:
先确认新硬盘路径(比如假设是
/dev/sdl),清除硬盘上的旧数据和分区表:dd if=/dev/zero of=/dev/sdl bs=1M count=100这步会擦除开头100MB,把旧的分区表、超级块都清掉,一定要注意别写错设备名!
如果阵列用的是分区而非整个硬盘,就给新硬盘创建和现有阵列硬盘同类型的分区;像我这种用整个硬盘的,直接用整个盘就行。
尝试把新硬盘添加到阵列:
mdadm --add /dev/md1 /dev/sdl如果还是报错,试试指定超级块版本:
mdadm --add --super-minor=1.2 /dev/md1 /dev/sdl另外可以先检查新硬盘有没有残留的mdadm信息:
mdadm --examine /dev/sdl如果输出里有旧的超级块信息,说明之前的清除没干净,再用命令专门清除mdadm超级块:
mdadm --zero-superblock /dev/sdl
有没有大佬碰到过类似的问题?或者我哪里操作错了?麻烦给指条明路!
备注:内容来源于stack exchange,提问作者user3337015
相关产品推荐
相关产品推荐

