2.2 可问责技术
通过上述方法可以发现CSP破坏数据安全性的行为,然而仍需涉及一旦这种行为发生如何处理的问题。可以仿照现有云存储服务提供数据访问性能和可用性保证的方法,由用户和CSP间签订关于数据安全(如数据机密性、完整性)的服务水平协议(SLA)。CSP按照协议要求提供服务,保证用户数据的安全性,用户为服务支付费用。一旦CSP不能达到协议要求,用户可以根据协议要求赔偿。安全服务水平协议的引入可能会导致纠纷:例如:当数据安全性被破坏时,CSP为减少经济损失可能宣称该错误是由用户导致(如用户客户端软件缺陷),或者数据安全性本未破坏,而用户虚假指控CSP违反协议,试图不当得利。
为解决上述问题,研究者提出了可问责性的概念。一个多方参与的分布式系统称作是可问责的,如果它满足以下两个条件:(1)能够可靠地发现错误。(2)每个错误能以不可否认的方式归咎到至少一个过失方。在一个可问责的云存储环境中,当CSP违反安全服务水平协议(例如破坏了数据的完整性或可用性),用户能够发现并向第三方机构(如法律仲裁机构)证明CSP的违规行为,从而要求经济赔偿。可问责性是双向的,当CSP没有违规行为或过错是由用户导致时,用户无法无端指控CSP,从而转嫁责任或不当得利。
可问责性证明可以通过鉴证机制实现。鉴证是将用户和其发出的请求绑定以及将CSP和数据的某个状态绑定的签名消息。可以利用这些鉴证在一个轻量级的审计协议中验证CSP的行为。
3 操作系统虚拟化技术
除了数据级的灾备,还应提供系统级的灾备。即在将数据复制到云端的同时,也将受保护的应用程序的状态复制到云端,当灾难发生时可以立即切换到云端的应用程序运行,保证业务连续性。系统级灾备是通过操作系统虚拟化和检查点实现的。检查点用来捕获进程某一时刻的运行状态,从而实现进程迁移。进程迁移既可以是用户应用程序进程到云灾备中心的迁移,也可以是云灾备中心内部的虚拟机池间进程迁移,以实现根据前端用户的需求自动地调节灾备服务提供商有限的硬件与软件资源,动态地、弹性的反应前端业务对灾备的需求。
当程序因故障中断,如果不能保留其中间运行状态,恢复后从头运行将会带来极大的消耗。检查点技术能够解决这个问题。通过保留各个进程的运行状态,恢复时能够复原到最近一次保留的数据映像。
传统的检查员机制是基于库的检查点机制。例如以静态库的形式实现,或通过加载动态链接库来追踪程序运行过程中的数据变化。也有一些检查点机制实现于内核级别甚至硬件级别。例如通过在文件系统层之上引入一个中间层来实现保留文件系统状态的检查点机制;或者借助Fuse内核模块实现的支持检查点机制的文件系统,通过Fuse侦测、拦截内核级别的文件系统操作并将控制权传递给用户,从而能够在用户空间对文件系统状态进行保留。
随着操作系统虚拟化技术的发展,基于虚拟容器的检查点技术也得到了很好的应用。虚拟容器是通过系统虚拟化技术构建出来的一个进程运行的较独立的上下文环境。虚拟容器检查点技术能够有效保护容器内运行的应用程序和服务而不需要对应用进行修改。
用于构建虚拟容器的系统虚拟化技术可以分为如下3类:
(1)基于容器的操作系统级别虚拟化技术。这类技术通过对系统内核的修改,能够将特定的进程进行封装,形成相对独立的进程运行环境。其优点是构建进程运行环境,即虚拟容器,仅仅需要对系统资源做逻辑上的重新组织和调度,不需要在容器底层设立复杂的指令模拟层和Hypervisor(虚拟化系统管理程序)。因此这是一种轻量级的系统虚拟化技术,额外开销小。这类技术的缺点是应用范围有局限,不能支持多种内核,虚拟容器内部的运行环境必须与包含容器的物理主机上的宿主系统相类似。
(2)半系统虚拟化技术。这类技术采用了根据操作系统内核定制的Hypervisor,力求在保留Hypervisor带来的隔离性和安全性基础上,尽量提升虚拟容器内部进程的运行效率。其典型代表是Xen。Xen通过修改Linux系统的内核,在半虚拟化Hypervisor中集成了半虚拟化系统调用层,能够快速响应虚拟容器内部进程发出的系统调用等特权指令。同时,对于普通指令,半虚拟化Hypervisor不做任何处理,而直接将CPU资源开放给虚拟容器使用。通过这样的机制,大大减少了Hypervisor中间层带来的额外开销。但是,半虚拟化机制需要定制内核,因此也部分丧失了 Hypervisor的灵活性,无法支持多种内核。
(3)全系统虚拟化技术。这类技术的实质是设计一个居于中间的用来完成硬件抽象功能的虚拟化系统管理程序。对于虚拟容器内部进程的每条指令,Hypervisor都能够拦截并通过一个仿真器将其翻译为宿主机的硬件CPU指令。对于其他的系统资源,例如PCI设备、网络,Hypervisor也负责地址的转换和在逻辑上进行抽象。全虚拟化的优点是非常灵活,宿主机上能够同时运行不同种类的操作系统内核,而月 Hyperisor能够全面监控虚拟容器内部进程的运行状况和对资源的访问情况,隔离性和安全性高;缺点是其Hypervisor形成了一个厚重的中间层,带来了较大的性能损失。对于全虚拟化的实现,也有很多种类,例如借助硬件支持实现的全虚拟化;基于仿真器的纯软件全虚拟化。后两种虚拟容器实现技术又可以统称为基于Hypervisor的虚拟化技术,总体来说,其性能由于中间抽象层的引入而有较大的损失。
基于虚拟容器的检查点技术的代表是Capsule。Capsule被定义为一组进程及其运行时的CPU、内存、I/O设备等相应状态的集合。其设计思想是将这个集合作为一个整体,在生成检查点时保留整体集合的一致状态。其实现是通过设计一个虚拟的运行环境(基于VMware GSX Hypervisor)并令进程运行于其中,借助该Hypervisor的相关机制而对虚拟运行环境中的所有进程及状态保留检查点,进而实现检查点的传送和异地恢复,达到进程迁移的效果。
4 结束语
云灾备是一种重要的灾难备份形式,本文介绍了云灾备中的3个关键技术:重复数据删除、云存储安全和操作系统虚拟化。前两者解决数据级云灾备中的效率和安全性问题,后者解决系统级云灾备的灵活性问题。重复数据删除和操作系统虚拟化技术经过多年研究,已经相对成熟;相比之下,云存储安全技术的研究尚处于起步阶段,还有很多理论和实际问题需要解决。该技术的发展是云灾备能否得到广泛应用的一个决定因素,值得高度重视和大力研究。随着相关技术的发展和成熟,以及各行业数据中心、灾备中心建设的深入开展,云灾备必将发展成为中国灾难备份市场的主流方式。