上海爱数软件有限公司医卫行业顾问姜疆
摘要:
9.11等事件造成的灾难性后果使人们更加深刻地认识到数据信息的价值和意义,日益重视数据的保护。现代医院对计算机的依赖性严重增强,信息数据逐渐成为企业赖以生存的基础。围绕如何重复利用数据,虚拟化技术正在大行其道。
服务器虚拟化用一虚多的技术可以充分发挥服务器的性能,特别适合于医院日益增多的周边业务系统,服务器虚拟化可以加速应用部署交付,动态扩展计算和存储资源。但是服务器虚拟化有一个问题就是将多个鸡蛋又集中在了一个篮子里面,增加了系统运行的风险。随着医院日益增加的存储需求,加上大量老化和即将淘汰的旧存储,设备利旧和投资保护的问题、异构存储整合的问题、后端数据容灾的问题。等等这些问题困扰着医院信息中心的决策者。为了解决这些问题,本文将从几个方面来阐述医院信息化中必不可少的技术——存储虚拟化。CDP技术是这两年医院备份容灾领域关注的技术概念,我们知道CDP技术可以对数据进行历史回退,解决逻辑性的问题,比如病毒和人为删除的问题,但这次本文重点不是容灾而是从新的角度来阐述CDP在医院的运用。
关键字:存储虚拟化、CDP、备份容灾、ETL
存储虚拟化(Storage Virtualization)最通俗的理解就是对存储硬件资源进行抽象池化。我们可以理解存储虚拟化就是一种技术,将现有的存储都整合在一个存储池中整合起来,然后再提供给前端应用。但是存储虚拟化的技术可以用多种运用,我们运用这些存储虚拟化的特性可以让存储管理更加高效。
存储虚拟化技术医院的三个运用
一、存储虚拟化结合服务器虚拟化做异地容灾
服务器虚拟化在医院日渐流行,但是我们知道一个服务器虚拟成了多个系统后,我们就要考虑服务器和存储自身的稳定性了,否则极易成为一个单点故障。对于虚拟化系统来说,可能会有虚拟化内部数据的错误;可能会有虚拟化平台系统自身的错误(比如VM的ESX本身的核心也是一个LINUX内核的系统);宿主服务器硬件的错误;虚拟磁盘文件VMDK及相关文件系统的错误;存储硬件的错误。以上错误都可以导致虚拟机崩溃,尽管我们可以借助于虚拟化系统本身提供的容灾功能,但是这些基于虚拟机层面的文件克隆和复制技术的容灾功能效率都不高,无法满足医院的RPO和RTO需求。还有一个问题就是大部分医院到目前为止虚拟化应用并未深入到核心业务系统,虚拟化和非虚拟化环境混搭是最常见的医院系统架构。对于UNIX平台来说,主流虚拟化系统目前还未支持,所以一个更加底层的解决后端存储单点故障的技术是我们迫切需要的。
存储虚拟化有一个关键的功能就是可以做存储间的镜像,而且这种在虚拟卷之间的镜像可以在两个异构存储中进行。虚拟机的关键数据借助于存储虚拟化镜像可以实现异地容灾的效果。假设我们在主机房安装的存储上面部署了虚拟化应用,我们通过存储虚拟化技术将其镜像到异地灾备机房,当主机房的存储及链路出现问题,我们就可以瞬间切换到灾备机房,以保证虚拟化业务不中断。结合服务器虚拟化技术,我们不用担心多个鸡蛋集中在一个篮子里的风险。
上图中,我们的VDisk(虚拟卷)是映射在两个物理阵列上的,左边的主阵列假设安装了虚拟机,那么通过镜像技术同步到灾备阵列中,对于Vdisk来说,我们看到的数据是有一份,但是物理上是有两份(甚至是两份以上)。其中任何节点出现故障,那么对于Vdisk来说,他能够瞬间切换到可用的节点(只要不是所有节点崩溃)。我们可以粗略地形象理解这相当于是在阵列之间做了RAID1的效果。
借助于数据重删和压缩,我们可以理解两个阵列之间的距离可以足够远,甚至是成百上千公里,这样就可以方便地做异地容灾。这种技术对于医院目前流行的双活数据中心尤为重要,一般情况下,本院不同楼宇之间形成双活数据中心,利用存储虚拟化镜像技术已经成为主流选择。
二、存储虚拟化实现混合存储池满足医院多种应用特性
医院的存储始终面临逐步的升级和换代中,不同的应用往往要求部署不同的存储。我们知道HIS系统的特点就是I/O查询写入特别频繁,并发访问量大,但是数据流量不太大。PACS系统是数据流量大,对于I/O带宽占用很大,存储后端容量消耗大,但是查询写入频度不算高。医院的应用其实还不仅仅是这些,如何将每个系统的运行效率保持最高,充分发挥现有存储的性能就是一个新的课题。存储虚拟化正好有这样的技术能够把许多零散的存储资源整合起来,从而提高整体利用率,同时降低系统管理成本。通过分层存储的划分,我们以最高的效率、最低的成本来满足各类不同应用在性能和容量等方面的需求。
如上图所示:我们可以将现有的存储池划分为三个虚拟卷,我们假设将HIS用SDD存储介质进行存取,EMR我们用SAS硬盘,PACS用NLSAS硬盘,这样就能够充分将性价比发挥到极致。对于vdisk来说,可能PACS的存储池是由3个阵列汇集成一个大的存储池,对于PACS应用来说,它只看到一个统一的存储池。对于医疗业务也有我们不太清楚业务规律的系统,当我们不能确定是否用什么存储池来应对的时候,我们也可以使用自动分层技术来解决问题。自动分层就是根据I/O访问频度自动根据频繁的程度匹配最适合(已定义)磁盘类型,以将存储性能发挥到最佳。
对于PACS系统来说,在线扩容和存储升级将会带来很多风险,所以利用存储虚拟化的在线扩容功能对于PACS系统来说将会非常有价值。我们可以保证PACS系统24小时不停机的情况下就能完成存储扩容的动作。借助于自动精简配置功能,我们可以将多个已经整合的存储给前端应用分配尽可能充足的空间,让前端应用程序不会因为剩余空间不足导致运行问题。自动精简配置可以理解为超量预先分配,这块对于虚拟化系统(如vmware也有),但是将分配出去的空间收回,vmware就不能做到了,借助存储虚拟化技术可以实现在线资源回收,所以vmware结合存储虚拟化将会如虎添翼。
三、如何选择和搭建存储虚拟化技术
对于医院来说,如何选择存储虚拟化技术是一个问题。存储虚拟化有几种形式,第一种是基于主机的虚拟化,基于主机的虚拟存储依赖于代理或管理软件,它们被安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件运行在主机上,这就会占用主机的CPU资源。可能我们认为基于主机的虚拟化方法最容易实现,其设备成本最低,其实安装部署方面并非那么简便,并且基于主机授权模式,以后的费用也比较高。第二种是依赖于存储供应商的存储虚拟化技术,当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。尽管某些存储厂商声称他们的存储自带的虚拟化功能对于其他存储也可以兼容。但是这种兼容性容易受到一些限制,存储厂商提供的虚拟化技术是需要以存储为中心的,如果主存储节点出现问题,那这种虚拟化将不是牢靠的。第三种就是基于独立网关的存储虚拟化设备,由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的网关出现故障时,仍然可能导致主机上的数据不能被访问。所以利用网关的冗余可以支持动态多路径,来解决网关的单点故障,通常情况下方案都至少配置2台网关。独立网关的存储虚拟化技术可以不需要在主机上安装代理程序,不会占主机资源,也不需要依附于某个存储厂商。对于有大量存储设备要利旧使用,需要对各种异构存储进行整合的情况,这种方案将是首选。从发展趋势看,基于主机的和基于存储的虚拟化技术目前已经相对成熟,用户可以充分享受到它们所带来的好处,而且由于它们已经进入成熟期,基于独立网关的存储虚拟化技术是一种新的开始流行的虚拟化存储技术,它独立于主机和存储设备,因此,给用户带来了很大的灵活性,其未来的发展空间最大。
CDP技术医院的运用
在过去的20多年中,虽然计算机技术取得了巨大的发展,但是数据备份技术却没有长足进步。数据备份操作代价和成本仍然比较高,并且消耗大量时间和系统资源,数据备份的恢复时间目标和恢复点目标比较长。
显然,这种数据备份方式存在一个显著的不足,即备份窗口问题。在数据备份期间,企业业务需要暂时停止对外提供服务。随着企业数据量和数据增长速度的加快,这个窗口可能会要求越来越长,这对于关键性业务系统来说是无法接受的。对于医院来说,信息系统要求24x7不间断运行,短时的停机或者少量数据的丢失都会导致巨大的损失。因此,就需要将数据备份窗口尽可能地缩小,甚至缩小为零,数据快照(Snapshot)、持续数据保护(CDP)等技术,就是为了满足这样的需求而出现的数据保护技术
CDP持续数据保护(Continuous Data Protection)是一套方法,它可以捕获或跟踪数据的变化,并将其在生产数据之外独立存放,以确保数据可以恢复到过去的任意时间点。持续数据保护系统可以基于块、文件或应用实现,可以为恢复对象提供足够细的恢复粒度,实现几乎无限多的恢复时间点。这个是全球网络存储工业协会(SNIA)的定义。因为CDP技术有更细粒度的恢复能力,我们通常用它来解决不确定RPO的部分。为了让丢失数据量达到最小,CDP基于I/O级的恢复粒度正好是我们需要的。当我们误删除数据或者文件系统受到逻辑性损坏或者病毒,我们可以尝试用CDP技术将损失降到最低。对于此外,对于医院来说还有另外的妙用。列举如下:
帮助新系统部署测试,快速验证新系统运行效果
医院的信息系统是一个螺旋形不断日益完善的系统,修修补补已经成为常态。并且新的应用系统在上线的过程中都要进行测试。按照HIS公司之前的做法,是在独立搭建的服务器进行逻辑性测试、压力测试后再部署上线。将HIS现有的数据库转移到测试服务器中将是一个繁琐的过程,因为数据库的备份和恢复所花时间太多,为了保持测试系统能够有验证能力并且还要保证数据库体积不能过于庞大,我们都要对原数据库做出一些“截断”工作。经过多次迭代,如何在新的数据库基础上测试验证是一个问题。现在有了CDP技术,我们可以将目前CDP记录的系统数据库卷通过生成快照挂载出来。我们可以理解CDP就是录像机,快照技术就是照相,我们从CDP形成一个快照就是定格在某一时间点取出一个照片一样。
我们只需要在生成的快照上直接写入测试数据就可以实现我们的测试效果,测试完毕后释放快照即可。原来需要花几个小时甚至一整天搭建的测试环境,在CDP的帮助下只需要十几二十分钟就搭建好了。这种测试数据的搭建方式有个明显的好处是保证被测数据环境的新鲜度。我们始终在更加贴近真实数据结构环境上进行测试,便于及时发现问题。如果结合服务器虚拟化技术,在模拟群集环境下的测试将更加便利。我们还可以对当前测试的过程再次形成快照,记录各个测试数据前后变化的状态,便于进行更加细致的测试。灵活运用这种技术对于需求变化极快的医疗信息软件是非常有价值的,加快应用程序迭代和发布的速度,提升整体的开发效率。另外还有一个场景也可以重复利用CDP技术,当我们部署一个复杂的中间件系统或者在操作系统上做很多配置的时候,我们利用CDP记录升级和配置的过程,当出现问题我可以迅速回退,至少可以保证不会因为小小的升级失误就推倒重来。
二、利用快照技术加速BI提升ETL效果
为了能够将医疗数据深入进行挖掘,我们需要建立数据集市(面向主题的数据集),这个前提是要做好ETL的过程。一般来说都是采用主动“拉取”方式,例如:如果是基于sqlserver数据仓库的,那么借助于sqlserver的SSIS(sqlserver内置的抽取工具),对当前业务数据进行定时抽取。为了不影响当前业务数据,一般都是在夜间定时进行抽取。这种情况下,我们就可以理解BI分析看到的数据都是昨天及以前的数据。我们并不能对当前的数据进行及时分析。当我们做环比统计或者对当天的数据进行分析,比如当天的用药指标监控等,我们就不能看到新鲜的数据。
为了解决这个问题,我们可以通过编写脚本,将ETL的抽取源制定到定时快照上面,因为快照的生成不会对当前系统造成很多压力,并且抽取源定向于快照,我们就可以不用担心HIS主机的性能遭到影响。
从上图我们可以看到我们整个BI的展现流程。在图示的左边,HIS、EMR,OPR,HRP还有其他系统都是可以基于快照进行抽取,而不是直接从业务系统抽取,这样抽取策略可以保持BI数据抽取的新鲜度,并且不影响生产系统性能。对于即时分析要求越来越高的医疗辅助决策应用,这是一个非常有效的方法。快照不仅仅可以为容灾提供服务,还可以给各个医院信息化层面带来新的驱动力。
综上所述,存储虚拟化技术和CDP技术的诞生对于医疗信息化建设来说是一个强有力的工具,我们利用好了可以让我们的工作事半功倍。医院已经进入或者正在进入大数据时代,在大数据时代背景下,利用新的技术将为医院管理和辅助决策注入强劲的驱动力。
参考文献:
王树鹏, 云晓春, 郭莉. 持续数据保护(CDP)技术的发展综述. 信息技术快报, 2008年第6卷第6期.
王力华,依托统一规范提升大数据利用价值.北京大学人民医院医学信心中心,2013年6月8日
|