设备概要:
FREENAS版本11.3u,nas硬件设备为diy,3块2t垂直蓝盘、一块2t红盘、一块4t垂直蓝盘,组成raid-z2(raid6),已加密 AES-XTS 256。
事件经过概要:
更换阵列中的一块盘,在重建时间过长时重启设备,重启后无法读取存储池,事后发现掉了2块盘(一个还在重建的盘,另一个是新崩溃的盘),达到了raid6的极限。
技术总结&心得体会:
- 保留冷备盘。
- 混用不同容量硬盘易造成阵列损坏。
- 事故的原因应为重建阵列时,一块原有硬盘损坏。
- 重建阵列途中不建议重启设备。
- raid6坏了两块盘读写速度会急剧下降。
- 存储池加密会比不加密增加崩溃风险。
- 很可能是因为重建阵列时,重启,之后设备无法通过原有密钥正确解密存储池。
- 导入存储池时,可尝试等待数小时,莫急,因为阵列降级后读写速度急剧下降。
- 无法解锁存储池,可能为阵列中硬盘损坏,导致解锁存储池时卡住。
- rsync不会设置,如果能设置好估计会比smb要快。
事件经过:
2020年6月29日中午用一块2t垂直蓝盘(群晖上拆下来的),更换了阵列内的一块2t垂直蓝盘(随手抽了一块),之后在gui界面重建阵列。
~~
2020年6月29日晚上10点左右的重建进度是65%,
2020年6月30日8点看到是67%,怀疑是卡住了,就索性重启设备。在gui界面点击关机,gui界面显示正常关机,之后无法连接上gui,但设备灯还是亮的。
~~
我插上nas设备的显示器,无显示输出。我怀疑是系统故障。
~~
依次拔下各硬盘的数据线,然后拔下各硬盘的电源线(已在主板设置热拔插)。
~~
之后nas设备就自己关掉了。。。。我怀疑是系统卡在硬盘上,无法执行关机指令,拔掉硬盘后,系统正常执行关机指令。
~~
直接开机(未插硬盘),正常。然后插上硬盘,系统显示需要解锁存储池,我上传解锁密钥文件就卡住了。
如下图,无限卡在“解锁存储池”,刷新gui界面后直接卡在主页上,无法操作其他设置。

~~
等了大概1小时,不等了,想关机,使用之前的方法(依次拔下各硬盘的数据线,然后拔下各硬盘的电源线),接着gui界面恢复正常,存储池处显示等待解锁。
~~
解锁存储池一直卡住,索性就删除掉存储池(这时硬盘没连接),想着重新导入该存储池。
~~
重新添加存储池。其中选择全部硬盘会报错,显示两块盘是无法解锁的。(估计这就是不能直接解锁存储池的原因)
一块为新添加的,另一块为重建阵列时损坏的
盲选3块盘添加,成功进入“导入存储池状态”,之后我就去午休了。
大概两个小时后,存储池显示恢复正常,但是smb无法连接。系统报错如下:
freenas ZFS: slow vdev I/O, zpool=moren path=/dev/gptid/ab4a4249-6204-11ea-863d-2cf05d003d39.eli这样没用啊,我想着能连上smb,把数据拷贝出来,然后再去重建矩阵。

~~
大概过了1小时,试着发现ssh可以连上。感动的要哭了。

赶紧开始导出数据,只不过太慢了,速度大约1m/s。先把一些紧急的导出来。
~~
2020年7月1日上午,发现存储池可以访问了,怀疑之前无法访问是因为阵列降级后的速度限制。
同时报错

试了试smb,可以连上了。没有先感动,先试了试读取速度。大概2m/s,也是十分令人感动。
正常情况应该是100m/s左右
算了算里面3t全量导出,24天。

索性放弃全量导出,只导出新增的部分(大概300g),再让我妈把家里的冷备盘寄过来,这样就算是完成了恢复。
~~
时间多、没有冷备盘的朋友倒是可以等待smb的传输,反正是挂机,反正这是再次崩溃前的抢救手段了。。。。
另外本想用rsync把数据传输到群晖上,无奈不知道咋设置。群晖到freenas倒是可以。反过来就不会了。
~~
到这就算是完成了。
技术总结&心得体会:
- 保留冷备盘。
- 混用不同容量硬盘易造成阵列损坏。
- 事故的原因应为重建阵列时,一块原有硬盘损坏。
- 重建阵列途中不建议重启设备。
- raid6坏了两块盘读写速度会急剧下降。
- 存储池加密会比不加密增加崩溃风险。
- 很可能是因为重建阵列时,重启,之后设备无法通过原有密钥正确解密存储池。
- 导入存储池时,可尝试等待数小时,莫急,因为阵列降级后读写速度急剧下降。
- 无法解锁存储池,可能为阵列中硬盘损坏,导致解锁存储池时卡住。
- rsync不会设置,如果能设置好估计会比smb要快。
感谢阅读。
2020年7月2日更新:
smb导出数据时,突然降速到几百k,疑似阵列快崩了。

gui界面无新的报错。
~~
2020年7月4日更新:
在抹掉所有硬盘后,重建存储池,发现如下报错,估计这就是阵列崩溃的原因,混合了不同容量的硬盘。
The current pool layout is not recommended.Override the following errors?
One or more data vdevs has disks of different sizes.
