区域医学影像生产系统高可用架构探索与实践

2024-01-05 21:30黄舜霞杨新文
现代医院 2023年9期
关键词:医学影像集群架构

黄舜霞 陈 广 杨新文

深圳市龙华区中心医院 广东深圳 518110

深圳市龙华区成立之初,尚未建立区级卫生专网和开展区域信息化建设,区域内医疗机构之间,医院与社康中心之间信息壁垒普遍存在,业务协同缺乏信息化支撑。2017年,深圳市龙华区卫生健康局启动区域智慧医疗总体规划及建设,按照一体化及集约化建设原则,统筹区域医疗核心业务系统,其中就包括构建了全区统一的医学影像、检验等医技平台,打通医疗机构间的信息壁垒,实现医疗集团内部的集中诊断、跨机构的检查检验等业务协同。

1 现状及存在问题

深圳市龙华区区域智慧医疗共接入了3家公立医院、2家公卫机构、1家民营医院,84家社康中心,日均影像检查人次达6 500人次,日均影像存储达250 G,高峰期将近450 G。全区医学影像数据量庞大,且以小文件居多,随着高端大型设备的不断投入,影像数据质量及数据容量越来越高,传统上通过采用高性能的磁盘来存储影像的做法已无法满足设备产生的海量影像文件高效归档及长期保存的需求。

如何保障全区放射、超声、内镜、病理等影像业务系统的稳定性及全区海量影像文件存储,亟须搭建一套稳定、高可用的区域医学影像生产系统,满足医疗机构内业务连续性及跨机构间影像调阅需求。

2 影像系统高可用架构实践

2.1 主要技术

深圳市龙华区医学影像系统通过采用多种集群架构技术,存储方面,利用Windows Server故障转移集群技术,搭建高可用服务器集群,集群中的节点采用集群共享卷技术,实现任一集群节点对存储资源的共享访问;数据库方面,应用SQL Server AlwaysOn技术及MySQL主丛复制、组复制等数据库备份容灾技术,实现数据层面的容灾;接入层方面,利用LVS+keepalived及Nginx负载均衡技术,实现第四层加第七层的混合流量负载均衡;影像存储方面,采用热、温、冷分级存储,实现对在线、近线及归档影像文件的分层存储。

2.1.1 存储高可用技术 ①Windows Server 故障转移群集(WSFC):WSFC是微软高可用技术的核心组成部分。WSFC可以把多台计算机节点组合在一起并对外部应用程序提供高可用服务。SQL Server作为服务器上的一个应用,可运行在集群的任一节点上,并通过集群提供一个虚拟访问点给客户端程序作为链接方式。当故障转移集群中的某台服务器发生故障或不可用,WSFC中的另一台服务器将接管故障节点提供的服务继续对外提供服务。②集群共享卷(CSV):CSV 是一种通用的集群文件系统,它将连接到集群节点的磁盘托管的卷映射到每个集群节点上的C:ClusterStorage目录,使每个群集节点都能够同时对共享卷进行读取和写入。

2.1.2 数据库集群技术 ①SQL Server AlwaysOn:AlwaysOn 可用组是SQL 2012引入的新的高可用技术。它借助WSFC进行资源组的管控。AlwaysOn可用性组最多可支持5个可用性副本,即一个主副本以及一至四个辅助副本[1-2],只有主副本上运行的数据库是处于可读写状态,称为主数据库。其余副本均作为辅助副本,辅助副本上的数据库,也称为辅助数据库,只能接受只读操作。正常情况下,主副本会不断地将主数据库上的数据变化发送给辅助副本,从而实现副本间的数据同步。一但发生故障转移,辅助副本将成为新的主副本实例,来完成数据库的读写操作。②MySQL数据库容灾备份技术:MySQL的数据库容灾技术包括主丛复制和组复制两种技术。MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点,从而保持主丛数据库的数据一致性,一般采用异步主丛复制和半同步复制两种模式,因搭建灵活,可方便地实现读写分离而被广泛应用。而MySQL 组复制(MGR)是MySQL分布式数据库容灾备份的重要技术手段[3],由多台MySQL服务器共同组成一个复制组,组成员通过消息传递服务,实现数据状态的同步,保证了组成员都拥有完整的数据,避免了主丛模式引起的副本数据不可靠的问题。

