使用 FlexGroup 卷进行弹性调整
适用于
- ONTAP 9
- FlexGroup
回答
什么是弹性调整大小?
注: 有关弹性调整大小的更多详细信息,请参见 TR-4571。
本文介绍了什么是弹性大小调整,它如何与 FlexGroup 卷一起使用,以及它对工作负载的影响。
Elastic sizing(在 ONTAP 9.6 中引入)是 ONTAP 更好地管理 FlexGroup 卷中空间分配的一种方法,目的是防止组成卷中的"空间不足"错误导致文件写入失败。Elastic sizing 与 autogrow/autoshrink 的不同之处在于,其目标不是增加卷的整体容量占用。相反,elastic sizing 保持总卷大小不变,并将利用 FlexGroup 内部组成卷的可用空间来借用/交换空间以容纳写入。
Elastic sizing 不是为了消除在 FlexGroup 中管理容量的需要 - 仍应采取措施确保在卷中和跨组成卷有足够的可用空间,不应将其视为空间管理的替代品。
FlexGroup 卷仍将像往常一样执行摄取负载平衡,因此应解决卷之间的不平衡,而无需手动干预。
工作原理
只有当文件写入达到 ONTAP 即将向执行写入的客户端发出"空间不足"错误的点时,弹性大小调整才会启动。在发送该消息之前,ONTAP 将通过借用 FlexGroup 中组成卷总容量的 1%(介于 10MB 和默认最大值 10GB 之间)来尽最大努力在 FlexGroup 中找到一些可用空间。

这些值可通过节点级"flexgroup set"命令进行调整,但不应在没有工程指导的情况下进行修改。
当文件写入即将失败时,ONTAP 扫描组成卷以查找可用空间,并将减少其中一个组成卷的大小,并将该空间量添加到即将用尽空间的组成卷。
弹性调整大小的影响
此过程不是免费的 - 当写入暂停以查找空间时,性能将受到影响。这将显示为工作负载中的延迟峰值。影响将根据完成写入所需的空间量以及 ONTAP 必须搜索空间的次数而有所不同。例如,由于我们一次只从组成卷中获取 1% 的空间,并且数量可能低至 10MB,因此需要 1GB 才能完成写入的文件将需要暂停约 100 次才能提供适当的可用空间量。相反,如果组成卷的 1% 是 10GB,则写入只需要暂停一次即可完成。
以下示例显示了将文件复制到 FlexGroup 的测试。在第一次测试中,FlexGroup 组成卷不够大,无法容纳文件,因此使用了弹性大小调整。复制 6.7GB 文件大约需要 2 分钟:
[root@centos7 /]# time cp Windows.iso /elastic/real 1m52.950suser 0m0.028ssys 1m8.652s
当 FlexGroup 组成卷足够大时,相同的副本花费的时间减少了 15 秒:[root@centos7 /]# time cp Windows.iso /elastic/
real 1m37.233s
user 0m0.052s
sys 0m54.443s
这表明当弹性调整大小生效时可能会产生真正的延迟影响。
以下图表说明了对组成卷的延迟影响:

当执行弹性调整大小时,成分卷 0001 的延迟约为 0.5ms:

修复弹性大小调整问题
如果弹性调整正在对工作负载启动,这意味着卷的大小不再适当,无论是否存在性能影响,都应采取补救措施。弹性调整只是针对失败写入/损坏文件的保险政策,不应被视为灵丹妙药。
要防止弹性调整启动:
- 查看环境中所有成员卷大小,确保成员卷之间的平衡均匀。如果某个成员的已用空间比其他成员多得多,那么应该进一步调查为什么会出现这种情况(例如,是否删除了大量数据?文件是否变得非常大?是否将大量文件压缩到单个 tar 文件中?)。
- 如果可能,请删除一些数据以释放空间,以及将数据锁定到位的快照。
- 增加整个 FlexGroup 卷的大小以增加可用空间。
- 如果使用 AFF,请查看 FabricPool 分层的好处;查看非活动数据报告,以便对活动文件系统和快照的空间节省进行大致估计。
- 确保启用了所有可用的存储效率。
目标是在每个组成卷中释放足够的空间,以便单个文件不会导致弹性大小从其他组成卷中借用空间。该可用空间阈值将取决于工作负载中的平均文件大小和最大文件大小,以及卷中的文件是否会随着时间的推移而增长。
建议为"卷接近满"设置警报/警告和/或利用配额来帮助监控可用空间。TR-4571 介绍了如何使用 FlexGroup 卷进行空间监控。
一般来说,最好在组成卷达到不超过 80% 使用率时进行通知,以便有足够的时间来计划和纠正容量问题。
其他注意事项
标准化
调整 FlexGroup 容量后(如,文件已被删除或大小已添加到 flexgroup 中),组成卷容量将标准化并自行恢复到正常容量水平。
自动增长
卷自动增长可以与弹性大小调整结合使用,但它们独立运行。这意味着如果在卷上启用了卷自动调整大小,则弹性大小调整将不再使用。
::*> vol show -vserver DEMO -volume elastic* -fields size,used,autosize-mode
vserver volume size used autosize-mode
------- ------------- ------- ------- -------------
DEMO elastic 15.73GB 6.78GB grow
DEMO elastic__0001 2.50GB 68.34MB grow
DEMO elastic__0002 2.50GB 67.44MB grow
DEMO elastic__0003 8.23GB 6.58GB grow
DEMO elastic__0004 2.50GB 69.25MB grow
5 entries were displayed.
::*> event log show -message-name *auto*
Time Node Severity Event
------------------- ---------------- ------------- ---------------------------
11/12/2019 16:55:59 ontap9-8040-01 NOTICE wafl.vol.autoSize.done: Volume autosize: Automatic grow of volume \'elastic__0003@vserver:7e3cc08e-d9b3-11e6-85e2-00a0986b1210\' by 118MB is complete.
追加信息
追加信息_text