跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • zfs 三个 ssd 做 mirror 坏了两个,剩下一个也有错误,如何恢复数据和排查原因?
未分類
2 2 月 2021

zfs 三个 ssd 做 mirror 坏了两个,剩下一个也有错误,如何恢复数据和排查原因?

zfs 三个 ssd 做 mirror 坏了两个,剩下一个也有错误,如何恢复数据和排查原因?

資深大佬 : woyaojizhu8 2

我的笔记本是 dell precision 7740,插了 5 个 ssd,一个是 windows10 系统盘,一个是 ubuntu 20.04 (我日常使用的系统)系统盘,还有一个 zfs 池,包括三个 1t ssd,组成形式为 mirror,存放数据。配置好后一年都默默使用,没有查看过状况,直到最近查看才发现其中两个都 faulted 了。

sudo zpool status -v
pool: tankmain
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://zfsonlinux.org/msg/ZFS-8000-8A
scan: resilvered 91.2G in 0 days 00:20:39 with 0 errors on Wed Feb 10
17:30:23 2021
config:

NAME STATE READ WRITE CKSUM
tankmain DEGRADED 0 0 0
mirror-0 DEGRADED 28 0 0
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500057 DEGRADED 47 0 220
too many errors
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500063 FAULTED 32 0 2
too many errors
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500220 FAULTED 22 0 3
too many errors`

因为三个 ssd 当初都是买的新的,到手检查状况都不错,到现在使用也才一年,所以平时都没管过。现在我怎么也不敢相信两个 ssd 都不行了。检查 smart 信息也没有异常。 之后我抢救了部分数据,也就是把数据从内置固态盘( zpool )转移到外置固态盘,使用 rsync -avcXP 两遍来确保数据正确。但是有部分数据在第一遍时会提示校验错误(failed verification — update discarded),第二遍却无报错。实际查看,文件应该是损坏了。然后我重启了,重启之后的状态:
sudo zpool status -v
pool: tankmain
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 Feb 14 15:38:53 2021
40.5G scanned at 251M/s, 11.1G issued at 68.8M/s, 755G total
23.1G resilvered, 1.47% done, 0 days 03:04:30 to go
config:

NAME STATE READ WRITE CKSUM
tankmain DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500057 DEGRADED 0 0 0 too many errors
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500063 ONLINE 0 0 7 (resilvering)
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500220 ONLINE 0 0 11 (resilvering)

待它 resilver 完毕:

sudo zpool status -v
pool: tankmain
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using ‘zpool clear’ or replace the device with ‘zpool replace’.
see: http://zfsonlinux.org/msg/ZFS-8000-9P
scan: resilvered 83.5G in 0 days 00:10:26 with 0 errors on Sun Feb 14 15:49:19 2021
config:

NAME STATE READ WRITE CKSUM
tankmain DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500057 DEGRADED 2 0 9 too many errors
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500063 ONLINE 0 0 15
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500220 ONLINE 0 0 19

errors: No known data errors
接着我进行了 zfs scrub,然后没过多久后两个 ssd 又 faulted 了:

sudo zpool status -v
pool: tankmain
state: DEGRADED
status: One or more devices are faulted in response to persistent errors.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Replace the faulted device, or use ‘zpool clear’ to mark the device
repaired.
scan: scrub in progress since Sun Feb 14 15:56:49 2021
209G scanned at 1.76G/s, 903M issued at 7.59M/s, 755G total
849K repaired, 0.12% done, no estimated completion time
config:

NAME STATE READ WRITE CKSUM
tankmain DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500057 DEGRADED 3 0 9 too many errors (repairing)
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500063 FAULTED 32 0 1.90K too many errors (repairing)
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500220 FAULTED 64 0 419 too many errors (repairing)

待它 repair 完毕:

sudo zpool status -v
pool: tankmain
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 970K in 0 days 00:29:42 with 213 errors on Sun Feb 14 16:26:31 2021
config:

NAME STATE READ WRITE CKSUM
tankmain DEGRADED 0 0 0
mirror-0 DEGRADED 168 0 0
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500057 DEGRADED 327 0 2.34K too many errors
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500063 FAULTED 32 0 690K too many errors
nvme-PLEXTOR_PX-1TM9PGN_+_P02952500220 FAULTED 64 0 682K too many errors

实际检查,应该有少数文件被修复了,但大部分没有。请问还有没有办法来恢复受损文件?
另外,关于出现这个情况的可能原因:

1.内存:我的内存是有 ecc 的,没超频,当初到手时也是各种方法检验正品,至少能保证不是粗制滥造的山寨货。而且也是用 memtest86 跑了好几天无错误的。只是我平时有时候内存用得比较满,这个有影响吗?

2.我家供电线路:笔记本有电池的,而且电源适配器功率也足够,虽然感觉不至于供电跟不上,但是结合一年多前的经历,这个也还是有可能的。一年多前,我还在使用另一只笔记本,内置 ssd 在短时间里先后坏了两块,导致我主力数据全毁。没想到一年多后还有可能再经历一次这种事情。当时我猜测可能是我平时拆笔记本太暴力,有几次不拆电池就继续拆机,导致笔记本供电部分受到影响,最后导致它很容易坏 ssd 。我不敢再用这只笔记本做主力,又买了笔记本,还用三只 ssd 做 zfs mirror,想着总不至于三只还会同时坏了。新笔记本我也从未不拆电池就继续拆机过。但是现在还是这样,难道是我家的供电线路有问题?不同的笔记本,不同的电源适配器,都未能过滤掉这个供电的问题,导致 ssd 持续损坏?

3.笔记本主板供电:莫非是我笔记本主板上供电无法承受 3 个 ssd 同时读写(也就是说我之前一个笔记本坏 ssd 的问题跟现在这个没有联系)?有一个现象不知道跟这个有没有关联,就是笔记本雷电口和 USB 口的输出电流感觉都很低,很多时候识别不了移动硬盘。

4.是我对虚拟机的 vmdk 文件进行 defragment 和 compact 操作导致文件系统损坏?这个不太可能吧,那只是文件而已。

5.zfs 本身 bug 。这个就不知道怎么排查了。

6.这个型号 /批次的 ssd 都有缺陷。ssd 是浦科特 m9p plus 1t 。这个也很难排查。

大佬有話說 (14)

  • 資深大佬 : dashupc

    一个笔记本可以插 5 个 SSD ?

  • 主 資深大佬 : woyaojizhu8

    @dashupc 是的,移动工作站

  • 資深大佬 : yyysuo

    我觉得 99%是软件问题吧,另外一个就是冷数据问题,数据长期不重新写入,SSD 固件也没有做定期搬运。

  • 資深大佬 : xcstream

    linux 的 zfs 不是很好用的

  • 資深大佬 : ohao

    大年三十服务器上坏了 2 块 4T 的 ssd,ssd 就是废物
    非企业级 ssd 当服务器用途就是垃圾

  • 主 資深大佬 : woyaojizhu8

    @yyysuo 算不上冷数据吧,ssd 也是一直用的,而且才一年。

  • 資深大佬 : fairytale

    除了供电,也猜不出别的问题。建议先把每个硬盘全盘 dump 到新盘。再去折腾修复问题。

  • 資深大佬 : yyysuo

    @woyaojizhu8 冷数据跟 ssd 是否一直在用关系不大吧,固件设计不好的话,就会出现这种问题,具体可以搜索一下近期的西数冷数据事件。

  • 資深大佬 : shengyueming

    3 个坏!这概率简直是连中 3 次 500 万的概率,建议再看看

  • 資深大佬 : gamexg

    主有后续吗?
    用的是什么系统实现的 zfs ?
    正在用 zfs,瑟瑟发抖。

    怀疑可能还是供电相关,至少我用的三星 ssd 发热巨大,耗电应该不低。

  • 主 資深大佬 : woyaojizhu8

    @gamexg #10 暂时没有后续。我这问题太复杂,这里回应不多。请问你觉得还能去别的什么地方问呢?英文不是特别好,这么长一段描述想翻成英文发到英文网站简直不可能(写成中文都已经绞尽脑汁了)。

  • 主 資深大佬 : woyaojizhu8

    @gamexg #10 用的系统就是 ubuntu20.04 啊,描述里有说。

  • 資深大佬 : veoco

    数据基本没救了,如果你在刚发现时全盘备份了 P02952500063 和 P02952500220,可以尝试还原后仅挂载这两块硬盘进行修复,应该能抢救出一些出错前的数据。P02952500057 长期 DEGRADED 运行,里面的数据已经无法保证正确了,所以 DEGRADED 之后读写的数据没有抢救的方法了。

    硬件方面,你可以尝试同环境下用不同数量的硬盘重新组 ZFS,长时间高强度读写,看看能否复现错误。

  • 資深大佬 : gamexg

    @woyaojizhu8 #11 stackoverflow 、ubuntu 、linux 论坛、SegmentFault ?
    或者考虑 ubuntu 、linux 邮件列表?虽然目前邮件列表基本没人发言了,但是当初订阅的人应该还不少。

    另外可以考虑试试 freebsd 能不能读取?
    印象目前几家新版本的 zfs 能够通用了。如果是 linux zfs bug,freenas 可能能够规避下。
    最好用新硬盘尝试恢复,目前的 ssd 还是别再动了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具