双机房这件事常被简化成一句话:有钱就上异地。而实际上同城和异地解决的是完全不同的问题,混着说会做出错误的架构。同城双机房能扛住单机房故障,但扛不住整个城市的电力或网络中断;异地能扛住区域级故障,但切换时的一致性和延迟代价很大。

所以选择的第一步不是问价格,而是问自己最怕哪种故障。是机器坏了、机房坏了、还是整个区域不可用了。三种恐惧对应三种方案。
下面把同城和异地分别讲清:各自能覆盖什么、代价是什么、切换时要注意什么,最后给一个按业务重要性选择的框架。
上面这些落到实际,终究要挑一台机器来跑——这几家都是云服务器里比较有代表性的,4 家可选,价格从 22 元拉到 43 元
| 商家 | 推荐款 | 配置 | 带宽与流量 | 月费 | 档位参照 |
|---|---|---|---|---|---|
| 云途 | HK.N4.A | 2 核 2G 20G | 200Mbps / 500G | 22 元 | 存储型,盘位优先 |
| isvoro | HK CN2 Core | 2 核 2G 30G | 100Mbps / 300G | 25 元 | 入门档,先验线路 |
| rabisu | Aydn VPS x8 | 4 核 8G 60G | 500Mbps / 不限 | 34.5 元 | 常规口径,注意超售比 |
| spartanhost | 10Gbps 系列 | 4 核 8G 40G | 10Gbps / 2T | 43.2 元 | 见正文 |
同城两台最直接的检验办法是实测两处互通延迟。云途那条香港产品线分多档,开两台放在不同楼宇成本可控。
同城双机房覆盖什么
最后一个:同城是性价比最高的第一步。
判断方法是看覆盖比例。它解决了大部分常见故障。
而这个起点值得优先做。
还有一个:同城方案的局限要提前说清。
判断方法是看管理层是否理解覆盖范围。理解错会误判风险。
而这个沟通比技术更重要。
还有一点:同城的容灾等级。
判断方法是看机房本身的等级。等级低的自身故障率更高。
而两处都低的,故障概率会叠加。
还有一个:同城的优势在于切换快。
判断方法是看切换需要多久。同城的几秒就能完成。
而这个速度让用户几乎感知不到。
还有一点:同城的资源可以共享。
判断方法是看能否跨处调度。能的话利用率更高。
而这个灵活性是异地带不来的。
还有一个:同城的判断要看距离。
判断方法是看两处的直线距离。太近的可能共享基础设施。
而共享的话故障会同时命中。
还有一点:同城也要看是否跨电网。
判断方法是问两处的供电来源。同一变电站的会被一起影响。
而这个细节通常没人问。
还有一个:同城的网络出口要分开。
判断方法是看两处是否接同一家上游。同上游的断掉会一起断。
而这个判断决定了方案的实际价值。
第一是单机房故障。
判断方法是看两处是否物理独立。电力、网络、消防都要分开。这一条决定了方案有没有意义。
而这个覆盖是最常见的需求。
第二是机柜级故障。
判断方法是看设备是否分散在不同机柜。同柜的会被一起影响。
而这个细节常被忽略。
第三是网络链路故障。
判断方法是看两处是否走不同上游。同上游的会一起断。
而这个判断需要问清机房的上游情况。
同城覆盖不了什么。
判断方法是看是否同一个城市。同城的区域性故障会同时命中两处。
而这种情况必须靠异地。
还有一个优势:延迟低。
判断方法是测两处的互通延迟。同城通常在一毫秒级。
而这个优势让数据实时同步成为可能。
异地的价值在区域故障时才体现,平时是纯支出。sixtynet那几档按年付,长期挂一台备用机压力小些。
异地双机房覆盖什么
最后一个:异地是高等级需求。
判断方法是看业务能否承受成本。
而承受不了的,不必强上。
还有一个:异地要考虑数据出境的问题。
判断方法是看两处是否跨法域。跨法域有额外要求。
而这个约束会影响方案可行性。
还有一点:异地的延迟会影响写性能。
判断方法是实测写操作的耗时。同步写会明显变慢。
而这个变化会直接反映在用户体验上。
还有一个:异地的价值在极端情况下体现。
判断方法是看历史上有过几次区域故障。
而这类故障不常见但破坏力最大。
还有一点:异地的方案要能长期维持。
判断方法是看是否有人维护。没人维护的会慢慢失效。
而这个衰减是隐性的。
还有一个:异地的距离要足够远。
判断方法是看是否跨电网和跨网络骨干。够远的才有意义。
而隔了几十公里的,风险重叠度很高。
还有一点:异地要考虑法规和链路管制。
判断方法是看两地之间的通道是否受限。
而这在跨境场景里是实际约束。

