莫禹鈞,梁玉誠,潘愈嘉,黃 捷
(貴港市人民醫院信息科,廣西 貴港 537100)
隨著遠程醫療、互聯網醫院等持續建設,越來越多的服務臨床和醫院管理的信息系統被使用,保證這些信息系統安全、穩定運行至關重要,但信息系統都面臨著以下3 種風險:①意外的安全風險,包括水災、火災、雷電、地震等不可抗因素的自然災害和斷電、蟲蟻鼠害等環境因素導致信息系統故障或癱瘓的災難;②軟硬件安全風險,包括軟件本身的缺陷或系統存在BUG、硬件設備故障網絡通訊故障等;③人為安全風險,包括內部人員誤操作等非惡意人為風險和黑客攻擊、病毒入侵等惡意人為風險[1]。各種安全風險導致的故障主要分為2 大類,包括物理故障和邏輯故障。為保證醫院各項業務的連續性,必須在發生故障的情況下保證系統盡快恢復運行,數據不丟失,其目標是系統零中斷,數據零丟失。物理故障一般可通過冗余硬件達到業務不中斷,邏輯故障一般通過回到之前某個時間點的方式恢復[2]。貴港市人民醫院現有2 個中心機房和1 個容災機房,分別在相同院區不同的大樓內。HIS、EMR、LIS 等核心數據庫服務器對性能和穩定性要求較高,故直接運行在物理機上,通過操作系統集群的方式提供硬件冗余。PACS 系統是2019 年上線,承建商要求運行在虛擬平臺上,其他各類信息系統服務器全部在虛擬平臺上運行。為了實現所有服務器都有災備,且在有限的建設預算內兼顧性價比,本院災備建設對于不同類型的服務器采用了不同的方案。本文從應對物理故障和邏輯故障的災備方案及使用效果作一總結。
1.1 核心系統 首先,核心數據庫服務器利用雙機組建一個集群,在兩個機房分別放置一臺主機,集群中的雙機為主備模式,平時運行在主機上,主機發生故障異常宕機時,資源組將自動切換至備機并起庫,服務IP 隨之漂移。2 臺HIS 數據庫服務器訪問后端全閃存共享磁盤陣列邏輯卷LUN,任意一臺HIS 數據庫服務器發生故障,DB2 故障轉移集群自動切換,保持業務連續性。
此外,在兩個生產機房各部署1 套全閃存陣列,提供高性能、低延遲存儲訪問,滿足核心系統高速訪問數據需求。同時,在兩個生產機房各部署一套EMC Vplex 存儲虛擬化雙活網關,每套存儲虛擬化網關配置1 個引擎共2 個冗余控制器,將生產機房2 套全閃存陣列加入存儲虛擬化網關存儲資源池,通過存儲虛擬化技術,將2 套全閃存陣列虛擬化為分布式存儲資源池,2 套存儲之間做Mirror 鏡像,組成邏輯上的一套存儲[3];當兩個機房的任意1 套存儲發生物理故障或機房斷電不可用時,另一臺存儲陣列依然能夠持續提供服務,保證存儲零切換,數據無丟失,應用不中斷[4,5]。
1.2 其他系統 在兩個生產機房各部署5 臺X86 架構的機架服務器搭建VMware 虛擬化平臺,虛擬機存儲在后端的雙活磁盤陣列。任意一個機房的虛擬化服務器發生故障,虛擬機自動在另一臺服務器或者另一個機房內自動啟動,保持業務連續性,實現應用層高可用[6]。
此外,虛擬平臺和核心數據庫服務器共用一套SAN 集中存儲架構,但是使用不同的存儲陣列,因各中間層應用服務對性能的要求不盡相同,為達到更好的性價比,本設計在兩個機房各部署一套混合陣列。虛擬機的底層封裝文件都放在混著陣列上,混合陣列通過SAN 存儲網絡的方式接入虛擬平臺,這樣可以充分利用虛擬平臺的優勢,也就是遷移虛擬機不需要停機(VMware VMotion),通過持續監控所有資源池的利用率實現智能分配管理資源(VMware DRS)等。VMare 高可用性(HA)解決方案可以最大程度減少因硬件故障造成的服務器宕機和服務終端事件,當運行VMware ESX 的底層物理機當宕機時,所有運行于該服務器上的虛擬機可以自動切換到其他物理機上,同時HA 上的服務器也在運行,自動負載均衡,可充分利用現有硬件資源。
2.1 核心系統 為避免數據邏輯損壞、軟件出錯、網絡安全攻擊和人為誤操作等邏輯故障導致的應用系統業務中斷,當發生邏輯故障時可以根據需要回滾到任意時間點,保護數據安全。在兩個生產機房各部署一套EMC Recoverpoint 連續數據保護裝置,EMC Vplex 存儲虛擬化網關內置存儲拆分器,對EMC Vplex 存儲虛擬化網關下掛的全閃存陣列數據進行實時同步復制,通過CDP 數據持續保護設備將生產機房主存儲陣列關鍵業務數據實時同步到容災機房存儲上。由于容災存儲在性能上要求沒那么高,為了達到更高的性價比,采用非閃存陣列進行保護,當邏輯故障發生時,可做到任意時間點恢復,保障關鍵業務數據無丟失。此外,連續時間保護設備可按應用或虛擬機回滾,在30 d 內回滾至任意時間點數據,時間粒度可到毫秒級或者IO 級別[7,8]。
CDP 工作原理主要從應用程序主機到生產卷的數據流,CDP 容災裝置在持續數據保護過程中訪問數據的流程。應用程序服務器向CDP 容災裝置所保護的邏輯單元號(LUN)發出寫操作,這個寫操作可被“拆分”,然后用以下方法發送到CDP 容災裝置:該主機拆分器駐留在I/O 堆棧中,位于文件系統和卷管理器之下,剛好在多路徑驅動程序(如EMC PowerPath)之上。此拆分器將查看寫操作數據包的目的地,如寫向CDP 容災所保護的LUN,拆分器會把這個寫操作數據包發送到CDP 容災裝置,其具體做法是重新編寫此數據包內的目標地址,以將其重新定向到CDP 容災裝置的偽LUN 中,然后將寫操作重新發到堆棧中再往下的層。原始寫操作都將通過其常規路徑傳到生產LUN,當CDP 容災裝置接收到此寫操作的復制之后,它會返回確認信息。在等到生產LUN 的確認之前,這個“確認”的信息被拆分器(主機拆分器或者結構拆分器)接收并存放在這個拆分器里。在收到兩個確認之后,會將確認發送回主機,而I/O 則繼續正常進行。在應用裝置確認了此寫操作后,它會把數據移到本地的日志卷之中去,同時還攜帶著這個寫操作的時間戳以及應用程序、事件或用戶可能生成的書簽。在數據安全地進入日志之后,將被分發到目標卷,具體CDP 工作原理見圖1。

