数据备份恢复怎么选?别等硬盘挂了才想起没做冗余
硬盘坏掉的那天,你最先想到的往往不是数据值多少钱,而是上一次完整备份是什么时候。我见过太多站长把备份等同于「服务器自带的那块盘再加一块」,直到误删一个库或者中了一次勒索,才发现两份数据躺在同一个机箱里,一起没了。这篇讲的是怎么按真实恢复场景去选备份方案,不是把参数堆在一起让你自己猜。
先搞清楚你要防的是哪种丢数据
丢数据的原因不一样,方案完全不一样。硬件故障是概率问题,误操作和勒索是人为问题,机房级事故是运气问题。这三类里,只有第一类能靠 RAID 顶一顶。
RAID 1 和 RAID 5 解决的是单块盘挂掉时业务不停,它不解决你把表删了、把文件覆盖了这种情况。删库那一刻,RAID 会忠实地把删除同步到每一块盘上。所以我一般会先问一句:你怕的是盘坏,还是怕手抖?
如果答案是后者,你需要的不是冗余,是带时间点的快照和异地副本。这两样东西 RAID 给不了。
3-2-1 原则落到租服务器上是什么样
3-2-1 说的是三份数据、两种介质、一份异地。听起来像口号,落到机房里其实很具体。
- 本机一份:跑业务的那台机器上的数据,随时可读。
- 同机房另一台一份:内网走千兆,几百 GB 的增量几十分钟能同步完,成本最低。
- 异地一份:放另一个城市甚至另一个国家的机房,用来扛机房级事故。
前两份好办,难的是第三份。异地那份如果延迟高、带宽小,真出事的时候你拉回来的时间会以小时甚至天计。按我的经验,异地节点选香港或日本,大陆访问延迟大致在 30ms 到 60ms 之间,白天恢复几百 GB 的数据是可行的。选美国西海岸,延迟通常 150ms 起步,带宽再大也补不回往返时间。
预算方面,一台 香港裸机云 IX,E5-2690*2 配 32G 内存、20M 带宽,月付 144 美元,拿来当异地备份节点是够用的。20M 带宽跑满一天理论上能传 200GB 出头,日常增量备份完全跟得上。
备份节点怎么配才不拖后腿
备份机不需要多强的 CPU,但有两样东西不能省:盘和带宽。
盘上我倾向用大容量 SATA 或者企业级 HDD 做存储池,而不是全上 SSD。备份是顺序写入为主,SSD 的随机性能用不上,同样的钱买机械盘能多出三四倍容量。内存 32G 起步,跑 ZFS 或者 btrfs 做校验和快照需要吃内存,16G 会紧张。
带宽这块要看你的恢复目标。想做到「当天出事当天拉回」,异地节点至少给到 20M 以上独享。共享带宽在晚高峰会掉速,恢复窗口就不确定了。
还有个容易被忽略的点:备份任务本身要限速。不限速的全量同步会把业务机的上行打满,用户访问直接卡住。我一般把备份窗口放到凌晨,并且给 rsync 或者备份软件加个带宽上限。
恢复演练比备份本身更值得花时间
备份做了不等于能恢复。这是我最想强调的一条,也是最容易省掉的一步。
很多人的备份脚本跑了大半年没报错,真去恢复的时候才发现:增量链断了一环、权限没带过去、数据库的事务日志没同步。等到线上出事才验证,代价就是停机时间翻倍。
我的做法是每个季度挑一台非核心机器,完整走一遍恢复流程,从拉取数据到业务起来,掐表看用了多久。这个数字才是你真正的 RTO。如果超过业务能接受的范围,就得回去调方案,而不是安慰自己「应该没事」。
异地节点如果放在日本,日本高防服务器 XIV 是 E5-2680*2、32G、50M 带宽、月付 239 美元,带宽比香港那台宽,适合数据量偏大、又不想把预算拉到很高的场景。
结论给得直接一点:只有一台机器、数据量在几十 GB 以内的个人站长,本机快照加一份对象存储就够,别为备份单独租服务器;数据上百 GB、有明确恢复时间要求的,按 3-2-1 配两台,同城一台加香港或日本一台,月成本大致落在 150 到 300 美元;跑数据库或者有合规要求的,异地那份必须独立机房,并且每季度演练一次。预算再紧,也别把三份数据塞进同一个机箱。