4. 医疗系统基础设施高可用设计
医疗系统的高可用,最终要落到基础设施层。HIS、EMR、LIS、PACS 这些核心业务一旦中断,门诊挂号、医嘱执行、检验回传、影像调阅都会同时受阻,因此基础设施设计的目标不是“单台设备不坏”,而是“任一机房、任一链路、任一可用区故障时,业务仍能继续提供”。本节围绕双活数据中心、多可用区部署、网络冗余与医疗专网接入四条主线展开,重点说明它们各自解决什么问题、如何组合,以及实际落地时的关键参数与判断依据。
双活数据中心:从“主备切换”到“同时承载”
传统容灾多采用“主中心运行、备中心待命”模式,故障时需经历数据库切换、存储挂载、应用启停,RTO 常在 30 分钟以上。双活数据中心则要求两个中心同时承载业务流量,任一中心故障时,另一中心在分钟级甚至秒级内接管。医疗场景下,双活通常分两个层次:应用双活与数据双活。
应用双活相对容易,两个中心各部署一套无状态应用节点,通过全局负载均衡(GSLB)按健康状态和就近原则分发请求。数据双活是难点,核心是数据库与存储的同步方式。以同城双活为例,两中心距离通常控制在 30~50 km,光纤往返时延约 0.5~1 ms,可采用数据库同步复制或存储同步复制,保证 RPO≈0。若跨城双活,距离超过 100 km,时延升至 2~5 ms,同步复制会显著拖慢写入,此时更合理的是“同城双活 + 异地异步复制”的三中心架构:同城两中心同步双活,异地中心异步复制承担灾难恢复。
判断双活是否真正成立,不能只看“两个机房都在跑”,而要验证三点:一是任一中心整体断电后,业务是否在约定 RTO 内恢复;二是切换过程中是否出现数据丢失或主键冲突;三是切换后原中心恢复时,能否安全回切而不产生双写。建议在投产前做一次“单中心强制下线”演练,记录实际切换耗时与数据差异条数,作为验收依据。
多可用区部署:把故障域切小
多可用区(AZ)部署的本质是故障域隔离。同一地域内不同 AZ 拥有独立的供电、制冷和网络接入,单个 AZ 故障不会波及其他 AZ。医疗系统可按业务重要性分层部署:核心数据库采用“同城两 AZ 同步 + 第三 AZ 异步”的多数派模式;应用节点均匀分布在三个 AZ,通过负载均衡健康检查自动摘除故障 AZ 的节点;PACS 影像等大流量、可容忍短时延迟的业务,可跨 AZ 做对象存储冗余。
多 AZ 部署的关键参数是AZ 间时延和跨 AZ 流量成本。以某区域云为例,同城 AZ 间时延约 1~2 ms,跨 AZ 流量按 GB 计费。若数据库同步复制每秒产生 50 MB 跨 AZ 流量,一天约 4.3 TB,成本不可忽视。因此实际设计中,读请求尽量本地 AZ 消化,只有写请求和强一致读才跨 AZ,既保证一致性又控制成本。
网络冗余:链路、设备与协议三层防护
网络冗余要同时覆盖链路、设备和协议三个层面。链路层采用双运营商接入,主备链路通过 BFD 快速检测,切换时间可控制在 50 ms 内;设备层核心交换机、防火墙、负载均衡均成对部署,采用堆叠或 VRRP 实现网关冗余;协议层通过 OSPF/BGP 动态路由实现路径自动收敛,避免静态路由单点失效。
医疗专网接入是网络冗余中的特殊环节。医院与医保、区域卫生平台、疾控等外部机构之间,通常通过专线或 VPN 接入医疗专网。专网接入必须满足双向冗余:主用专线中断时,备用专线或 5G 切片链路自动接管,且切换过程不能导致医保结算会话中断。实际配置中,可在边界路由器上设置浮动静态路由或 BGP 多路径,主链路优先级高,备链路仅在主链路 BFD 检测失败时生效。同时,专网侧应部署入侵检测与访问控制策略,只放行必要的业务端口和源地址,避免专网成为攻击入口。
四条主线的协同关系
双活数据中心、多可用区、网络冗余和医疗专网接入不是四件独立的事,而是一套组合拳。双活解决“机房级故障”,多可用区解决“机架级/供电级故障”,网络冗余解决“链路和设备级故障”,医疗专网接入解决“外部机构连接的单点问题”。四者叠加后,故障域被逐层切小,任何单点失效都不会直接导致业务中断。
实际落地时,建议按以下顺序推进:先完成网络冗余和专网双链路,因为这是所有上层架构的基础;再完成多可用区应用部署,让应用层具备横向扩展和故障隔离能力;最后实施数据库双活与存储同步,因为数据层改造风险最高、对业务影响最大。每一步完成后都应做一次故障注入演练,例如手动关闭一个 AZ 的应用节点、断开主专线、模拟主数据库宕机,观察业务是否自动恢复、恢复耗时多少、是否有数据不一致。
关键参数与判断依据
| 设计维度 | 关键参数 | 典型取值 / 判断依据 |
|---|---|---|
| 同城双活 | 中心间时延、同步复制 RPO | 30~50 km,时延 0.5~1 ms,RPO≈0 |
| 跨城容灾 | 异步复制 RPO、RTO | RPO 秒级~分钟级,RTO 15~30 分钟 |
| 多可用区 | AZ 间时延、跨 AZ 流量成本 | 时延 1~2 ms,读本地化、写跨 AZ |
| 网络冗余 | BFD 检测间隔、切换时间 | 检测 50 ms,切换 < 50 ms |
| 医疗专网 | 主备链路切换、端口白名单 | 主备自动切换,仅放行必要业务端口 |
需要特别注意的是,双活并不等于“两个中心完全对等”。在多数医疗系统中,主中心仍承担主要写入流量,备中心承担读流量和灾备接管。这种“主写备读”的双活模式更容易实现,也能在故障时快速切换。若追求完全对等的双写,必须解决数据冲突检测与合并问题,复杂度会显著上升,通常只在少数核心业务上采用。
最后,基础设施高可用设计必须与业务连续性目标对齐。不同业务对 RTO/RPO 的要求不同:急诊、手术麻醉等业务要求 RTO 分钟级、RPO 接近零;而报表、科研等业务可容忍小时级中断。按业务分级配置资源,才能把有限的预算花在真正关键的地方,避免“所有系统都按最高标准建”导致成本失控。