Snapshot Replication 实战:用快照挡住误删和勒索软件
快照到底解决什么问题
先想清楚一件事:快照不是备份的替代品,它的价值在于回滚速度。
对比一下三种场景的成本:
| 场景 | 没快照 | 有快照 | 有异地备份 |
|---|---|---|---|
| 误删一个文件夹 | 从备份恢复,几十分钟起 | 几秒到几分钟 | 几十分钟起 |
| 文件被覆盖成错误版本 | 大概率找不回 | 秒回滚 | 有几率找回 |
| 勒索软件加密全盘 | 完蛋或付赎金 | 几分钟回滚(前提配置正确) | 几小时到一天 |
| 硬盘物理损坏 | 换盘重建 | 没用 | 有效 |
| 火灾 / 水淹 / 被盗 | 完蛋 | 完蛋 | 有效 |
看明白了吗:快照是低成本的高频保护,解决”人和软件犯错”;备份是高成本的兜底,解决”设备完蛋”。两者必须同时有。
群晖上这套能力叫 Snapshot Replication,套件中心免费安装,依赖 Btrfs 文件系统。
前置条件:Btrfs
Snapshot Replication 只支持 Btrfs 文件系统的存储空间。选 ext4 的机器用不了。
查看位置:存储管理器 → 存储空间 → 看文件系统类型。初始化时就选 Btrfs,事后不能原地转换(只能重建存储池并迁移数据)。
Btrfs 带来的不只是快照:
| 能力 | 说明 |
|---|---|
| 快照 | 秒级创建,写时复制,初始几乎不占空间 |
| 数据校验 | 定期做数据清理能发现静默损坏 |
| 自愈 | 在有冗余的 Btrfs RAID 下,校验发现的错误可以自动修复 |
| 共享文件夹快照 | 可以针对单个共享文件夹做,不必整个存储池 |
代价是内存占用略高,以及极端场景下写入性能略低于 ext4。对家庭和小型办公,这个交换是划算的。
快照是怎么”几乎不占空间”的
Btrfs 快照是写时复制(Copy-on-Write):
创建快照的瞬间,它记录的是此刻所有数据块的指针,不复制任何数据,所以秒完成、几乎零占用。
之后的变化才占空间:原数据块被修改时,系统先把旧数据保留下来(因为快照还要用),新数据写到别处。被改掉的旧数据块才会计入快照占用。
由此推出两条实操规则:
规则一:变化量大的目录,快照占得快。监控录像、下载目录、虚拟机磁盘镜像,这类”一直在写”的数据,快照会在短时间内吃掉大量空间。
规则二:快照容量要单独设上限。在共享文件夹的快照设置里,一定要设”快照保留上限”或”占用上限”,否则长期不清理会把存储池撑满,而存储池满了比硬盘坏了还难处理。
保留策略怎么配
群晖提供几种策略组合,我推荐这套通用型配置:
| 层级 | 保留规则 | 目的 |
|---|---|---|
| 每小时 | 保留最近 24 个(一天) | 救误删、救误覆盖 |
| 每天 | 保留最近 7 个(一周) | 救一周前才发现的错误 |
| 每周 | 保留最近 4 个(一个月) | 救长期潜伏的问题 |
| 每月 | 保留最近 3 个 | 兜底 |
总计数大约 38 个快照。对普通文件服务器而言,这个密度既能覆盖绝大多数误操作场景,占用也可控。
特殊目录要单独调:
| 目录类型 | 建议 |
|---|---|
| 文档、照片、代码 | 按上面标准套配 |
| Docker / 虚拟机 | 快照前先停容器,或大幅减少保留数量 |
| 监控录像、下载盘 | 建议干脆不做快照,或者只保留 2~3 个 |
| 数据库文件 | 需要应用层一致性快照,不要盲目依赖 |
Replication:把快照送到另一台机器
Snapshot Replication 这个名字里,”Replication”是另一半能力——把本地快照复制到另一台群晖上。
它和 Hyper Backup 的区别:
| Snapshot Replication | Hyper Backup | |
|---|---|---|
| 目标 | 另一台群晖(同 DSM) | 任意目标:另一台群晖、rsync 服务器、S3、C2、外接 USB |
| 复制粒度 | 快照级增量 | 文件级去重备份 |
| 恢复粒度 | 整个共享文件夹或 LUN | 单个文件可选恢复 |
| 加密 | 传输加密 | 支持端到端加密备份目标 |
| 异地 | 需要两台群晖 | 支持对象存储,成本更低 |
典型用法:两台群晖之间用 Replication 做”热备”,可以快速在备机拉起服务;同时用 Hyper Backup 往云或外接硬盘做”冷备”,应付极端情况。
Replication 的实操要点:
- 两台机器都要装 Snapshot Replication 套件
- 目标机器的文件系统也必须是 Btrfs
- 首次同步时间长,建议在局域网内先做一次,再拿到异地
- 建议配合 VPN 或专线,别直接把 5000/5001 端口暴露到公网
- 带宽受限时可以设置排程和限速
关键:挡住勒索软件要靠这一层
很多人的认知是”有快照就不怕勒索软件”,这是个危险的误解。
普通勒索软件的攻击路径:它会尝试删除或加密它所能访问到的一切,包括通过 SMB/CIFS 访问的共享文件夹上的快照(如果快照目录可见),甚至直接攻击管理账号,删掉 DSM 里的快照。
所以必须再多一层:让快照变得不可删除。
群晖上对应的手段:
| 手段 | 说明 | 位置 |
|---|---|---|
| Immutable Snapshot(不可变快照) | 快照在设定时间内无法被任何账号删除,包括管理员 | 快照设置中,需配合企业机型或特定版本 |
| 快照文件夹权限收紧 | 不把 .snapshots 暴露给普通用户 | 共享文件夹权限 |
| 回收站 + 快照双保险 | 先回收站,再快照 | 控制面板 |
| 异地 Replication | 即使本地被删,远端还在 | Snapshot Replication |
| 独立备份 | 最后一道防线 | Hyper Backup + 离线 |
其中最有效、也最容易被漏掉的是 Immutable Snapshot。它相当于给快照上了把时间锁——设置之后,7 天内谁也删不掉,管理员权限也不行。这意味着即使攻击者拿到了管理员密码,也抹不掉你 7 天内的历史版本。
如果你的机型或 DSM 版本不支持不可变快照(企业级以上机型更常见),那就靠 Replication 到另一台设备来近似实现:攻击者删得掉本地,未必够得着远端。
完整配置清单
按这个顺序做一遍:
1. 确认存储空间文件系统是 Btrfs 2. 套件中心安装 Snapshot Replication 3. 对每个重要共享文件夹启用快照,套用上面的保留策略 4. 给每个文件夹设置占用上限,避免撑爆 5. 监控/下载/虚拟机目录单独降低频率或关闭 6. Secure SignIn 或双因素认证必须开(管理账号被夺等于快照被删) 7. 如果有第二台群晖,配置 Replication 8. 企业机型启用 Immutable Snapshot 9. 再单独搭一条 Hyper Backup 到异地或云端 10. 演练一次恢复。这一步 90% 的人不做,但它是快照唯一的价值证明
最后一句:没演练过的快照等于没有快照。花十分钟真的删一个文件再恢复一次,比看十篇教程有用。
