我有一个 Nexenta ZFS 系统,服务于大型 NFS 卷(使用 250 TB 的约 85%)。一周前,70 个磁盘中的一个发生了故障,系统正在重新同步一个热备件,没有任何问题(除了由于重新同步 I/O 导致的大量性能损失)。
我知道拥有更多可用空间将减少未来重新同步所需的时间,因此我计划很快从 NFS 卷中清理约 70 TB。
但是,我不确定在当前重新同步期间进行清理是否会导致问题,或者是否会减少当前重新同步所需的时间,这提出了我的问题:
- 删除文件会对正在进行的 ZFS 重新同步产生负面影响吗?
系统信息:
# uname -a
SunOS stor-nas02a 5.11 NexentaOS_4:55745843a2 i86pc i386 i86pc
阵列信息:
- 7x raidz2(每个 10 个磁盘)
- 2x SLOG 镜子
- 各种备件和缓存
- 地位:
action: Wait for the resilver to complete.
scan: resilver in progress since _________
29.7T scanned out of 199T at 60.2M/s, (scan is slow, no estimated time) # the 199 TB is compressed
451G resilvered, 14.92% done
任何用户空间存储操作都可以执行,但它们确实在执行时有效地停止了重新同步。ZFS 将正常操作(使用文件系统)优先于重新同步操作。重新同步以非顺序顺序读取池中的所有数据,并且仅将所需数据写入新磁盘。删除与写入没有太大区别,特别是因为我想您可能有快照,这意味着删除在磁盘命中方面基本上是非操作。
我不建议在重新同步期间销毁快照。但这并不是出于安全或对数据丢失的担忧,而是因为它使池变得无用。几年前的内存告诉我,小型(25TB 12x2TB、ZIL 和 SLOG 在 ~fast SSD 上)池的性能下降,在单个磁盘 resilver 上破坏了 ~1TB,使系统无法使用大约一天。
简而言之,ZFS 尽其所能为您提供对数据的可靠访问,并让您正常使用它,同时它在后台完成所有内务管理。重新同步器很关键,但它们也是可中断的后台任务。
可以在此处和Oracle文档中找到有关重新同步工作原理的更多信息。