黃舜霞 陳 廣 楊新文
深圳市龍華區(qū)中心醫(yī)院 廣東深圳 518110
深圳市龍華區(qū)成立之初,尚未建立區(qū)級衛(wèi)生專網(wǎng)和開展區(qū)域信息化建設,區(qū)域內(nèi)醫(yī)療機構之間,醫(yī)院與社康中心之間信息壁壘普遍存在,業(yè)務協(xié)同缺乏信息化支撐。2017年,深圳市龍華區(qū)衛(wèi)生健康局啟動區(qū)域智慧醫(yī)療總體規(guī)劃及建設,按照一體化及集約化建設原則,統(tǒng)籌區(qū)域醫(yī)療核心業(yè)務系統(tǒng),其中就包括構建了全區(qū)統(tǒng)一的醫(yī)學影像、檢驗等醫(yī)技平臺,打通醫(yī)療機構間的信息壁壘,實現(xiàn)醫(yī)療集團內(nèi)部的集中診斷、跨機構的檢查檢驗等業(yè)務協(xié)同。
深圳市龍華區(qū)區(qū)域智慧醫(yī)療共接入了3家公立醫(yī)院、2家公衛(wèi)機構、1家民營醫(yī)院,84家社康中心,日均影像檢查人次達6 500人次,日均影像存儲達250 G,高峰期將近450 G。全區(qū)醫(yī)學影像數(shù)據(jù)量龐大,且以小文件居多,隨著高端大型設備的不斷投入,影像數(shù)據(jù)質(zhì)量及數(shù)據(jù)容量越來越高,傳統(tǒng)上通過采用高性能的磁盤來存儲影像的做法已無法滿足設備產(chǎn)生的海量影像文件高效歸檔及長期保存的需求。
如何保障全區(qū)放射、超聲、內(nèi)鏡、病理等影像業(yè)務系統(tǒng)的穩(wěn)定性及全區(qū)海量影像文件存儲,亟須搭建一套穩(wěn)定、高可用的區(qū)域醫(yī)學影像生產(chǎn)系統(tǒng),滿足醫(yī)療機構內(nèi)業(yè)務連續(xù)性及跨機構間影像調(diào)閱需求。
深圳市龍華區(qū)醫(yī)學影像系統(tǒng)通過采用多種集群架構技術,存儲方面,利用Windows Server故障轉(zhuǎn)移集群技術,搭建高可用服務器集群,集群中的節(jié)點采用集群共享卷技術,實現(xiàn)任一集群節(jié)點對存儲資源的共享訪問;數(shù)據(jù)庫方面,應用SQL Server AlwaysOn技術及MySQL主叢復制、組復制等數(shù)據(jù)庫備份容災技術,實現(xiàn)數(shù)據(jù)層面的容災;接入層方面,利用LVS+keepalived及Nginx負載均衡技術,實現(xiàn)第四層加第七層的混合流量負載均衡;影像存儲方面,采用熱、溫、冷分級存儲,實現(xiàn)對在線、近線及歸檔影像文件的分層存儲。
2.1.1 存儲高可用技術 ①Windows Server 故障轉(zhuǎn)移群集(WSFC):WSFC是微軟高可用技術的核心組成部分。WSFC可以把多臺計算機節(jié)點組合在一起并對外部應用程序提供高可用服務。SQL Server作為服務器上的一個應用,可運行在集群的任一節(jié)點上,并通過集群提供一個虛擬訪問點給客戶端程序作為鏈接方式。當故障轉(zhuǎn)移集群中的某臺服務器發(fā)生故障或不可用,WSFC中的另一臺服務器將接管故障節(jié)點提供的服務繼續(xù)對外提供服務。②集群共享卷(CSV):CSV 是一種通用的集群文件系統(tǒng),它將連接到集群節(jié)點的磁盤托管的卷映射到每個集群節(jié)點上的C:ClusterStorage目錄,使每個群集節(jié)點都能夠同時對共享卷進行讀取和寫入。
2.1.2 數(shù)據(jù)庫集群技術 ①SQL Server AlwaysOn:AlwaysOn 可用組是SQL 2012引入的新的高可用技術。它借助WSFC進行資源組的管控。AlwaysOn可用性組最多可支持5個可用性副本,即一個主副本以及一至四個輔助副本[1-2],只有主副本上運行的數(shù)據(jù)庫是處于可讀寫狀態(tài),稱為主數(shù)據(jù)庫。其余副本均作為輔助副本,輔助副本上的數(shù)據(jù)庫,也稱為輔助數(shù)據(jù)庫,只能接受只讀操作。正常情況下,主副本會不斷地將主數(shù)據(jù)庫上的數(shù)據(jù)變化發(fā)送給輔助副本,從而實現(xiàn)副本間的數(shù)據(jù)同步。一但發(fā)生故障轉(zhuǎn)移,輔助副本將成為新的主副本實例,來完成數(shù)據(jù)庫的讀寫操作。②MySQL數(shù)據(jù)庫容災備份技術:MySQL的數(shù)據(jù)庫容災技術包括主叢復制和組復制兩種技術。MySQL主從復制是指數(shù)據(jù)可以從一個MySQL數(shù)據(jù)庫服務器主節(jié)點復制到一個或多個從節(jié)點,從而保持主叢數(shù)據(jù)庫的數(shù)據(jù)一致性,一般采用異步主叢復制和半同步復制兩種模式,因搭建靈活,可方便地實現(xiàn)讀寫分離而被廣泛應用。而MySQL 組復制(MGR)是MySQL分布式數(shù)據(jù)庫容災備份的重要技術手段[3],由多臺MySQL服務器共同組成一個復制組,組成員通過消息傳遞服務,實現(xiàn)數(shù)據(jù)狀態(tài)的同步,保證了組成員都擁有完整的數(shù)據(jù),避免了主叢模式引起的副本數(shù)據(jù)不可靠的問題。
2.1.3 接入層高可用 ①LVS+Keepalived:LVS(linux virtual server),即Linux虛擬服務器,是建立在傳輸層(OSI模型第四層)數(shù)據(jù)請求負載均衡技術,支持NAT(network address translation)網(wǎng)絡地址轉(zhuǎn)換、TUN(tuning)隧道和DR(direct routing)直接路由三種工作模式。Keepalived則專門用于檢測LVS集群中各節(jié)點服務器的可用性,采用虛擬路由冗余協(xié)議(VRRP)實現(xiàn)Linux集群服務器的多機熱備功能,避免靜態(tài)路由出現(xiàn)的LVS集群單點故障問題。②Nginx負載均衡:Nginx提供高性能、輕量級的HTTP和反向代理服務,通過輪詢、權重等調(diào)度算法,將負載(工作任務)進行平衡、分攤到多個計算節(jié)點上進行運行[4-6],實現(xiàn)基于應用及內(nèi)容的七層交換負載均衡,具備高穩(wěn)定性、低系統(tǒng)資源消耗的特性。
2.1.4 影像分級存儲 醫(yī)院的醫(yī)療數(shù)據(jù)中,絕大部分為醫(yī)學影像數(shù)據(jù),醫(yī)學影像具有數(shù)據(jù)量大,讀寫效率要求高的特點,目前,還沒有任何存儲介質(zhì)能同時滿足高效讀取、海量存儲且低成本的要求[7]。在這個現(xiàn)狀下,產(chǎn)生了醫(yī)學影像分級存儲的技術架構實踐。較為成熟的應用通常采用熱、溫、冷三級存儲,即采用具有讀寫性能高、吞吐量大等特性的集中式SAN存儲或NAS存儲存放一年內(nèi)的在線影像;使用低成本、海量存儲空間的分布式存儲,結(jié)合分布式存儲特有的存儲陣列內(nèi)及跨陣列多種分級策略能力,存放一年以上五年以下的在線存儲,同時在線存儲存放近線影像的索引文件,以便提供快速調(diào)取能力;五年以上歸檔影像則存放于磁帶或藍光設備[8-9]。
區(qū)域醫(yī)學影像生產(chǎn)系統(tǒng)整體架構(見圖1)在超融合平臺上,由21臺虛擬服務器及5臺搭載GPU的物理服務器組成,其中數(shù)據(jù)庫服務器8臺,包括3臺SQL Server數(shù)據(jù)庫服務器集群,用于影像檢查業(yè)務數(shù)據(jù)存儲,3臺MySQL組復制數(shù)據(jù)庫服務器集群,用于存儲接口服務及云膠片、檢查預約等Web服務數(shù)據(jù),2臺MySQL主叢復制集群,用于存儲AI及高級影像的任務分發(fā)數(shù)據(jù);生產(chǎn)業(yè)務應用服務器9臺,其中6臺提供放射、超聲、內(nèi)鏡、病理工作站生產(chǎn)業(yè)務應用服務,3臺用于供三維影像后處理服務; 2臺文檔服務器集群及1臺文檔網(wǎng)關,用于提供影像檢查報告PDF、HTML、CDA文檔的發(fā)布服務,1臺外部接口服務器用于與區(qū)全民健康信息平臺、市影像平臺進行數(shù)據(jù)及影像交互。
接入層由LVS+Keepalived HA集群提供的統(tǒng)一入口VIP,利用四層加七層的混合負載均衡技術實現(xiàn)高并發(fā)和高可用。影像存儲方面,分別采用集群共享卷、分布式對象存儲、藍光存儲來實現(xiàn)在線、近線及歸檔影像的分級存儲。
醫(yī)學影像區(qū)域平臺利用開源的LVS +Keepalived+Nginx技術,搭建接入層混合負載均衡高可用集群架構。部署2臺LVS服務器組成HA集群,并提供虛擬IP供客戶端訪問,同時,在LVS服務器上部署Keepalived,負責檢測LVS服務器的狀態(tài),當主服務器出現(xiàn)故障時,自動進行LVS服務器主/備切換,備用服務器可迅速接管并對外提供服務,避免LVS服務器單點故障導致請求失敗從而引起整個集群故障。而Ngnix集群則連接應用服務器高可用集群,負責后端應用服務器的流量路由和負載均衡。
2.4.1 WSFC+SQL Server AlwaysOn高可用架構 SQL Server數(shù)據(jù)庫集群采用Windows故障轉(zhuǎn)移集群(WSFC)+SQL Server AlwaysOn 方案,客戶端通過鏈接集群虛擬IP訪問集群主服務器(主副本),與此同時,主副本將每個主數(shù)據(jù)庫的事務日志記錄發(fā)送到每個輔助數(shù)據(jù)庫,通過“數(shù)據(jù)同步”過程,主數(shù)據(jù)庫與每個連接的輔助數(shù)據(jù)庫獨立進行數(shù)據(jù)同步[10]。當主服務器因故障導致服務不可用或者不能處理客戶端請求時,這時集群服務在自動嘗試重啟當前節(jié)點無效后,會將請求轉(zhuǎn)移到集群內(nèi)的輔助副本節(jié)點,實現(xiàn)數(shù)據(jù)庫快速接管。同時數(shù)據(jù)庫提供集群管理功能,可以管理集群中的所有只讀實例,并且提供一個只讀虛擬地址,實現(xiàn)讀請求根據(jù)權重自動轉(zhuǎn)發(fā)到所有只讀實例,以保證數(shù)據(jù)查詢等只讀應用最優(yōu)性能,真正實現(xiàn)讀寫分離。
2.4.2 MySQL數(shù)據(jù)庫高可用架構 考慮面向患者的Web服務可能存在集中高并發(fā)的情況,搭建3臺MySQL數(shù)據(jù)庫服務器集群,用于存儲接口服務及云膠片、檢查預約等Web服務數(shù)據(jù)及病理標本追溯數(shù)據(jù)。采用基于原生復制及分布式paxos協(xié)議的組復制技術,保證組內(nèi)的每臺服務器節(jié)點的數(shù)據(jù)始終一致。同時,部署bootstrap模式的MySQL Router訪問代理及Keepalived高可用服務集群,利用組復制技術的高容錯特性及基于端口的讀寫負載均衡,當1臺或2臺節(jié)點故障,也能保證連接到故障節(jié)點的客戶端,可通過重定向或故障轉(zhuǎn)移連接到可用的集群節(jié)點,從而減低對業(yè)務的影響程度。對于AI及高級影像的任務分發(fā)數(shù)據(jù),則采用2臺MySQL主叢復制集群,通過讀寫分離,來提高整體的服務性能,也解決了MySQL的單點故障問題[11-13]。
將9臺應用服務器組成PACS應用服務器集群, 提供放射、超聲、內(nèi)鏡、病理工作站數(shù)據(jù)接收、影像存儲、三維服務等業(yè)務應用服務。其中6臺應用服務器分別部署工作列表、數(shù)據(jù)接收、數(shù)據(jù)管理、文件存儲、任務管理等PACS業(yè)務相關服務。三維影像后處理由于需要耗用較多的系統(tǒng)資源,則通過部署3臺服務器組成集群獨立處理相關業(yè)務。不同的服務通過端口配置不同的訪問流量權重,當醫(yī)院客戶端通過虛擬IP訪問應用服務器集群時,客戶端請求并不是直接指向后端的應用服務器,而是由LVS服務器通過加權輪詢算法,將請求轉(zhuǎn)發(fā)至Nginx服務器,在保持連接的同時,由Ngnix集群將相同的請求內(nèi)容,通過采用反向代理異步傳輸模式,根據(jù)預設的應用服務權重情況,將客戶端請求均衡到每臺應用服務器上。應用服務器完成請求處理后,則采用DR技術,將響應數(shù)據(jù)直接返回到客戶端,從而縮短了數(shù)據(jù)的應答路徑。當某臺應用服務器出現(xiàn)故障時,可迅速將服務器從集群中剔除,從而保障系統(tǒng)高可用。
同時,利用先進的高性能影像集群架構,部署CPU+GPU并行的影像高級處理及人工智能計算框架,創(chuàng)新性引入GPU計算單元,突破了傳統(tǒng)的單一采用CPU的計算模式,讓CPU和GPU各司其職,極大提升對醫(yī)學影像大數(shù)據(jù)的處理,圖像的渲染速度,解決了過去主要依賴CPU單向處理圖像的瓶頸,實現(xiàn)醫(yī)學影像即時獲取、即時展現(xiàn)、即時計算、即時重建等相關的影像處理能力。
利用容器可彈性收縮的特性,將接口服務、面向互聯(lián)網(wǎng)的云膠片等服務,采用Kubernetes(K8S)容器管理服務,將服務打包成Docker鏡像,通過K8S動態(tài)分發(fā)和部署,實現(xiàn)服務快速、動態(tài)擴容,彈性收縮,以應對高并發(fā)的業(yè)務應用。
深圳市龍華區(qū)現(xiàn)有醫(yī)學影像數(shù)據(jù)約220 T,日均影像文件250 G,極端高峰期可達450 G。海量的影像數(shù)據(jù)增長,對存儲I/O性能提出了更高的要求,采用傳統(tǒng)的集中式存儲架構將面臨昂貴的存儲成本。
為兼顧影像數(shù)據(jù)高性能讀取和低成本保存需求,我區(qū)影像采用三級存儲結(jié)構,通過影像自動分級存儲和藍光歸檔,解決了海量影像數(shù)據(jù)高效存儲及訪問的難題,實現(xiàn)影像數(shù)據(jù)的全流程自動管理。其中,在線影像(一年內(nèi)的影像)采用架構在超融合的全閃NAS存儲,滿足在線數(shù)據(jù)高性能、低時延的訪問需求,并利用Windows 服務器故障轉(zhuǎn)移群集(WFSC)技術,保證每臺應用服務器均可訪問共享存儲卷。近線影像(五年內(nèi)的影像)采用雙活分布式對象存儲保存,滿足近線影像高容量、低成本的存儲需求。結(jié)合分布式存儲特有的存儲陣列內(nèi)及跨陣列多種分級策略能力,在共享存儲卷存儲存放近線影像的索引文件,實現(xiàn)近線影像的快速調(diào)取。五年以上影像數(shù)據(jù)則采用藍光存儲歸檔,滿足影像數(shù)據(jù)長達50年長期留存的需求,并結(jié)合數(shù)據(jù)預熱機制,即當患者預約簽到或登記時,系統(tǒng)自動將藍光上的歸檔影像,遷移至對象存儲設備,再從對象存儲遷移到集群共享卷,實現(xiàn)患者歷史影像的快速訪問。
醫(yī)療業(yè)務穩(wěn)定高效運行是醫(yī)療信息化建設的重中之重,任何信息化服務中斷對于就醫(yī)服務來說無疑都是重大挑戰(zhàn),因此,為確保系統(tǒng)7×24 h無故障穩(wěn)定運行,深圳市龍華區(qū)衛(wèi)健局采用高可用、高并發(fā)、高安全性集群架構設計,實現(xiàn)接入層、應用層、數(shù)據(jù)層的高可用,并采用集群共享卷、影像分級技術,從數(shù)據(jù)庫、應用系統(tǒng)、影像存儲等方面探索區(qū)域醫(yī)學影像生產(chǎn)系統(tǒng)的高可用性最佳實踐之路。