丁 濤 劉 峰 楊 賽
(1漢中市中心醫(yī)院 漢中 723000 2西安交通大學 西安 710049 3寧夏醫(yī)科大學總醫(yī)院 銀川 750004)
隨著醫(yī)院信息化建設的逐步深入,信息技術廣泛應用于醫(yī)療機構日常診療、管理、服務等活動中,成為醫(yī)院運營的重要基礎設施[1],其安全、可靠、穩(wěn)定運行對各項工作順利開展至關重要。2018年國家衛(wèi)生健康委員會發(fā)布《全國醫(yī)院信息化建設標準與規(guī)范(試行)》[2],明確指出醫(yī)院信息化建設要涵蓋各應用及數據庫服務器、存儲磁盤陣列、集群軟件和應用容災軟件等組件,具備數據容災能力,支持多種技術本地化高可用,對醫(yī)療大數據的安全性、容災能力建設的需求更加迫切[3]。部分醫(yī)院為提高系統(tǒng)和數據抗風險能力,運用系統(tǒng)集成技術實現大數據安全保護,主要方式包括基于底層存儲硬件的數據克隆、復制,基于應用或數據庫的群集,基于操作系統(tǒng)的熱備,以及其他不同層級雙活技術、虛擬化技術等。魏智等[4]通過對醫(yī)院數據安全需求分析,提出一種基于數據庫和存儲的雙活數據中心,最大限度實現業(yè)務系統(tǒng)的高可用和數據容災;曹凱[5]通過軟件定義網絡(software-defined networking,SDN)、超融合等新技術應用,構建跨數據中心的雙活超融合虛擬化資源池,減少系統(tǒng)單點故障、性能瓶頸;上官斌[6]研究顯示,越來越多機構開始逐步推進系統(tǒng)雙活建設,其中最重要、最困難的是如何實現大型數據庫雙活,包括仲裁一致性、性能同步、異常切換決策等。
建立數據中心雙活容災保護機制(以下簡稱雙活)可以有效促進大數據相關業(yè)務的高可用,確保數據一致性和系統(tǒng)安全性,已被廣泛應用于醫(yī)療大數據安全保護。但是,不同雙活建設層級達到的數據保護預期效果差別較大,如何選擇合適的雙活技術,以較高性價比實現大數據安全保護,具有一定研究意義。本文通過對常用醫(yī)療大數據雙活保護技術分析,從實施復雜度和風險、建設與運維成本、軟硬件兼容性以及對不同結構數據的保護能力,資源消耗、性能、技術開放程度等方面,總結不同維度雙活技術的優(yōu)缺點,結合醫(yī)院數據保護場景和功能需要,討論技術方案的難點與問題,為醫(yī)院大數據中心的可靠運行、應急容災和數據保護提供思路。
醫(yī)療大數據包括不同時期、廠商、業(yè)務、信息系統(tǒng)應用所積累的各類患者病歷、文書,檢驗、檢查結果等電子化資料,以及醫(yī)院管理、運營、公共衛(wèi)生服務中形成的各種與醫(yī)療相關的數據信息[7]。根據“智慧醫(yī)院”建設程度,信息系統(tǒng)日益增加使數據累積和應用環(huán)境趨于復雜,機構醫(yī)療大數據呈現出海量化、業(yè)務及時化、存儲多樣化、價值高端化的特點[8],其安全需求主要包括:一是醫(yī)療大數據的價值決定其安全基礎是物理數據安全性,避免數據丟失、損毀以及其他因物理數據安全造成的公共事件;二是從應用角度,關注系統(tǒng)和數據容量增長衍生的各種問題,對數據應用層服務能力要求更高;三是關注數據連續(xù)性和系統(tǒng)運行魯棒性,能夠持續(xù)為患者和醫(yī)療服務提供數據支撐能力;四是從技術角度更加關注各種不同物理硬件、應用軟件的高性能,在高并發(fā)下為不同業(yè)務需求提供安全可靠的服務;五是關注復雜情況下,不同類型(包括各種結構化、非結構化、半結構化)數據管理,以及數據集邏輯與隱私保護[9]。
醫(yī)院業(yè)務系統(tǒng)應用具有較強行業(yè)特點,醫(yī)療大數據保護一般不為每個系統(tǒng)或獨立應用進行特定數據安全保護體系建設,常用做法是從醫(yī)療數據的采集、存儲、訪問、應用等環(huán)節(jié)建立完整安全防護體系[10]。雙活系統(tǒng)集成技術被廣泛應用,特別是基于數據中心的雙活應用,具有低成本、低風險、快速交付等特點,有助于醫(yī)院減少資源浪費,既達到保護效果又能在共享和應用過程中實現數據管理的安全可靠和規(guī)范有序。
雙活系統(tǒng)集成就是由兩套或兩組以上存儲、主機同時為業(yè)務系統(tǒng)提供數據讀寫及存儲服務,數據同時以雙副本或更多副本形式分別存在兩個不同物理空間。同時,所有數據均在線,當任意底層物理部件出現損壞時業(yè)務數據不會丟失,甚至業(yè)務平臺不會停止,見圖1。
圖1 雙活數據中心
雙活系統(tǒng)集成技術并沒有標準的定義或者行業(yè)規(guī)范,一般根據不同層級數據和業(yè)務保護需要,形成涵蓋存儲、數據庫、文件、網絡、業(yè)務等不同層面的系統(tǒng)集成部署技術,本文主要討論業(yè)務數據系統(tǒng)集成雙活技術。
3.3.1 雙活系統(tǒng)集成技術分類 按照數據副本動作發(fā)生的位置和處理方式,雙活系統(tǒng)集成技術可分為5種:基于數據庫的雙活系統(tǒng)集成;基于主機(文件系統(tǒng)層)的雙活系統(tǒng)集成;基于存儲硬件的“單寫式”雙活系統(tǒng)集成;基于存儲硬件的“雙寫式”雙活系統(tǒng)集成;重構業(yè)務應用,通過應用實現雙活系統(tǒng)集成。其中,第5種是根據業(yè)務特點、訪問邏輯、訪問模式等進行應用軟件重構,再添加一系列軟件組件,封裝部分業(yè)務模塊,甚至改變業(yè)務流程,進而實現雙活。由于醫(yī)院業(yè)務特殊性,除小部分技術實力強、業(yè)務模式簡單的新興互聯網醫(yī)療平臺可以實現外,其應用范圍相對較小。因此本文以討論前4種技術為主。
3.3.2 數據庫端雙活集成 數據庫端雙活集成技術一般基于數據庫的分布式服務構建。在同一應用環(huán)境下,除保持數據一致性外,將數據庫服務分散至兩臺以上的服務器。其典型應用形式分為兩類,一是以甲骨文公司為代表的Oracle RAC結合自動存儲管理(automatic storage management,ASM)解決方案。ASM支持條帶化和磁盤鏡像,且比傳統(tǒng)的獨立磁盤冗余陣列(redundant array of independent disks,RAID)更靈活,可以為每個數據文件指定冗余級別。當 ASM為普通文件分配一個擴展數據塊時,會分配另一個輔助副本,并將輔助副本存儲在主副本以外的其他磁盤組塊中,在發(fā)生磁盤故障時不會導致數據丟失。二是基于數據庫日志的數據庫文件副本同步復制技術。在數據庫運行過程中,所有客戶端請求都會寫入數據庫日志,再寫入相應數據庫文件里,并通過日志詳細記錄數據寫入先后順序,便于解決數據恢復時的一致性和完整性問題。部分數據庫服務商研發(fā)出基于日志的副本復制技術,在寫日志進程中將緩存里的日志依托通信傳輸給副本庫實例,副本庫根據接收的日志執(zhí)行數據更新操作,確保副本庫與主庫的數據一致;該技術能為數據庫提供雙文件支持,以同步或異步形式更新,支持手動或自動故障轉移,并可將副本配置成只讀模式,進行其他數據操作,從而減輕主庫壓力。
3.3.3 主機端雙活集成 在主機端層面,可以基于邏輯卷鏡像方式提供雙活系統(tǒng)集成服務,常見技術形式有Unix、Linux系統(tǒng)的邏輯卷管理(logical volume manager,LVM)模式、Windows系統(tǒng)的動態(tài)卷鏡像功能等。依托操作系統(tǒng)原生的輸入/輸出(input/output,I/O)組件,基于不同站點的各種物理存儲卷,利用鏡像方式“組合”成一個在線邏輯卷,再將邏輯卷提供給操作系統(tǒng)和業(yè)務系統(tǒng)存取數據。來自不同存儲的兩個獨立物理存儲卷,通過存儲區(qū)域網絡(storage area network,SAN)提供給計算服務器操作系統(tǒng),這兩個卷可以本地化部署,也可以通過SAN跨數據中心形成遠程雙活數據。通過對LVM物理分區(qū)單元寫入進行實時雙向復制,當本地卷數據及遠端卷數據同時寫完時,才能算一個完整的數據寫入;當其中一個存儲卷寫入超時或寫入失敗時,該存儲卷會被標為故障或離線狀態(tài),等寫入恢復后,重新手動同步,以確保鏡像副本與原生副本數據一致。在創(chuàng)建邏輯卷時,LVM已經將邏輯卷與兩個或多個不同底層物理存儲卷完成映射,針對任何數據文件的讀寫都需要由文件系統(tǒng)和LVM完成與底層物理數據塊交互,在磁盤底層出現壞塊或某個底層存儲卷徹底損壞時,LVM無須對底層數據塊指針進行動態(tài)轉移,以保證數據不丟失、業(yè)務不停止。
3.3.4 基于存儲底層硬件的雙活集成 基于存儲底層硬件實現的雙活系統(tǒng)集成主要有兩種方式:一種是“單寫式”;另一種是“雙寫式”?!皢螌懯健彪p活系統(tǒng)集成是指針對底層的數據卷,所有數據“寫”操作均由一方完成,并且進行數據單向同步。基于存儲底層硬件的“單寫式”雙活系統(tǒng)集成,見圖2。存儲集群A為源端,存儲集群B為從端,存儲集群內部的控制器A1和A2,B1和B2分別構成高可用(high availability,HA)環(huán)境,在搭建集成環(huán)境時兩個存儲集群建立從屬關系,源端任何寫入操作都交由本地卷SVM_A1完成,而對端控制器接收到前端服務器的寫入請求時,會將該請求轉發(fā)至源端SVM_A1,由源端SVM_A1完成寫入操作,同時給目標端SVM_A1-mc復制一個寫入操作,直到兩邊SVM同時寫入完成后,數據和副本才完成寫入。
圖2 基于存儲底層硬件的“單寫式”雙活系統(tǒng)集成
因此,針對數據卷A1,無論是來自源端還是對端服務器寫入請求,均會被轉發(fā)給源端SVM_A1完成“寫”操作,再按照從源端SVM_A1到目標端SVM_A1-mc單向方式完成數據復制“寫”操作。當源端出現故障或災難時,業(yè)務系統(tǒng)會有一個屬主切換過程,類似故障轉移,在此期間業(yè)務會發(fā)生中斷或性能急劇降低。
存儲“雙寫式”雙活系統(tǒng)集成技術與“單寫式”最大的不同之處在于針對底層數據卷,對端和源端在接收到數據寫入請求后,會自發(fā)完成“寫”操作。這種架構的對端及源端數據卷均是在線、可讀寫狀態(tài),因此在底層任意存儲硬件出現問題時不需要故障切換動作,確保業(yè)務連續(xù)性和數據安全性;另外,源端和對端雙方均可同時提供讀寫操作,其整體性能優(yōu)于“單寫式”架構。
不同層面雙活技術實現的數據保護效果存在差異,見表1。醫(yī)院各種業(yè)務系統(tǒng)眾多且集成環(huán)境復雜,很難用一種技術實現所有層面的數據保護,因此,結合不同需求和應用場景以及業(yè)務響應要求,分級分類選擇合適的雙活數據保護技術,才能以較高性價比實現醫(yī)療大數據有效保護。
表1 不同層面雙活系統(tǒng)集成技術對比
按照國家衛(wèi)生健康委員會《關于進一步推進以電子病歷為核心的醫(yī)療機構信息化建設工作的通知》要求[11],三級醫(yī)院到2020年電子病歷系統(tǒng)功能應用水平分級評價要達到4級以上。其中,醫(yī)院信息系統(tǒng)、電子病歷系統(tǒng)等作為核心應用要實現業(yè)務及數據庫保護。從業(yè)務角度看,核心系統(tǒng)的容災恢復點目標和恢復時間目標接近0才能達到高可用[12],滿足安全需求;從數據角度看,在確保數據一致性的前提下,應該盡可能實現數據多份冗余,因此,采用數據庫端和基于底層存儲的“雙寫式”雙活系統(tǒng)集成融合,可以最大限度地實現整體保護效果?;蛘呓Y合不同主機的故障轉移群集能力,實現計算層面高可用,將故障轉移群集與存儲底層硬件“雙寫式”雙活結合,進一步提升核心業(yè)務生產系統(tǒng)的穩(wěn)定性以及高可用。
一般業(yè)務系統(tǒng)的響應及時性要求不高,恢復時間點目標要比核心業(yè)務系統(tǒng)大,特別是部分醫(yī)院建設資金投入有限,對除核心業(yè)務以外的絕大多數系統(tǒng)采用超融合、虛擬化等方式進行部署,通過建立虛擬資源池節(jié)省硬件開銷,可以降低運維成本與難度。針對這部分業(yè)務及數據庫,可以將數據空間采用“雙寫式”雙活系統(tǒng)集成架構進行構建,而上層業(yè)務則依托虛擬機平臺自身的快照技術,或者其他多主機共享群集技術,實現業(yè)務高可用與數據冗余災備,例如虛擬機快照技術、RoseHA、Windows Cluster、賽門鐵克VCS等,能夠提高生產系統(tǒng)可靠性,以較低成本實現較好效果。
根據使用場景,醫(yī)院還有一些特殊信息系統(tǒng)應用,特別是多影像、多文件存儲及管理,其業(yè)務模式、性能需求、數據特征以及數據量和其他系統(tǒng)差異較大。一是數據量巨大,單日新增數據量超過10 GB,隨著時間推移,積累的海量數據形成巨大保存壓力;二是數據形式以影像、圖片等文件為主,部分系統(tǒng)產生的文件數據還具有小而多的特點;三是數據調閱頻度不固定,但操作人員對數據的響應速度有很高要求。這部分特殊業(yè)務以及數據保護,要綜合考慮存儲系統(tǒng)的性能、數據保護技術以及成本,建議采用大容量網絡存儲方式構建數據倉庫,結合分層存儲技術,保障數據調閱性能;在數據保護技術選擇上,可以采用存儲底層硬件“單寫式”雙活系統(tǒng)集成技術,確保數據安全冗余和成本低廉,形成性價比較高的綜合解決方案。
醫(yī)療大數據不僅保障醫(yī)院日常業(yè)務運行,同時還服務于機構科研創(chuàng)新等方面,醫(yī)療大數據安全保護十分關鍵[13]。通過對不同層面雙活系統(tǒng)集成技術的研究與合理應用,可以為醫(yī)院醫(yī)療信息數據及業(yè)務連續(xù)性保護提供一定支撐,提高醫(yī)院網絡信息安全水平,使信息化、大數據更好地服務于醫(yī)療健康事業(yè)。