还有一个:异地的时间差会影响备份。
判断方法是看时区是否一致。不一致会影响日志和时间线。
而这个细节在排查时很麻烦。
第一是区域级故障。
判断方法是看两处是否在不同城市或者不同区域。跨区域的才算。
而这个是最强的保护。
第二是同城方案覆盖的所有情况。
判断方法是看异地是否也做了物理独立。做了才叠加。
而只做异地不做独立的,等于少覆盖一层。
异地的代价在哪里。
判断方法是测两处之间的延迟。跨区域通常是几十毫秒。
而这个延迟决定了同步方式。
还有带宽成本。
判断方法是看两处之间的传输量。跨区域的传输费不低。
而这部分常被低估。
还有一个隐性代价:运维复杂度。
判断方法是看是否需要两套部署流程。异地必然要。
而这个复杂度会随时间累积。
数据同步的两种方式
最后一个:方式的选择要看业务能给什么。
判断方法是问业务方要延迟还是要一致。
而两个都要的,成本最高。
还有一个:同步的校验机制。
判断方法是看能否核对两处数据一致。有校验才能确认。
而没有校验的,只能靠运气。
还有一点:同步失败的处理。
判断方法是看失败会怎样。静默失败最危险。
而告警到位的才能及时处理。
还有一个:同步的频率。
判断方法是看是实时还是定时。定时的窗口更大。
而这个窗口决定了最坏情况下的损失。
还有一点:同步的数据范围。
判断方法是看是否全部同步。部分同步的要明确哪些不同步。
而模糊的边界会在切换时出问题。
还有一个:同步方式要按数据类型区分。
判断方法是看不同数据的容忍度。交易和日志的要求不同。
而全部用同一种方式的,会一边浪费一边不够。
还有一点:同步的监控。
判断方法是看是否监控延迟。延迟拉长说明有问题。
而没监控的,等到切换时才发现不一致。
还有一个:同步冲突的处理。
判断方法是看两处同时写会怎样。冲突规则要提前定。
而没有规则的,恢复时会出现矛盾数据。
第一种是同步写。
判断方法是看写操作是否要等两处都完成。等的话延迟会翻倍。
而这个代价在跨区域时很明显。
第二种是异步写。
判断方法是看是否只保证最终一致。异步的延迟低但有数据丢失窗口。
而这个窗口的大小取决于同步频率。
还有第三种:半同步。
判断方法是看是否需要部分确认。半同步是折中方案。
而没有绝对的优劣。
选择的关键是能容忍丢多少数据。
判断方法是把丢失量折算成损失。能扛的可以异步。
而扛不住的必须同步。
还有一个维度:能否容忍乱序。
判断方法是看业务是否依赖顺序。依赖的同步方式要更严格。
而这个要求会抬高成本。
切换时要注意什么
最后一个:切换流程要印出来。
判断方法是纸质备份一份。
而出问题时可能连屏幕都打不开。
还有一个:切换前的最后一次备份。
判断方法是看是否需要。需要的话提前做。
而这个备份是最后的保险。
还有一点:切换后的观察期。
判断方法是看需要盯多久。观察期内不放松。

