ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

华为双活数据中心白皮书解读:RPO=0、仲裁与切换演练

华为双活数据中心白皮书解读:RPO=0、仲裁与切换演练 简介《华为双活数据中心解决方案白皮书》是一份面向企业IT架构师、容灾规划与运维人员的专业技术文档系统阐释了华为基于Active-Active创新理念的双活数据中心解决方案。文档从数据中心业务趋势切入详细解析存储、主机、应用、网络、安全、传输6个层级的高可靠设计如利用OceanStor V3阵列实现第三方存储整合与数据同步、通过应用虚拟化与跨集群部署实现无缝切换、借助以太/EVN打通大二层网络、以防火墙双活和波分设备11保障业务连续性同时兼顾多租户负载分担、ARP/未知单播优化及集中告警统一运维等能力。压缩包共1个docx文件大小5.6MB内容包含方案概述、核心架构说明、政府/公安/教育/金融/医疗等行业解决方案及客户价值分析图文并茂便于直接用于方案交流和技术研究。目前已有178人学习浏览适合企业容灾建设者、存储与网络工程师以及业务连续性规划人员参考。1. 华为双活数据中心白皮书解决的是“平时不敢切”的问题双活数据中心是这两年灾备规划里被追问最多的词。华为双活数据中心解决方案白皮书核心不是把备份做得更勤快而是让两个数据中心同时运行生产业务任何一个机房出故障业务在几分钟内接管并且数据不丢RPO0。这套方案通常由存储双活、数据库延伸集群、大二层网络和仲裁机制四块拼起来真正落地比想象中琐碎。如果你正在做同城容灾、被“两地三中心”这类概念绕晕或者手里有备机房但始终不敢切换这个方向值得在动手前仔细读完。2. 双活不是灾备的“升级版”三种形态与选型判断不少团队把灾备演进按“冷备→热备→双活”来理解这是错的。冷备和热备解决的还是“备份恢复”双活解决的是“切换模型”两个站点都在跑故障时另一个站点直接顶上。所以选型的第一步不是问“买哪家存储”而是问“业务允许丢失多少数据、允许中断多久”。这两个数字定了方案形态也就框住了后面的存储、网络、数据库选型都围绕它们展开。2.1 双活的前提是同步复制RPO0的代价RPO0意味着主站写的每一笔 IO必须在第二个站点产生一份副本后才能给上层确认。同步复制会放大写时延正常情况下一次写返还给应用约 1 毫秒加了双活变成 2 毫秒以上。距离每增加一公里单程光传输大约增加 5 微秒50 公里的往返差就在 0.5 毫秒左右这个数字对数据库事务已经不能忽略。所以双活的第一个硬边界是距离不是技术做不到是时延拖垮性能。常见做法是把双活限制在同城 40 到 50 公里内用裸纤或波分设备打通。超过这个范围写时延对数据库的影响会明显加大业务侧开始出现 TPS 下降、锁等待改应用还不如改架构。如果距离实在压不下来我一般会退一步做成“同城双活 异地异步复制”的混合模式也就是常说的两地三中心。华为白皮书里的分层思路也基本沿用这个逻辑同城解决零丢失异地解决大范围灾难。2.2 存储网关双活与存储原生双活区别在 IO 路径存储层双活在华为方案里最常见的是 HyperMetro阵列自带的双活特性。它把两台存储上的 LUN 绑定成一个双活 LUN两端都可读可写但写 IO 必须等两端都落盘成功才返回所以也叫“写两次读任一端”。这就要求两端存储的性能尽量对齐慢的一端会拖住整体时间长了你会发现整个双活集群的性能上限取决于那块最慢的盘。另一种是基于虚拟化网关的双活网关在存储前面做 IO 分发好处是能接管异构存储坏处是每一笔 IO 都多一跳网关故障点也多。我做选型时一般会问三个问题是不是全华为存储、是否接受 IO 路径多一跳、有没有统一管理平台。三个答案都是“是”优先原生双活。这张对比表可以帮团队快速对齐方案形态IO 路径异构接管故障域适合场景存储原生双活HyperMetro最短阵列直连不支持阵列级全华为存储追求低时延存储网关双活多一跳网关支持网关本身成单点存量异构存储利旧数据库延伸集群走数据库私有网络看数据库类型网络抖动敏感Oracle RAC、GaussDB 同城双活应用层双活无共享存储完全自主应用改造大业务已微服务化能接受改造2.3 数据库延伸集群是另一条腿存储双活不等于应用双活存储双活解决的是块设备但上层应用要靠锁和缓存协同工作。两个站点同时读写一份数据仅仅让存储层“能读能写”远远不够数据库必须知道对端节点还活着、谁持有哪块数据的锁。Oracle RAC 延伸集群就是为这个场景设计的两个站点各放一组节点共享同一份双活 LUN中间靠 Cache Fusion 网络实时交换数据块。这个网络一抖动数据库会触发节点驱逐把节点踢出集群业务直接断。所以白皮书方案里数据库延伸集群的前提是机房之间时延足够低、抖动足够小并且必须配独立的私有网络。如果业务用的是 MySQL 主从那就不叫双活因为从库不可写切换过去有数据补偿成本。双活与主从的差别要跟业务方讲清楚否则到了验收阶段业务说“我要双活”架构给的是“主从半同步复制”两边对需求的认知完全不在一个维度。这也是双活项目最容易被低估的一步。3. 从白皮书到机房仲裁、心跳与切换时间窗口的计算双活系统最怕的不是故障是“两个站点都以为对方挂了然后同时接管”。这叫脑裂后果是两边同时写同一批数据数据分叉后面怎么补救都补不齐。所以每个双活方案都带一个仲裁者用于打破僵局。华为方案的仲裁可以部署在第三方站点也可以做成仲裁虚拟机放到云端关键不在形态而在它必须独立于两个业务站点之外。3.1 仲裁部署位置与三个必调参数仲裁的职责很单一心跳断链后由它决定谁继续提供服务。两个业务站点加一个仲裁站点只有拿到仲裁认可的一方才能继续写另一方转入只读或待机。这个机制听起来简单落地时参数错了照样出事故。我一般会盯三个参数心跳间隔、失联判定次数、仲裁超时。心跳间隔默认约 1 秒连续丢失 3 次判定断链仲裁超时建议设在 30 到 60 秒给网络抖动留一点缓冲。这里要特别提醒参数不是越大越好。超时设得太长切换时间会跟着拉长业务中断的窗口变大设得太短一次轻微抖动就会触发仲裁切换两边来回倒比不切还惨。常见做法是把仲裁部署在第三方机房或云上网段独立带宽要求很低几百 kbps 就够但网络质量必须高丢包率要逼近 0。仲裁和业务站点同机房属于自杀式设计站点级故障一来仲裁跟着一起没了。提示仲裁站点不要和任何一个业务站点放在同一机房否则起不到“第三方”的作用。3.2 心跳网络要独立成网别和复制链路混在一起双活系统里至少有三张逻辑网络业务网络、复制网络、心跳网络。复制网络承载两个存储阵列之间的数据同步流量大、持续性强一般 10GE 起步心跳网络只是每隔一秒发几个报文千兆都够但要独立 VLAN。最容易踩的坑是把心跳报文和复制流量放在同一个 VLAN 里数据量大时心跳抖动仲裁误判链路中断触发毫无必要的切换。搭建时我会用华为三层交换机做隔离心跳和复制各占独立 VLAN三层路由策略收紧只放行该放的网段。接口配置成 trunk 时要显式指定放行列表不要图省事允许所有 VLAN 通过。环网防护也要配好开启 STP 或华为的 RRPP否则两站点二层打通后广播域膨胀一个交换机配置失误就能把整张网打瘫。心跳链路最好走两条物理路径一台交换机挂掉不至于让双活失明。3.3 切换时间窗口RTO 是算出来的不是白皮书写出来的双活不是零切换。即使 RPO 等于 0业务从故障到恢复仍然要经历一串步骤心跳感知、仲裁确认、存储角色切换、数据库节点接管、应用重连。每个环节都要花时间加起来就是真实的 RTO。华为白皮书上写的是方案的理论能力你真正要的是自己机房里实测的切换时间。列预算表时可以参考这个典型值切换环节预算时间测量方法心跳感知与仲裁确认10 至 30 秒从中断到仲裁出现投票记录存储双活角色切换20 至 60 秒从确认故障到 LUN 可写数据库 failover30 至 120 秒从节点驱逐到新主库对外可用应用连接池重连60 至 120 秒从数据库可用到应用请求成功率恢复这个表算下来典型 RTO 在 3 到 8 分钟而不是很多人以为的“秒级切换”。秒级的是仲裁感知速度不代表业务恢复速度。测量这些值只有一个办法做切换演练把每一段的耗时记录下来。纸上算的和实测的往往差一倍以上差得最多的永远是应用重连那一环。4. 双活实施避坑五个让我加班的翻车现场下面这些坑白皮书里基本不会写但它们才是双活项目从“上线”到“敢切”之间真正的拦路虎。每一条我都见过真实事故按“现象→原因→解决”写出来希望你不用再经历一遍。4.1 光纤割接导致业务闪断存储状态却完全正常现象某次机房光纤割接业务出现十几秒闪断数据库告警但存储双活状态显示 normal两端没有切换记录。原因心跳报文和业务流量挤在同一个 VLAN割接引起的广播抖动让仲裁误判链路中断触发了一次自动切换又马上恢复两边来回倒了一次。解决心跳网络独立 VLAN仲裁超时从默认值调大心跳链路做双物理路径冗余。从那以后我坚持心跳网络必须和复制、业务完全隔离这个原则没有再破例。4.2 数据库 RAC 节点被驱逐实例直接 down 掉现象双活运行平稳某天网络设备升级数据库集群突然节点驱逐实例全部重启。原因延伸集群对 Cache Fusion 网络的时延极度敏感过大的抖动让集群认为对端节点离线触发了驱逐机制。解决给数据库私有网络单独划分 VLAN 并做 QoS 保障确保它在业务高峰期不被复制流量挤占调整 RAC 的 misscount 参数要慎重先确认网络再动参数否则只是把问题往后拖。4.3 大二层广播风暴三层交换机 CPU 打满现象双活两个站点二层打通后业务频繁卡顿交换机 CPU 飙到 90% 以上ping 网关丢包严重。原因接入设备做了 trunk 放行所有 VLAN加上没有配置环路抑制机制一个环路就能把广播报文放大到全网。解决trunk 接口收紧 allow-list只放行必要 VLAN接入端口关闭自动协商全网开启环路检测华为设备上可以启用 RRPP 或 STP收敛时间要提前实测。4.4 切换演练一切正常应用却起不来现象存储切换成功数据库也能访问但应用一直报连接超时演练被迫中断。原因应用启动顺序没人编排数据库还没完全就绪中间件已经启动并缓存了旧的连接信息连接池没有重连机制。解决把启停顺序固化成编排脚本按“存储→数据库→中间件→应用”的顺序执行并在中间件启动前加健康检查探针。每次演练记录每个环节的启动时间对比上次的差值能提前发现问题。4.5 双活两端流量平均分配整体性能反而下降现象领导要求两个机房“充分利用”用全局负载均衡把流量调到各 50%结果总吞吐率比之前单机房还低。原因双活不是负载均衡。存储双活和数据库延伸集群本身有写放大和缓存同步开销流量越均衡跨站点交互越频繁性能损耗越大。解决双活两端按“主一备一”规划资源平时流量错开例如 7:3 分配让多数读写落在同一边。故障时才把流量切过去这本来就是双活的设计初衷。5. 验证双活可信季度切换演练与四个长期监控指标5.1 切换和回切都要练记录时间预算表双活验证不能只看上线时的验收报告它应该是一个长期动作。我所在团队的节奏是每季度做一次切换演练每次演练都记录仲裁确认时间、存储切换时间、数据库拉起时间、应用恢复时间和 3.3 节那张预算表逐项对比。回切比切换更难因为回切时两端数据状态不同步的概率更大忽略回切演练等于只练了一半。演练中如果发现某个环节超过预算就当故障处理找出原因再练一次。5.2 四个长期监控指标缺一个都不踏实监控指标目标值异常动作复制链路时延小于 1 毫秒持续升高则检查波分/裸纤质量心跳网络丢包率接近 0触发告警并检查隔离策略双活一致性组状态normal降级时优先排查仲裁网络数据库 Cache Fusion RTT小于 1 毫秒抖动明显时检查专用 VLAN 的 QoS这四个数字决定了双活是不是真的随时能切。前两个反映链路健康第三个反映存储层同步状态第四个反映数据库延伸集群的协同质量。不要只看图表里有没有告警要看趋势复制时延逐月上涨比一次性抖动更可怕它说明光模块或交换机端口在老化。有一年我们因心跳复用业务网割接时全站告警从那以后我坚持三网独立、季度演练不动摇。白皮书给的是框架真正让双活可信的是每次演练的记录和这些持续跳动的数字希望帮到你。本文还有配套的精品资源点击获取
返回列表