更换主板后,我的 raidz 性能下降 - 找不到磁盘。丢失的磁盘以前是 /dev/sdh,但现在名为 /dev/sdg - 这是问题的原因。
在降级的 zpool 中,我设法使用其 uid(我使用 zdb 命令找到的)将丢失的磁盘脱机。因此,现在降级的池如下所示:
pool: Media
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: scrub completed after 2h10m with 0 errors on Thu May 1 14:02:43 2014
config:
NAME STATE READ WRITE CKSUM
Media DEGRADED 0 0 0
raidz1-0 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B0_WD-WMAY00171958 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00424060 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WMAY04082675 ONLINE 0 0 0
raidz1-1 DEGRADED 0 0 0
sde ONLINE 0 0 0
sdf ONLINE 0 0 0
sdh OFFLINE 0 0 0
但是,我无法成功用 /dev/sdg 替换 /dev/sdh:
zpool replace Media 3840188586753206212 /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 -f
invalid vdev specification
the following errors must be manually repaired:
/dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 is part of active pool 'Media'
... 我怎么解决这个问题?
答案1
发出命令
sudo blkid
您可能会发现您正在尝试使用 raidz 1-0 的成员或为 raidz 1-0 保留的备用成员来修复 raidz 1-1。无论如何,您都应该确保将来通过 id 而不是 /dev/sdx 来组装 raid 阵列
回应关于无视会员资格的评论。这是一个危险的做法。确保您的备份是最新的且可访问。这不是我的强项但我发现:
这个问题显然已经在这里被问到并回答过了更换 zpool 中的坏磁盘
我还在这里找到了可能相关或不相关的信息:
http://docs.oracle.com/cd/E19253-01/819-5461/gaypw/index.html
删除 zpool 的成员
zpool remove pool vdev
来源:http://manpages.ubuntu.com/manpages/lucid/man1/zpool.1M.html
答案2
我解决了这个问题。虽然不太清楚是怎么解决的。在某个时候(我想是在导出池并以不同的名称再次导入之后),驱动器不是通过其传统名称“/dev/sd*”来寻址的,而是通过其 ID 来寻址的。我没有做任何事情来强制 ID 寻址方案 - 它就这样发生了。
NAME STATE READ WRITE CKSUM
Media ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B0_WD-WMAY00171958 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00424060 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WMAY04082675 ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00788302 ONLINE 0 0 0
disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY01088068 ONLINE 0 0 0
disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 OFFLINE 0 0 0
每当我尝试用 /dev/sdg 替换上述故障设备时,计算机都会返回设备 /dev/sdg 忙的错误。事实证明,由于更改了 ID 寻址,池在某种程度上“自我修复”了。
当我意识到 zpool 中的条目已经指向我试图设置的设备 /dev/sdg 的 ID 时,我只需要将驱动器联机即可
zpool online Media /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609
并且池开始重新镀银。
顺便说一句:我还尝试从驱动器 /dev/sdg 中擦除数据以清除所有标签,并使驱动器忘记它已经是活动池的一部分。我不认为这有帮助,但也许它产生了我不知道的效果。dd 清除在上面提到的线程中进行了描述。
我希望这能帮助遇到类似问题的人。感谢花时间阅读我的问题的每个人。