浅析 FreeNAS 系统中的 Scrubs 和 SMART

2015-1-16 21:56 Herald 6621 FreeNAS存储管理

Scrubs 和 SMART 是 FreeNAS 系统中针对存储设备(一般指硬盘)的两项常用的重要技术,合理利用这两项技术可以更大程度保障 NAS 存储的数据安全。本文将从理论层面,对这两项技术做进一步解释,以图让您更好的使用 FreeNAS 系统。

1914790148

写在前面

Scrub 目前并没有准确公允的中文翻译,有人把它翻译为 “ZFS 显示清理”,也有人称其为“数据检查”,“数据清理”、“磁盘清理”、“垃圾清理”等。笔者无意给它定名,况且 FreeNAS 系统的中文翻译虽然基本完成,但官方尚未将最新的简体中文翻译文件引入。本文旨在梳理概念,让大家能够理解 Scrub 的作用及用途。

什么是 Scrub ?

首先需要了解的是,Scrub 是 ZFS 文件系统下的一个数据修复工具,主要用于 ZFS 文件系统上所存储数据的完整性检查,与类 Unix 系统下的 fsck 工具相似,但两者有很大的不同。相比 fsck 工具,执行 Scrub 任务无需卸载文件系统,可以对运行中的文件系统进行检查。而且 Scrub 始终检查所有的数据,包括元数据和数据本身,因此要比 fsck 的执行时间长很多。

Scrub 是对已存储的数据执行检测,执行的时长取决于已存入的数据总量。由于执行 Scrub 检查会频繁读写已存储的数据,执行时对系统性能会产生一定影响,因此应该安排在晚上或周末执行Scrub 检查,以降低对用户的影响。

多久执行一次 Scrub 数据检查?

官方建议,如果你的 FreeNAS 系统装配的是企业级硬盘,推荐每个月执行一次 Scrub 检查;如果装配的是消费级硬盘,建议每个星期执行一次 Scrub 检查。您可以阅读另一篇文章,了解《企业级硬盘与消费级硬盘的区别》。

如何手动执行 Scrub?

以 FreeNAS 9.3 系统为例,在 WebGUI 中点击快捷菜单中的“Storage”存储,在列表中点选需要执行 Scrub 操作的卷(存储池),可以看到下方显示了三个按钮,它们分别代表可以对该卷(存储池)执行的操作:①分离卷;②Scurb;③卷状态。

20150202211557

点选第二个按钮“Scrub Volume”,此时会弹出下图所示的提示窗口,询问是否要对卷执行 Scrub 操作,同时会提醒我们执行 Scrub 检查会增加系统负载。

20150202211640

点击“OK”确定按钮,开始执行 Scrub 操作,如果没有异常,系统会在 WebGUI 上方给出状态提示:“The scrub process has begun” 已开始 Scrub 检查。

20150202211708

在 Scurb 执行过程中,可以点击第三个按钮“Volume Status”卷状态,查看此操作的进度。

20150202211814

如下图所示,Scrub Status 状态:In Progress 执行中。

20150202212108

Scrub 执行完成后,状态会变成“Completed”已完成,同时会列出本次卷检查发现了多少“Errors”错误“Repaired”已修复了多少错误,以及详细的“Date”时间

20150202212138

如何自动执行 Scrub?

FreeNAS 会为每个新创建的卷(存储池)设置一个自动执行的 Scrub 计划任务,默认每隔35天执行一次。可以根据使用的硬盘类型(企业级/消费级),对计划任务进行调整,通常将任务时间指定在非工作时间。

20150202214217

Scrub 计划任务选项介绍:

  • Volume(卷):在下拉菜单中选择要设置的卷(存储池)。
  • Threshold days(任务间隔):两次 Scrub 任务的时间间隔,即多少天后执行下一次 Scrub 检查。通常设置为 7 的倍数,这样可以保证总是在每个星期的同一天执行 Scrub 任务。注意,此项优先级高于下方日历设置,即到达此项设置的时间,无论是否到达下方日历中指定的时间,都会执行 Scrub 检查。
  • Description(描述):选填。可以在此处填写该任务的备注。
  • Minute(分钟):不解释;
  • Hour(小时):不解释;
  • Day of Month(日):可以按一个月中的某一天设置,也可以按每X天设置;
  • Month(月):不需要执行 Scrub 检查的月份可以取消勾选;
  • Day of week(周):可以按一星期中的某一天设置,也可以按每X天设置;
  • Enabled(启用):如果暂时不想为某个卷设置自动 Scrub 检查任务,可以取消勾选;

什么是 S.M.A.R.T. ?

S.M.A.R.T. 是一项硬盘检测技术,全称“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。支持 S.M.A.R.T. 技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、 马达、电路的运行情况、历史记录及对预设的安全值进行分析、比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。

S.M.A.R.T. 主要用于监控硬盘的可靠性和预测硬盘故障,并进行不同类型的自测。一旦 S.M.A.R.T. 检测到硬盘错误,则应该立即替换掉出现故障的硬盘。目前,绝大多数 ATA、IDE 和  SCSI-3 接口的硬盘都支持 S.M.A.R.T. 。

FreeNAS 中的 S.M.A.R.T.

20150116212639

FreeNAS 系统会为接入的每块硬盘启用 S.M.A.R.T. ,只要硬盘支持 S.M.A.R.T. ,系统就会按照预设值执行硬盘检测。你需要做的是到“服务”控制中确认已启用 S.M.A.R.T.  服务。

20150116214646

如果你希望系统在检测到硬盘故障时第一时间用电子邮件通知你,则在服务控制菜单下,点击 S.M.A.R.T. 右侧的扳手图标,在弹出的设置窗口填入你的电子邮箱。

20150116214927

注意:在 FreeNAS 系统中,如果使用了 RAID 阵列卡,那么就应该禁用系统中的 S.M.A.R.T. 服务,以避免发生错误。原因是 RAID 阵列卡本身具有 S.M.A.R.T. 自检功能。

小结

经过如上介绍,相信你已经对 Scrubs 和 S.M.A.R.T. 有了基本的了解,可以这样总结,Scrubs 是面向数据的检测,确保已存入 NAS 服务器的数据完整无错。S.M.A.R.T. 是面向硬盘物理层面的检测,帮助我们第一时间发现出现故障的硬盘。这两种技术的最核心目的都是为了保障我们存入 FreeNAS 系统的数据更安全。

{{ headers["x-wp-total"] }} 条评论

{{ post_id = '198' }}

回复 {{ reply_to }}