快照天天拍、越攒越多怎么删?Smart Retention 智能保留策略配一次,快照自动收敛
痛点场景
快照开了每日自动拍摄,一年下来三百多张:全留着,存储空间肉眼可见地被吃掉;手动删,又怕哪天要恢复偏偏缺那一张。企业场景更纠结——客户常提这类要求:“最近三个月要能按天恢复,再往前按周留就行,年底审计还要能回到每个月末的状态。“靠人肉挑着删,既费工又容易删错。
这道题的正确解法不是"删”,而是配一条让系统自己删的规则。
底层思路:GFS 祖父-父-子
Snapshot Replication 在快照保留上采用 Grandfather-Father-Son(祖父-父-子,GFS)保留策略:把快照按时间粒度分成"年、月、周、天"几代,越近的代留得越密、越老的代留得越稀。近期的恢复点密集,方便精确回滚;久远的只留代表性节点,占用极少空间——一句话:近密远疏。
两个设置共同决定快照去留
- 快照计划:定义系统拍摄快照的时间和频率(何时拍、多久拍一张);
- 保留策略:定义拍下来的快照留多久、留几张(何时删、删哪张)。
很多人只配了计划不管保留,快照自然越攒越多。保留策略里最值得用的是 Smart Retention 策略,它有三条核心能力:
- 保留指定时间范围内的所有快照——比如最近 7 天的每一张都留着;
- 保留不同时间段的最新快照——可为每小时、每天、每周、每月和每年快照分别指定保留时长。例如选择"每周保留最新快照 7 周”,则每周的最后一张快照在拍摄后保留 7 周;
- 指定要保留的最新快照的最小数量——仅当快照数量超过该数值时保留策略才生效,确保即使不再创建新快照,也会保留部分快照兜底。
当某个快照同时满足多条保留规则时,系统只会保留一份,避免重复占空间。
除了 Smart Retention,还有两个传统选项:要保留的最新快照数(总数超过设定值就从最早的开始删)和保留所有快照天数(只保留特定天数内拍摄的全部快照),思路相对单一,适合需求简单的场景。
官方示例:配置一次,九个月后快照长这样
1 月 1 日起,快照计划设为每天拍一张,Smart Retention 策略如下:
- 每天保留最新快照,保留 90 天
- 每周保留最新快照,保留 24 周
- 每月保留最新快照,保留 9 个月
- 要保留的最新快照数:10
九个月后查看快照列表,结果是:
| 时间段 | 保留的快照 |
|---|---|
| 一月、二月、三月 | 仅保留每月快照 |
| 四月、五月、六月 | 保留每周和每月快照 |
| 七月、八月、九月 | 保留每日、每周和每月快照 |
此外,无论其他保留规则如何,系统始终会保留最近的 10 个每日快照——这是"最小数量"规则在兜底。部分快照会同时满足多条规则(比如第一个每月快照也可能符合第四个每周快照的条件),这种情况下系统只保留一份。
查看保留结果
前往快照页面并选择一个存储空间,单击 快照 > 快照列表,即可看到各时间档位实际留下的快照。建议配置后观察一两周,确认删留节奏符合预期。
不少机房的现状是"拍得起、不敢删"——诚鑫致达科技接手这类存储运维时,第一件事就是按"近密远疏"把 Smart Retention 配到位,之后快照数量自动收敛,不再依赖人肉清理。
验证
按上面的策略跑满一个周期后进快照列表核对三点:近 90 天是否每天一张、更早的月份是否只剩月末(或周末)节点、最近 10 个每日快照是否始终在列。三点都对上,策略即生效。
预防与注意
- 先定恢复目标再定保留规则:监管或客户要求"按天可恢复多久、按月留档几年",倒过来填参数,不要凭感觉拍数字;
- 快照保留解决的是"本地时间点恢复",防勒索、防机房级故障仍需配合异地备份,两者不能互相替代;
- 加密、去重等功能的开启情况会影响快照实际占用,配完策略后留意存储空间的余量变化。