我有zfsonlinux(Centos 7)和raidz1。 我有麻烦:两个磁盘正在死亡。
第一个磁盘在SMART和Reallocated_Sector_Ct错误中存在Raw_Read_Error_Rate故障(磁盘已用尽空闲扇区来重新定位数据)
第二个磁盘有Reallocated_Sector_Ct错误,但仍有备份扇区。
我已经将第一个磁盘更改为新的磁盘,并且zfs已经开始重新同步。 开始的时候速度是〜2MB / s,但是一段时间后下降到20KB / s甚至更less,并且保持了几天的很小!
还有更多的错误:
Jul 9 06:14:09 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW! Jul 9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors Jul 9 06:14:11 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors Jul 9 06:44:08 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], FAILED SMART self-check. BACK UP DATA NOW! Jul 9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 488 Currently unreadable (pending) sectors Jul 9 06:44:12 shaggycat-desktop smartd[966]: Device: /dev/sdf [SAT], 107 Offline uncorrectable sectors
重新启动和导入池不起作用。
我可以使用dd_rescue复制第二个失败的磁盘到新的,并欺骗zpool? 我怎么能欺骗它,并用新磁盘导入池? 我使用/ dev / disk / by-id /来标识我的zpool中的磁盘。
pool: tank state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Sun Jul 5 15:16:17 2015 59.2G scanned out of 1.70T at 81.3K/s, (scan is slow, no estimated time) 14.8G resilvered, 3.40% done config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 ata-Hitachi_HDS721010CLA332_JP2940HQ2VTTDH-part1 ONLINE 0 0 0 replacing-1 DEGRADED 0 0 1 4455585976361728304 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-Hitachi_HDS721010CLA332_JP2940HQ2VTZUH-part1 ata-ST1000DM003-1ER162_W4Y1HJTP-part1 ONLINE 0 0 0 (resilvering) ata-WDC_WD10EALS-00Z8A0_WD-WCATR1714802-part1 ONLINE 0 0 0 ata-WDC_WD10EALS-00Z8A0_WD-WCATR1737637-part1 ONLINE 0 0 0 zpool list NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT tank 3.56T 1.70T 1.86T - - 47% 1.54x DEGRADED -
我使用这些软件版本:zfs-release-1-2.el7.centos.noarch libzfs2-0.6.4.1-1.el7.centos.x86_64 zfs-0.6.4.1-1.el7.centos.x86_64 zfs-dkms-0.6 .4.1-1.el7.centos.noarch
编辑:我首先认为这是镜像池,而不是raidz。
首先,zpoolreplace应该可以正常工作。 如果由于死磁盘运行缓慢而速度较慢,则可以先将其脱机/分离,以便从其他磁盘重build数据,并且不会尝试从坏磁盘读取数据。 虽然多个失败的磁盘不是一件好事。
导出池,使用ddrescue,然后导入也应该工作,只要旧的死盘在这一点从机器上删除。 导入通常会查看所有磁盘,以查看哪些池可以find并导入。
而且,如果您有多个失败的驱动器,那么同时更换它们没有任何问题,因为它只需要一次重新启动就可以以这种方式执行所有的磁盘。 当您replace在线磁盘时,它仍被用作读取/写入目标,直到replace完成。