圖1 CDP 工作原理
2.2 其他系統 對于運行在虛擬平臺上的虛擬機按照備份恢復服務要求進行劃分等級,不同的等級使用不同的備份恢復架構。PACS 數據庫服務器、體檢系統服務器等對數據損失量和恢復所需要的時間容忍度較低的服務器采用的是EMC RecoverPoint For Virtual Machines 方案。PACS 的DICOM 服務器、網站服務器等數據損失量和恢復所需要的時間容忍度較高的服務器采用的是EMC Avamar 解決方案。
2.2.1 Recover Point For Virtual Machines(RP4VM)RP4VM 的工作過程與CDP 類似,具體可以分為4步:分解、標記、傳輸、分發。分解就是對虛擬機寫操作的I/O 命令一分為二,一份寫在RP4VM 裝置上,另一份寫在虛擬平臺存儲陣列上。標記就是對I/O命令進行封裝、打上標簽,目的是維護數據的寫順序。傳輸就是對I/O 命令打上標簽后,數據傳輸到異地的RR4VM 的歷史卷上,形成不同時間點的歷史記錄。分發就是歷史卷和目標卷合并的過程。在第一步的分發階段,不同時間的歷史卷與目標卷合并在一起生成特定時間的復制卷。因傳輸和分發是兩個獨立的步驟,分發的進行與暫停都不會影響傳輸。在分發暫停時,復制卷是可以進行讀寫操作的,數據復制到異地后,目標復制卷和本地卷是完全一致的,復制卷可以用作實時備份,也可以用作實時數據的測試等。RP4VM 可以實現對于虛擬機的實時復制,將虛擬平臺上要保護的虛擬機復制一份到容災機房,并可以實現虛擬機的任意時間點恢復。在虛擬機發生邏輯故障時,做到數據零丟失。容災機房利用原中間層服務器中相對性能較強的兩臺物理機部署容災虛擬平臺,用于運行RP4VM 復制過來的虛擬機副本,同時也包括核心數據庫服務器的容災服務器。
2.2.2 Avamar EMC Avamar 軟件把備份的數據通過網絡傳輸到存儲陣列之前,在源位置對數據進行壓縮消重,做到既快速又高效且可靠的數據保護。Avamar 基于全局的消重方式可確保備份的數據段在全局的范圍之內只存一份,其工作機制見圖2,這可有效地將每日移動和存儲的數據總量減少到1/500。Avamar 采用高效的重復數據消除技術,使得保護主數據所需的磁盤空間減少到1/50,從而延長了醫院保存磁盤備份的時間。此外,通過釋放存儲空間,可以減少增加更多物理存儲的需要,從而大幅降低如占地空間、電源和制冷等方面的資本支出和營運成本。另外,數據消重壓縮的任務放在在虛擬機主機源端進行,備份的數據量就會少很多,這樣在很大程度上就降低了對其物理主機硬件資源的競爭,同時提高了虛擬主機環境下的備份性能,且Avamar 每天都進行一致性檢查,確保所有數據都是可以恢復。
在物理故障方面,核心數據庫服務器其中一臺服務器故障,操作系統的集群配置會自動切換到另一臺,做到業務零中斷,數據零丟失,而對于運行在虛擬平臺上的系統,某臺底層物理機宕機,VMware HA 技術自動切換,也可做到業務零中斷,數據零丟失。因雙機房同時活動在線,因此存儲網絡中某臺網絡交換機、存儲交換機、網絡鏈路、存儲陣列故障,甚至其中一個機房全部宕機,所有業務仍是零中斷,數據零丟失。在邏輯故障方面,對核心系統利用RecoverPoint 把數據回滾到故障點前,業務中斷十數分鐘,數據也可做到零丟失。對運行在虛擬平臺上的數據庫服務器,基于RP4VM,在vSphere Web Client 上操作把虛擬機回滾到故障點前,業務中斷十數分鐘,數據也可保證零丟失。對于中間層服務器,利用Avamar 的備份恢復數據,業務中斷約1 h,數據丟失小于1 d。醫院信息系統災備方案拓撲見圖3。

圖3 醫院信息系統災備方案拓撲圖
地級市醫院對于信息化建設的投入十分有限,但如沒有容災,業務中斷、數據丟失都會導致嚴重的后果,本災備方案結合各系統、各服務器對于性能、中斷容忍度、數據丟失容忍度等不同的指標采用了不同的災備方案,在兼顧性價比的同時達到了容災要求。