2.1.3 接入层高可用 ①LVS+Keepalived:LVS(linux virtual server),即Linux虚拟服务器,是建立在传输层(OSI模型第四层)数据请求负载均衡技术,支持NAT(network address translation)网络地址转换、TUN(tuning)隧道和DR(direct routing)直接路由三种工作模式。Keepalived则专门用于检测LVS集群中各节点服务器的可用性,采用虚拟路由冗余协议(VRRP)实现Linux集群服务器的多机热备功能,避免静态路由出现的LVS集群单点故障问题。②Nginx负载均衡:Nginx提供高性能、轻量级的HTTP和反向代理服务,通过轮询、权重等调度算法,将负载(工作任务)进行平衡、分摊到多个计算节点上进行运行[4-6],实现基于应用及内容的七层交换负载均衡,具备高稳定性、低系统资源消耗的特性。

2.1.4 影像分级存储 医院的医疗数据中,绝大部分为医学影像数据,医学影像具有数据量大,读写效率要求高的特点,目前,还没有任何存储介质能同时满足高效读取、海量存储且低成本的要求[7]。在这个现状下,产生了医学影像分级存储的技术架构实践。较为成熟的应用通常采用热、温、冷三级存储,即采用具有读写性能高、吞吐量大等特性的集中式SAN存储或NAS存储存放一年内的在线影像;使用低成本、海量存储空间的分布式存储,结合分布式存储特有的存储阵列内及跨阵列多种分级策略能力,存放一年以上五年以下的在线存储,同时在线存储存放近线影像的索引文件,以便提供快速调取能力;五年以上归档影像则存放于磁带或蓝光设备[8-9]。

2.2 平台总体架构

区域医学影像生产系统整体架构(见图1)在超融合平台上,由21台虚拟服务器及5台搭载GPU的物理服务器组成,其中数据库服务器8台,包括3台SQL Server数据库服务器集群,用于影像检查业务数据存储,3台MySQL组复制数据库服务器集群,用于存储接口服务及云胶片、检查预约等Web服务数据,2台MySQL主丛复制集群,用于存储AI及高级影像的任务分发数据;生产业务应用服务器9台,其中6台提供放射、超声、内镜、病理工作站生产业务应用服务,3台用于供三维影像后处理服务; 2台文档服务器集群及1台文档网关,用于提供影像检查报告PDF、HTML、CDA文档的发布服务,1台外部接口服务器用于与区全民健康信息平台、市影像平台进行数据及影像交互。

接入层由LVS+Keepalived HA集群提供的统一入口VIP,利用四层加七层的混合负载均衡技术实现高并发和高可用。影像存储方面,分别采用集群共享卷、分布式对象存储、蓝光存储来实现在线、近线及归档影像的分级存储。

2.3 基于LVS+Keepalived+Nginx混合负载均衡的接入层高可用集群

医学影像区域平台利用开源的LVS +Keepalived+Nginx技术,搭建接入层混合负载均衡高可用集群架构。部署2台LVS服务器组成HA集群,并提供虚拟IP供客户端访问,同时,在LVS服务器上部署Keepalived,负责检测LVS服务器的状态,当主服务器出现故障时,自动进行LVS服务器主/备切换,备用服务器可迅速接管并对外提供服务,避免LVS服务器单点故障导致请求失败从而引起整个集群故障。而Ngnix集群则连接应用服务器高可用集群,负责后端应用服务器的流量路由和负载均衡。

2.4 多种数据库高可用架构

2.4.1 WSFC+SQL Server AlwaysOn高可用架构 SQL Server数据库集群采用Windows故障转移集群(WSFC)+SQL Server AlwaysOn 方案,客户端通过链接集群虚拟IP访问集群主服务器(主副本),与此同时,主副本将每个主数据库的事务日志记录发送到每个辅助数据库,通过“数据同步”过程,主数据库与每个连接的辅助数据库独立进行数据同步[10]。当主服务器因故障导致服务不可用或者不能处理客户端请求时,这时集群服务在自动尝试重启当前节点无效后,会将请求转移到集群内的辅助副本节点,实现数据库快速接管。同时数据库提供集群管理功能,可以管理集群中的所有只读实例,并且提供一个只读虚拟地址,实现读请求根据权重自动转发到所有只读实例,以保证数据查询等只读应用最优性能,真正实现读写分离。

