彭建明:谈医院中心机房一个巨大安全隐患
彭建明
医院信息系统高可用一直都是我们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
下一篇: 刘敏超:关于医疗系统信息模型的探讨(一)