tom*_*ing 8 freebsd zfs sata freenas
考虑到我的四个磁盘 RAIDZ1,一个磁盘在物理上变得嘈杂,还没有产生错误,但听起来也不健康。所以我选择先发制人地更换它。
我已经做好了:
zpool offline tank0 ad6
Run Code Online (Sandbox Code Playgroud)
关闭、移除和更换磁盘
zpool replace tank0 ad6 ad6
Run Code Online (Sandbox Code Playgroud)
永远挂起。
zpool status也永远挂起,就像zpool history。
如果我在移除磁盘的情况下重新启动机器,则一切正常,按预期在降级模式下运行。
现在我该怎么做?担心,因为我的数据现在容易受到单个磁盘故障的影响。
操作系统是 FreeBSD 7.3-RELEASE-p1 - 又名 FreeNAS 7.0.2.5226
我刚刚在 VM 中尝试了相同的操作,尽管 FreeBSD 7.3-RELEASE-p7(FreeNAS 0.7.2.8191,稍晚的版本) - 完美运行。尝试使用我现在可以找到的最旧版本的 FreeNAS (7.0.2.5799),稍后会更新。
另外,zpool replace不需要文件系统使用吗?NAS 上的另一个守护程序可能正在使用该文件系统。我认为这没问题,但这当然可能是错误的。
更新,2012-01-10
我用 FreeNAS 8 启动了机器并做了zpool replace- 启动,并立即开始抛出成堆的数据损坏错误和内核恐慌 - 尽管每周清理池从未发现任何问题。我不认为我做了任何愚蠢的事情,比如告诉它更换错误的磁盘。我立即发出,shutdown -h因为我知道数据很好。
无论如何,我现在有一个降级的池,停留在替换暂停的状态,我正在将我的数据复制到一个 3TB 的外部驱动器,这是一个花费巨大的购买,所以我可以销毁池并重新开始。值得庆幸的是,数据看起来不错——我碰巧有大约 100GB 的文件的 md5sums,到目前为止似乎完好无损,而且我已经设法恢复了所有真正不可替代的东西。
我现在正在等待更多 RAM 的到来,因为 FreeNAS 8 不断因 kmem_max 太小错误而恐慌,我似乎无法调整这些错误,并且机器受到 RAM 限制(1 GB RAM 用于 4TB RAIDZ1)。
关于备份的惨痛教训,但对 ZFS/FreeNAS/FreeBSD 的信心也确实受到了打击。
更新 13/1/12
好吧,我的数据现在似乎已安全备份。
即使将故障模式设置为继续,zpool status -v 也会挂起。这是 zpool status 的输出,插入了新磁盘 (ada1)
pool: tank0
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://www.sun.com/msg/ZFS-8000-8A
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
tank0 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada0 ONLINE 0 0 0
replacing DEGRADED 0 0 3.17K
6540253751212815210 UNAVAIL 0 0 0 was /dev/ada3/old
ada1 ONLINE 0 0 0
errors: 3130 data errors, use '-v' for a list
Run Code Online (Sandbox Code Playgroud)
插入旧磁盘而不是新磁盘后,ZFS 不会导入池,并zfs status说:
tank0 UNAVAIL insufficient replicas
raidz1 FAULTED corrupted data
ada2 ONLINE
ada3 ONLINE
ada0 FAULTED corrupted data
replacing UNAVAIL insufficient replicas
ada1 FAULTED corrupted data
ada1 FAULTED corrupted data
Run Code Online (Sandbox Code Playgroud)
我不明白为什么 ada0 在插入新磁盘 (ada1) 时应该是 FAULTED 而在插入旧磁盘时 ONLINE?我不明白 ada0 是如何相关的。
让我们尝试恢复这个池作为学习练习。
| 归档时间: |
|
| 查看次数: |
3687 次 |
| 最近记录: |