彭建明:談醫院中心機房一個巨大安全隱患
彭建明
醫院信息系統高可用一直都是我們HIT人追求的目標。我們醫院1999年建設第一套雙機熱備集群系統,軟件是使用WinNT和Rose,硬件IBM PC服務器和豪偉存儲,運行醫院核心HIS系統。2006年建設第一套Oracle RAC集群系統,運行醫院核心HIS系統軟件,軟件是IBM AIX、Oracle 10G RAC,硬件是IBM P550小型機和IBM DS4700存儲。由于建設集群價格昂貴,醫院只對最重要的HIS系統建設了集群。其實各個業務系統都很重要,任何重要系統癱瘓都會造成醫院醫療秩序的混亂。
我年輕時最大工作理想就是所有業務信息系統都實現高可用。2012年我的理想實現了,醫院建設了第一套虛擬化平臺,硬件是6臺HP DL580、EMC VPLEX、EMC VMAX10K,平臺軟件是VMware 5.5,所有平臺上的業務系統都實現高可用,2012年醫院又上了一套備份平臺。當時我覺得系統應該很安全了,應該不會再有什么大的風險。隨后幾年間發生了兩件事,讓我又重新思考中心機房的風險。
2019年3月,我接到一個陌生的電話,電話中的語氣很焦急“我是某某單位系統管理員,我們這有22個Oracle數據庫壞了,您是Oracle專家,我們該怎么辦?” Oracle數據庫很健壯,把一臺運行Oracle數據庫的服務器,連續斷電100次,壞的可能性都很小,22個Oracle數據庫同時壞,這簡直是天方夜談,這和連續中兩次彩票大獎的概率差不多。20多年的工作歷練,使我能很好的控制自己的情緒,我耐心的和他交流了五分鐘,然后我堅定的告訴他“根據我的經驗,你們22個Oracle數據庫真的壞了,用備份進行恢復吧,你也可以再問問別人,看有沒有什么好的方法”。因為他遇到的情況和我在2014年9月9日遇到的情況,完全一樣。當時我們一臺核心存儲控制器壞了一個,存儲(存儲是國際一線品牌中高端存儲)上運行著醫院HIS和EMR。下班后存儲原廠工程師來換控制器,為了安全我提前做了較充分的準備工作,我提前做了數據庫備份,停了Oracle數據庫,停了RAC集群系統,唯一沒有做的就是停IBM小型機AIX操作系統。災難發生了,工程師在換控制器的時候,另外一個好的控制器發生了重啟,造成了HIS和EMR數據庫嚴重損壞,并且異地災備機房中HIS DG也同時壞了。最后通過備份平臺花費了十幾個小時恢復了兩個核心數據庫,期間醫院所有信息系統均不可以使用。所幸是晚上對醫院影響不算太大。
那次慘痛教訓讓我刻骨銘心,我一直后悔沒有徹底關閉小型機AIX操作系統。但這家單位的災難事故讓我重新思考這件事情。我當時應該做的沒有錯。這家單位的虛擬化平臺由四臺高端PC組成,平臺上運行了46臺虛擬服務器,其中有22臺跑Oracle數據庫。不可能為換控制器關閉四十多個服務器。具體分析兩次災難事故原因,應該是雙控制器的存儲架構有問題,存儲為了保證數據安全,雙控制器中Cache做了鏡像。當一個控制器壞時,好的控制器Cache會被禁用。這時的存儲就像一臺沒有內存的服務器,速度奇慢,這是醫院不能忍受的。通常管理員都會強行啟用Cache,這時如果掉電Cache中的數據全部丟失,這就是我們兩家單位災難事故發生的原因。
虛擬化平臺在新疆醫院使用的很普遍,全國醫院情況也差不多。虛擬化平臺中的存儲隱藏著巨大安全隱患,這是每家醫院都可能發生事故。我也在思考有沒有好的方法,能夠避免災難的發生,由于我沒有實踐經驗,我只是想拋磚引玉,希望有更多人去思考解決辦法。
第一種解決辦法:存儲做鏡像雙活,但是我們當時在異地的HIS DG都壞了,這種解決方法建議存儲廠家做充分的測試,否則醫院花了昂貴的費用不能避免災難事故,這個責任是醫院和廠家都承擔不起的。
第二種解決辦法:超融合,超融合是一種比較新的技術,我們醫院也是剛剛開始使用,沒有太多經驗介紹給大家,這種技術安全性和性價比,希望大家認真思考。
第三種解決辦法:備份,但是如果像這家單位22個或者更多個數據庫同時壞,恢復也是一件可怕的事情。
第四種解決辦法:使用四個控制器的企業高端存儲,高端企業級存儲價格昂貴,這也是醫院要考慮的問題。
四種方法都是我的假設,最終希望存儲廠商或者安全廠商能提供一個安全可靠、經濟的解決辦法。
事故解決了就是故事,希望我的故事能引起大家的認真思考,希望大家都不要有事故。年底是系統故障多發的時間,希望大家2019都有一個好結尾,2020也一帆風順。
注:我在HIT專家網中寫了一篇文章《親歷讓我后怕的數據庫災難》詳細寫了2014.9.9那次事故,有興趣的朋友也可以去看看。
彭建明
上一篇: 業內專家預測:數字醫療的2020
下一篇: 劉敏超:關于醫療系統信息模型的探討(一)