而这期间可能暴露残留问题。
还有一个:切换后的容量。
判断方法是看单处能否承担全部流量。不能的要降级。
而这个前提常被忽略。
还有一点:切换的权限。
判断方法是看谁能执行。权限不明的会延误。
而半夜找不到人是常见的问题。
还有一个:切换前要停止写入。
判断方法是看是否能短暂停写。能的话切换更安全。
而不能停的,需要更复杂的机制。
还有一点:切换后要通知相关方。
判断方法是看谁需要知道。业务方和客服都要。
而没有通知的,会造成更多困惑。
还有一个:切换的时间窗口。
判断方法是选在低峰。低峰切换的影响最小。
而高峰切换会放大损失。
第一是切换的判定条件。
判断方法是明确什么情况才切。没有标准会犹豫。
而犹豫的时间就是停机时间。
第二是切换的执行方式。
判断方法是看是手动还是自动。自动的快但可能误切。
而误切的代价不比故障小。
第三是数据的一致性。
判断方法是切换后核对数据。可能有不一致。
而这一步不能省。
第四是回切。
判断方法是确认能否切回来。单程方案的风险更高。
而回切往往比切换更难。
还有一个常被忽略的:DNS 和缓存。
判断方法是看切换后多久生效。生效慢的等于没切。
而这个时间要算进切换计划里。
成本怎么对比
最后一个:成本要能解释给非技术同事。
判断方法是把技术项折成钱。
而能折算的才容易被批准。
还有一个:机会成本。
判断方法是看这些投入是否能用在别处。
而这个对比能让决策更理性。
还有一点:故障后的成本。
判断方法是把故障损失也算进对比。
而这个数字往往让方案变得划算。
还有一个:带宽的成本。
判断方法是算同步的数据量和频率。
而这两项决定了传输费的高低。
还有一点:闲置资源的成本。
判断方法是看备用处是否长期空转。空转的也是钱。
而这部分在冷备方案里占比很大。
还有一个:隐性的开发成本。
判断方法是看需要多少改造。双机房往往要改代码。
而这部分最容易被漏算。
还有一点:测试环境的成本。
判断方法是看是否需要两套测试环境。需要的话成本翻倍。
而只做生产不测的,等于没验证。
还有一个:人员培训的成本。
判断方法是看团队是否熟悉这套流程。不熟的会出错。
而培训需要时间和实践。
同城的成本主要是双份资源。
判断方法是算两处的月费总和。通常是单机的两倍。
而这部分的增量很直接。
异地的成本是双份资源加传输。
判断方法是加上跨区域的数据传输费。这部分随数据量增长。
而这个成本容易被漏算。
还有运维成本。
判断方法是算人力时间。异地需要更多协调。
而这个成本最难估。
所以对比要按三年算。
判断方法是把三项都年化。短期看不出差别。
而年化之后决策会变。
还有一个角度:这笔钱能省下多少故障损失。
判断方法是拿停机损失做对比。损失小的不值得。
而这个对比能避免过度设计。
按业务重要性选择
还有一个:把档位和团队能力对上。

判断方法是看团队能否运维这套方案。
而运不了的方案,不如不建。
最后一个:档位定了要写进文档。
判断方法是新同事能看懂。
而口头传递的选择,会慢慢走样。
还有一个:不要试图一次做全。
判断方法是分批推进。
而全做一遍的,多半半途而废。
还有一点:给每档定一个验收标准。
判断方法是明确什么叫做到了。
而没有标准的,永远说不清进度。
还有一个:档位要和预算匹配。
判断方法是看预算能否覆盖三年。
而中途砍预算的,方案会残缺。
还有一点:把选择理由写下来。
判断方法是记录为什么选这一档。
而日后业务变了能对照重评。
还有一个:不同业务线可以不同档。
判断方法是按业务分开评估。核心和保护型分开配。
而全都上最高档的,成本会失控。
还有一点:档位要能升级。
判断方法是看架构是否支持演进。能演进的不必一次到位。
而一次配满的,往往用不上。
还有一个:先做最容易见效的一层。
判断方法是看哪一层覆盖的故障最多。
而那一层的投入产出最高。
第一档:可以容忍数小时中断。
判断方法是看业务是否面向内部。内部系统通常能容忍。
而这档只需每日备份。
第二档:可以容忍几分钟中断。
判断方法是看是否有对外承诺。有承诺的要更快。
而这档适合同城双机房。
第三档:只能容忍秒级中断。
判断方法是看是否有实时交易。有的要求极高。
而这档需要双活加自动切换。
第四档:数据绝对不能丢。
判断方法是看数据能否重建。不能的必须异地。
而这档要异地加验证。
还有一个组合思路:核心走同城,数据走异地。
判断方法是按业务和数据分别处理。分开处理更经济。
而全部上异地的成本会高很多。
几个常见的误判
最后一个误判:以为这次做完就一劳永逸。
判断方法是设定复核周期。
而架构和人一样,需要定期检查。
还有一个:以为架构一旦建好就不用管。
判断方法是看有没有定期复核。
而业务变了,架构也要跟着变。
还有一点:忽视了人的因素。
判断方法是看有没有明确责任人。
而没有人的架构,问题是必然的。
还有一个:以为买了服务就有人管。
判断方法是看服务范围。多数不含架构设计。
而这部分要自己做决定。
还有一点:忽视了运维的持续性。
判断方法是看有没有人负责。
而没人负责的架构,会逐渐失修。
还有一个误判:以为两台机器就是双机房。
判断方法是看是否物理独立。同机房的不是。
而这种情况只解决了机器故障。
还有一点:以为备份等于容灾。
判断方法是看能否快速接管。备份要能恢复才行。
而恢复慢的备份不能算容灾。
还有一个:以为切换很简单。
判断方法是演练一次看要多久。多数情况比预期长。
而这个预期差在真出事时才暴露。
误判一:做了异地就等于高可用。
判断方法是看是否真的能切换。不能切的异地只是备份。
而这个误判最普遍。
误判二:双机房就是双活。
判断方法是看两处是否同时在提供服务。只备不用的不是双活。

