上周三凌晨一点,我干了一件所有运维都干过、但没人愿意承认的事。
我本来只想删掉测试目录里的一个 tmp 文件夹。手一抖,路径少敲了一层,rm -rf 直接把线上站点的 uploads 目录带走了。回车按下去的那一瞬间,终端安静得可怕——没有确认提示,没有回收站,什么都没有。三秒后我才反应过来,手心已经开始出汗。
那台机器上挂着三年多的图片和附件,客户后台里的订单凭证全在里面。
我第一个念头是快照。打开控制台一看,自动快照策略确实开着,最近一个快照是六个小时前。也就是说,我要么恢复到六小时前、丢掉今天所有新传的东西,要么一个个去找。凌晨一点半,我坐在那儿把这两条路都想了一遍,最后走的是第三条:把整台机器从云备份里恢复了一份出来,四十分钟,目录原样回来。
从那天起我把"快照"和"备份"这两件事彻底分开看了。这篇文章就是那次事故之后整理出来的,顺手把账单也算清楚了——毕竟很多人的备份方案,其实只是"以为有备份"。
一、快照和备份,真的不是同一件事
这是最容易被糊弄过去的一句话。控制台里两者都在"存储"附近,看起来都是"某个时间点的数据",但底层逻辑完全不一样。
快照是云盘的"照片"。它记录的是某块云盘在某个时刻的数据状态,创建快、恢复快,适合"我刚改了个配置文件,先拍一张,改崩了回滚"。它有一个天生的问题:快照和云盘在同一个账号、同一个地域。也就是说,谁能操作你的云盘,谁就能操作你的快照。
备份是"另外存一份"。数据被复制进一个独立的备份库,这个库可以放在另一个地域,甚至可以挂在另一个阿里云账号下面,还能被锁成"不可变"——保留期内谁都不能删、不能改,包括你自己。
一句话对比:
| 维度 | 快照 | 云备份 |
|---|---|---|
| 本质 | 云盘某时刻的数据状态 | 独立备份库里的完整副本 |
| 位置 | 同账号、同地域 | 可跨地域、可跨账号 |
| 能不能被一起删 | 有权限就能删 | 开启不可变备份后删不掉 |
| 粒度 | 整块盘 | 整机 / 文件目录 / 数据库 / NAS / OSS / Tablestore |
| 典型用途 | 变更前回滚 | 误删、勒索、地域故障、合规留存 |
| 计费 | 快照容量费 | 软件使用费 + 存储容量费(部分数据源软件费免费) |
真正的区别在最后两列。快照是"给自己留个后悔药",备份是"假设这台机器彻底完了,我从零把它拉回来"。这两件事的预算、策略、验证方式都不一样,用快照顶备份,等于把保单和房子放在同一个抽屉里。
顺便说一个细节:ECS 实例释放的时候,快照会不会被一起删,取决于你释放时勾没勾那个"同时删除快照"的选项。这个选项平时没人看,出事的时候能让你多掉一层冷汗。
二、云备份到底能备什么
先把范围说清楚,免得以为它只是个"ECS 备份工具"。
阿里云的云备份 Cloud Backup(老名字叫混合云备份 HBR)定位是"统一灾备平台",能接的数据源比想象中杂:
- 云上:ECS 整机、ECS 文件/目录、ECS 上自建数据库、文件存储 NAS/CPFS、对象存储 OSS、表格存储 Tablestore;
- 本地机房:服务器文件、VMware 虚拟机(无代理,只要在 vCenter 上挂一个网关)、大规模 NAS;
- 数据库:自建 MySQL/SQL Server/Oracle、SAP HANA(这家是亚洲首家拿到 SAP 认证的公共云备份服务)。
对我这种小站来说,用得上的其实就三样:ECS 文件、ECS 整机、NAS/OSS。但知道它能覆盖到哪,决定了你以后扩容时要不要换方案。
技术上两个点最值得留意:
变长切片重删。 数据在源端就做去重,只上传"新的数据段",官方口径重删比最高能到 30:1。这个数字在"每天全量备份同一个网站目录"的场景里特别值钱——看起来每天都在备一份完整的,实际存储只涨了一点点。
首次全量 + 永久增量。 第一次备全量,后面只备变化的部分,但恢复的时候可以直接恢复到任意一个时间点,不需要"全量+增量"一层层往回叠。这一点比很多自建方案省心。
三、四个档次怎么选,以及一张真实的账单
云备份的计费项不复杂,但组合起来容易看晕。按"个人站长 / 小团队"的口径,实际就是下面四选一(价格随官方调整,以下仅供估算,以官方页面实时展示为准):
| 方案 | 计费构成 | 适合谁 |
|---|---|---|
| ECS 文件备份基础版 | 0.037 元/GiB/月,按挂载的块存储总容量算,与真实文件多少无关;主账号+子账号全地域共享 100 GiB 免费额度 | 一两台机器、只要文件级恢复 |
| ECS 文件备份标准版 | 软件使用费 50 元/台/月 + 存储容量费(重删压缩后实际用量) | 文件多、变化频繁、要细粒度按目录恢复 |
| ECS 整机备份 | 软件使用费 1 元/台/月 + 快照服务另收的快照容量费 | 想"整机一键拉起来",图省事 |
| 数据库备份 | 备份仓库租用费 + 存储容量费,首 30 天免费,之后每个仓库每月送 100 GB | 有自建 MySQL/PostgreSQL 的 |
拿我自己的机器算一笔:系统盘 100 GiB + 数据盘 200 GiB,挂载块存储总容量 300 GiB。
- 走基础版:
(300 - 100) × 0.037 ≈ 7.4 元/月。注意是拿"总容量"减免费额度,不是拿"你实际有多少文件",所以哪怕盘里只用了 20 GB,只要盘是 300 GiB 就按 300 算。100 GiB 也不是每台机器都有,是整个账号全地域共享的。 - 走标准版:50 元/台/月起步,再加存储容量费。超过三台机器,光软件费就 150 元/月了,这时候该重新算算到底要不要按台数买。
- 走整机备份:软件费才 1 元/台/月,看着几乎白送,但快照容量费是快照服务单独收的,量大了照样肉疼。
还有个容易忽略的:OSS、NAS、Tablestore 的备份软件使用费是 0,而且每个 NAS 文件系统和 OSS Bucket 首次都有一个月免费试用(对应备份库存储也免费)。如果你手上正好有 NAS 或者一堆 OSS 桶,这一块几乎是白捡的,我建议至少先开一个月试试水。
至于按量还是包年包月:开通默认按量,账单基本按小时出(只有 ECS 文件备份基础版是按天的);买资源包会便宜一些,但资源包不支持退款,别一次买太多年。
四、我实际是怎么配的(七步)
不贴一堆控制台截图,就按顺序说清楚逻辑,你照着点不会迷路。
第一步,开通服务。 开通本身不收费,用了才收,这点不用纠结。
第二步,建备份库。 建的时候优先选支持同城冗余的地域——数据会分散在同一个地域的三个可用区,单个机房出问题不影响读取。这是免费的安全边际,没理由不用。
第三步,想清楚"要恢复到什么程度"。 这个决定直接对应上表的四选一。只要能找回几个文件,基础版;要整目录、要细粒度,标准版;要整机起来,整机备份;有自建库,走数据库备份。
第四步,建策略。 三个参数必须自己定,别用默认值糊过去:执行时间(挑业务低谷,放凌晨)、保留时间(多久之前的还能恢复)、是否永久增量。保留期每加一倍,存储费大致也跟着涨,这条要和预算一起看。
第五步,装客户端、关联实例。 文件备份标准版需要装客户端;整机备份不用装,直接在控制台选实例加进计划就行。
第六步,也是最容易被跳过的一步:演练一次恢复。 别等到出事那天才第一次点"恢复"。我现在的做法是每季度挑一个非关键目录,恢复到一个临时路径,看文件在不在、权限对不对、时间戳对不对。恢复不了的备份,等于没备份。
第七步,加告警。 备份任务失败是静默的——它不会弹窗骂你,只会在某天的账单里少一行。把备份任务状态接到云监控告警里,失败就发短信。这条比前面六条都便宜。
五、五个坑,我替你试过了
坑一:备了数据,备不了"能跑起来的东西"。 直接把 MySQL 的 data 目录当文件备份,恢复出来的库经常起不来——非一致性拷贝加上 innoDB 的脏页,运气差就是"表损坏"。有自建库的,老老实实用数据库备份类型,或者至少先把逻辑备份跑一遍再备文件。
坑二:备份库和生产在同一个账号里,还共用一把 AK。 勒索软件最喜欢这种配置。它拿到你的 AccessKey 之后,第一件事不是加密,是先把你所有快照和备份删干净,然后再加密。跨账号备份(备份库放在另一个账号,配合资源目录)和不可变备份(备份库锁定,保留期内删不掉改不了)就是治这个的,两个都开上,成本几乎为零。
坑三:把"免费额度"当成"每台机器 100 GiB"。 100 GiB 是整个账号全地域共享的,四台机器一起上,额度瞬间摊薄。而且基础版是按块存储容量算,加一块盘就涨一次价,不是按你实际存了多少。
坑四:以为开了备份就不怕删。 保留期一过,备份会自动清掉。误删的东西如果你两周后才发现,而保留期是 7 天,那还是没救。定期检查"最近可恢复时间点",比检查"备份是否成功"更重要。
坑五:跨地域复制的流量费没算进去。 备份库跨地域复制能扛地域级故障,但跨地域流量和目标地域的存储是单独收费的。做异地容灾之前先估一下增量大小,别等第一个月账单出来才发现自己给运营商捐了一笔。
另外补一句安全侧的:云备份的鉴权是 RAM Policy 做到备份库级别的,客户端走 STS 临时凭证,源端 AES256 加密、传输走 TLS、备份库里存储再加密一次。这些默认就有,不用额外配,但子账号的授权范围一定要自己收窄,别图省事给个 AliyunHBRFullAccess。
六、最后给一张自查清单
- [ ] 我有几台机器、几个库、几个存储桶,分别归哪种备份类型
- [ ] 备份策略的执行时间在业务低谷,保留期 ≥ 我能容忍的"最晚发现时间"
- [ ] 备份库开了同城冗余
- [ ] 至少有一个备份库在另一个账号或另一个地域
- [ ] 关键备份库开了不可变备份,锁定期覆盖保留期
- [ ] 每季度真实演练一次恢复,不是只看"任务成功"
- [ ] 备份失败告警接到手机上
- [ ] 账单每月看一次,确认没有为"根本不用的容量"付钱
那天凌晨四十分钟恢复完之后,我干的第一件事不是睡觉,是把"恢复演练"写进了季度待办。快照继续留着,它便宜、快、适合回滚;但从那以后,真正让我睡得着的,是那个在另一个账号里、删不掉的备份库。
数据这件事没有"应该没事",只有"我试过,能回来"。