2.4.2 MySQL数据库高可用架构 考虑面向患者的Web服务可能存在集中高并发的情况,搭建3台MySQL数据库服务器集群,用于存储接口服务及云胶片、检查预约等Web服务数据及病理标本追溯数据。采用基于原生复制及分布式paxos协议的组复制技术,保证组内的每台服务器节点的数据始终一致。同时,部署bootstrap模式的MySQL Router访问代理及Keepalived高可用服务集群,利用组复制技术的高容错特性及基于端口的读写负载均衡,当1台或2台节点故障,也能保证连接到故障节点的客户端,可通过重定向或故障转移连接到可用的集群节点,从而减低对业务的影响程度。对于AI及高级影像的任务分发数据,则采用2台MySQL主丛复制集群,通过读写分离,来提高整体的服务性能,也解决了MySQL的单点故障问题[11-13]。

2.5 应用服务器高可用架构

将9台应用服务器组成PACS应用服务器集群, 提供放射、超声、内镜、病理工作站数据接收、影像存储、三维服务等业务应用服务。其中6台应用服务器分别部署工作列表、数据接收、数据管理、文件存储、任务管理等PACS业务相关服务。三维影像后处理由于需要耗用较多的系统资源,则通过部署3台服务器组成集群独立处理相关业务。不同的服务通过端口配置不同的访问流量权重,当医院客户端通过虚拟IP访问应用服务器集群时,客户端请求并不是直接指向后端的应用服务器,而是由LVS服务器通过加权轮询算法,将请求转发至Nginx服务器,在保持连接的同时,由Ngnix集群将相同的请求内容,通过采用反向代理异步传输模式,根据预设的应用服务权重情况,将客户端请求均衡到每台应用服务器上。应用服务器完成请求处理后,则采用DR技术,将响应数据直接返回到客户端,从而缩短了数据的应答路径。当某台应用服务器出现故障时,可迅速将服务器从集群中剔除,从而保障系统高可用。

同时,利用先进的高性能影像集群架构,部署CPU+GPU并行的影像高级处理及人工智能计算框架,创新性引入GPU计算单元,突破了传统的单一采用CPU的计算模式,让CPU和GPU各司其职,极大提升对医学影像大数据的处理,图像的渲染速度,解决了过去主要依赖CPU单向处理图像的瓶颈,实现医学影像即时获取、即时展现、即时计算、即时重建等相关的影像处理能力。

2.6 基于Kubernetes容器的微服务应用

利用容器可弹性收缩的特性,将接口服务、面向互联网的云胶片等服务,采用Kubernetes(K8S)容器管理服务,将服务打包成Docker镜像,通过K8S动态分发和部署,实现服务快速、动态扩容,弹性收缩,以应对高并发的业务应用。

2.7 影像文件分级存储架构

深圳市龙华区现有医学影像数据约220 T,日均影像文件250 G,极端高峰期可达450 G。海量的影像数据增长,对存储I/O性能提出了更高的要求,采用传统的集中式存储架构将面临昂贵的存储成本。

为兼顾影像数据高性能读取和低成本保存需求,我区影像采用三级存储结构,通过影像自动分级存储和蓝光归档,解决了海量影像数据高效存储及访问的难题,实现影像数据的全流程自动管理。其中,在线影像(一年内的影像)采用架构在超融合的全闪NAS存储,满足在线数据高性能、低时延的访问需求,并利用Windows 服务器故障转移群集(WFSC)技术,保证每台应用服务器均可访问共享存储卷。近线影像(五年内的影像)采用双活分布式对象存储保存,满足近线影像高容量、低成本的存储需求。结合分布式存储特有的存储阵列内及跨阵列多种分级策略能力,在共享存储卷存储存放近线影像的索引文件,实现近线影像的快速调取。五年以上影像数据则采用蓝光存储归档,满足影像数据长达50年长期留存的需求,并结合数据预热机制,即当患者预约签到或登记时,系统自动将蓝光上的归档影像,迁移至对象存储设备,再从对象存储迁移到集群共享卷,实现患者历史影像的快速访问。

3 结论

医疗业务稳定高效运行是医疗信息化建设的重中之重,任何信息化服务中断对于就医服务来说无疑都是重大挑战,因此,为确保系统7×24 h无故障稳定运行,深圳市龙华区卫健局采用高可用、高并发、高安全性集群架构设计,实现接入层、应用层、数据层的高可用,并采用集群共享卷、影像分级技术,从数据库、应用系统、影像存储等方面探索区域医学影像生产系统的高可用性最佳实践之路。

猜你喜欢
医学影像集群架构
基于FPGA的RNN硬件加速架构
医学影像技术在医学影像诊断中的合理运用
《当代医学影像误诊学》出版
《当代医学影像误诊学》正式出版
功能架构在电子电气架构开发中的应用和实践
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
LSN DCI EVPN VxLAN组网架构研究及实现
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人