快照天天拍、越攒越多怎么删?Smart Retention 智能保留策略配一次,快照自动收敛

痛点场景

快照开了每日自动拍摄,一年下来三百多张:全留着,存储空间肉眼可见地被吃掉;手动删,又怕哪天要恢复偏偏缺那一张。企业场景更纠结——客户常提这类要求:“最近三个月要能按天恢复,再往前按周留就行,年底审计还要能回到每个月末的状态。“靠人肉挑着删,既费工又容易删错。

这道题的正确解法不是"删”,而是配一条让系统自己删的规则。

底层思路:GFS 祖父-父-子

Snapshot Replication 在快照保留上采用 Grandfather-Father-Son(祖父-父-子,GFS)保留策略:把快照按时间粒度分成"年、月、周、天"几代,越近的代留得越密、越老的代留得越稀。近期的恢复点密集,方便精确回滚;久远的只留代表性节点,占用极少空间——一句话:近密远疏。

两个设置共同决定快照去留

  • 快照计划:定义系统拍摄快照的时间和频率(何时拍、多久拍一张);
  • 保留策略:定义拍下来的快照留多久、留几张(何时删、删哪张)。

很多人只配了计划不管保留,快照自然越攒越多。保留策略里最值得用的是 Smart Retention 策略,它有三条核心能力:

  1. 保留指定时间范围内的所有快照——比如最近 7 天的每一张都留着;
  2. 保留不同时间段的最新快照——可为每小时、每天、每周、每月和每年快照分别指定保留时长。例如选择"每周保留最新快照 7 周”,则每周的最后一张快照在拍摄后保留 7 周;
  3. 指定要保留的最新快照的最小数量——仅当快照数量超过该数值时保留策略才生效,确保即使不再创建新快照,也会保留部分快照兜底。

当某个快照同时满足多条保留规则时,系统只会保留一份,避免重复占空间。

除了 Smart Retention,还有两个传统选项:要保留的最新快照数(总数超过设定值就从最早的开始删)和保留所有快照天数(只保留特定天数内拍摄的全部快照),思路相对单一,适合需求简单的场景。

官方示例:配置一次,九个月后快照长这样

1 月 1 日起,快照计划设为每天拍一张,Smart Retention 策略如下:

  • 每天保留最新快照,保留 90 天
  • 每周保留最新快照,保留 24 周
  • 每月保留最新快照,保留 9 个月
  • 要保留的最新快照数:10

九个月后查看快照列表,结果是:

时间段 保留的快照
一月、二月、三月 仅保留每月快照
四月、五月、六月 保留每周和每月快照
七月、八月、九月 保留每日、每周和每月快照

此外,无论其他保留规则如何,系统始终会保留最近的 10 个每日快照——这是"最小数量"规则在兜底。部分快照会同时满足多条规则(比如第一个每月快照也可能符合第四个每周快照的条件),这种情况下系统只保留一份。

查看保留结果

前往快照页面并选择一个存储空间,单击 快照 > 快照列表,即可看到各时间档位实际留下的快照。建议配置后观察一两周,确认删留节奏符合预期。

不少机房的现状是"拍得起、不敢删"——诚鑫致达科技接手这类存储运维时,第一件事就是按"近密远疏"把 Smart Retention 配到位,之后快照数量自动收敛,不再依赖人肉清理。

验证

按上面的策略跑满一个周期后进快照列表核对三点:近 90 天是否每天一张、更早的月份是否只剩月末(或周末)节点、最近 10 个每日快照是否始终在列。三点都对上,策略即生效。

预防与注意

  • 先定恢复目标再定保留规则:监管或客户要求"按天可恢复多久、按月留档几年",倒过来填参数,不要凭感觉拍数字;
  • 快照保留解决的是"本地时间点恢复",防勒索、防机房级故障仍需配合异地备份,两者不能互相替代;
  • 加密、去重等功能的开启情况会影响快照实际占用,配完策略后留意存储空间的余量变化。