而冷备的切换时间很长。
误判三:同城没有价值。
判断方法是看主要风险是什么。多数风险是单机房故障。
而同城正好覆盖这一档。
误判四:只做数据不同步应用。
判断方法是看切换后应用能否起来。应用也要能切。
而只同步数据的,切换时还是要重建。
误判五:切换演练不必做。
判断方法是看多久没演练过。没演练的等于没有。
而演练能发现大部分问题。
第一步是监控到位,否则谈不上切换。rabisu那个按月付费的档价格不高,先起一台做监控和演练足够。
怎么开始
还有一个:把时间表写出来。
判断方法是标注每个阶段的时间。
而没有时间表的,永远在准备阶段。
最后一个:从最容易改的那处开始。
判断方法是看改动成本。成本低的先做。
而一次大改造的,往往会拖很久。
还有一个:先算清楚现在能扛多久。
判断方法是评估当前的单点。
而这个基线是改进的起点。
还有一点:把改进分成阶段。
判断方法是按收益排序。
而按顺序做的,每一步都有产出。
还有一个:先从一个场景开始。
判断方法是选最常见的故障。
而一次做全的,往往哪一层都不牢。
还有一点:把结果量化。
判断方法是记录切换耗时和数据丢失量。
而这些数字能说服人投入。
还有一个:先做监控。
判断方法是看能否发现故障。发现不了就谈不上切换。
而监控是所有这些的前提。
还有一点:把切换流程写成清单。
判断方法是逐条列出动作。有时间压力的需要清单。
而凭记忆操作会漏步骤。
还有一个:定期演练。
判断方法是每季度一次。演练过的才有肌肉记忆。
而只演练一次的,几个月后就忘了。
第一步是把故障场景列出来。
判断方法是按可能性排序。从最常见的开始。
而这个清单决定了投入的方向。
第二步是评估每种场景的损失。
判断方法是按停机损失算。损失大的优先覆盖。
而这个评估比技术选型更重要。
第三步是选覆盖方案。
判断方法是按损失和成本的比例选。性价比高的先做。
而一次性做全的,往往配得过头。
第四步是做一次切换演练。
判断方法是实际切一次。演练比设计更能发现问题。
而没演练过的方案不算方案。
还有一步:把结论和流程写下来。
判断方法是别人能否照着执行。能才算完整。
而这种文档在真出事时价值最高。
把整篇收一句
同城双机房覆盖单点故障,异地覆盖区域故障,两者不是替代关系而是叠加关系。
选择方法是先问最怕哪种故障:机房坏选同城,区域不可用选异地,数据不能丢必须异地。再做一次切换演练验证。
成本对比要按三年算,把资源、传输和运维都算进去,再和停机损失做比较。
最后一句:双机房的价值不在建了多少个,在真出事时能不能切过去。
本文只为提供市场讯息,所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任!
此内容由AI根据文章内容自动生成,并已由人工审核

喜欢
顶
难过
囧
围观
无聊
服务器放在韩国
DODO (DODO) 币
Seppuku (SEPPU
台湾机房和香港