未来智库 > 云计算论文 > 【云计算环境的备份技术研究】
    在云计算环境中,传统的备份技术遇到了需要安装备份代理、空白数据占用空间、数据冗余度高和备份颗粒度大等问题。基于此,研究了通过VADP接口,实现无代理备份、数据块修改跟踪、文件级备份恢复、重复数据删除、vCenter集成及应用感知等的云计算环境的备份软件技术,并验证了重复数据删除对数据块修改跟踪技术的有效性,为云计算环境的数据备份提供了有益的参考。
       云计算 备份技术 VMWare
       1 引言
       随着信息化的发展,各种业务系统已经成为大型企业日常生产不可或缺的一部分,这些系统所产生的数据也成为运营商的核心资产。在软硬件处理能力越来越强的现在,电信运营商的IT系统呈现出集约化[1]、去IOE(IBM、Oracle、EMC)化[2]、云计算化的趋势。
       对于电信运营商,大部分业务系统是由各省级单位独立建设,互不兼容。在市场竞争激烈、成本要求苛刻、精细化管理成为企业必需的情况下,三大运营商不约而同地选择了集约化发展的道路。业务的变化推动IT系统的集约化,运营商纷纷尝试将分省建设、管理的系统集中到全国几个大型中心。集约化后的IT中心带来了数据的高度集中,对系统备份和恢复的速度要求更加苛刻。
       与集约化同时进行的是IT系统“去IOE”的进程。去IOE即在服务器设备上,使用标准化程度高的X86服务器逐渐取代高可靠性、生态系统相对IBM Power小型机乃至所有的小型机在核心系统的使用。去O即从小型业务系统开始,使用Scale out架构的开源数据库逐步消除Oracle数据库在运营商的垄断地位;去E即在数据存储领域使用更为廉价的存储方式代替昂贵的高端EMC存储。去IOE在节省成本、降低对原厂依赖的同时,也带来了对业务系统、数据库及业务数据可靠性的忧虑。
       云计算化是使用虚拟化基础架构代替过去孤立的、烟囱式发展的传统IT架构。云计算是在由服务器、存储、网络交换机等硬件的基础上增加了虚拟化层和云层。其中,虚拟化层屏蔽了硬件的差异性和复杂度,为云层提供标准化、可灵活扩展和收缩、弹性的虚拟资源池;云层可以调配硬件资源池,为应用系统提供虚拟硬件。云计算化在增加灵活性的同时,也更来了更多的可能的故障点。
       集约化、去IOE化、云计算化的IT系统带来成本节约、灵活度更高的同时,也为应用系统和数据的可靠性带来了更大的挑战。为了保障IT系统安全,需要建立稳定、高效的备份系统,将应用系统和数据备份多份后,在异机甚至异地存储。备份系统可以保证在应用系统出现问题的情况下能够回退到正常状态,是企业IT安全的最后一道防线,需要引起高度重视。
       2 传统IT基础下的备份技术
       2.1 传统备份对象
       在传统IT基础架构下,备份的对象主要针对操作系统、数据库和文件系统。
       操作系统是应用系统的基础,其备份技术也是备份的难点。操作系统备份包括系统备份和系统恢复。系统备份由文件备份、系统数据一致性及系统环境等技术组成。操作系统备份时,系统文件、环境变量等参数会不断发生变化,有可能发生相关文件备份时间不同而导致系统故障的问题[3]。为了保证一致性,需要对备份过程中的I/O(Input/Output,输入/输出)进行备份,在系统恢复时将备份过程的I/O操作重新写入操作系统,从而使系统状态与备份结束时间点的状态一致,降低了系统崩溃的风险。系统恢复在异机恢复方面有可能面临着设备驱动不一致,从而导致恢复后的系统无法正常使用的问题。
       数据库备份不仅需要备份数据库中的用户数据,还需要对重要的数据库组件如数据文件和控制文件进行备份[4]。数据库的备份可以分为静态备份和动态备份。静态备份是在系统没有事务需要处理时进行的备份作业,在备份期间不允许对数据库进行查询、插入等活动。静态备份可以很好地保持数据的一致性,但同时降低了数据库的可用性。动态备份可以在用户事务发生的同时进行,允许在备份期间对数据库进行存取、修改等操作,但这种方式无法保证副本数据的有效性,需要记录下备份期间对数据库的存取等活动日志。数据库恢复时,需要恢复副本和备份期间的日志才能恢复到正确的状态。
       文件系统备份可以通过文件系统定位文件所在的页,然后备份所找到的文件。由于存储在磁盘中的文件的页并不一定是连续的,因此在恢复的过程中磁盘需要不断定位,从而导致磁盘负担较大[5]。在文件系统备份中,运营商的话单文件体积小但数量非常多,其备份是一大技术难题。
       2.2 常见备份方式
       在实现生产中,通常采用以下方式进行备份:
       (1)使用数据库自带备份工具备份。对于Linux下的Oracle数据库,可以编写Rman脚本备份数据,再通过Crontab配置定时复制命令,将数据库备份文件复制到磁盘阵列[6]。对于MySQL,可以使用自带的mysqldump工具,实现基于InnoDB的热备份[7]。
       (2)使用操作系统自带工具。Linux操作系统中常使用dump和restore命令来实现文件系统的全备、增量备份和差异备份等备份方式[8],Windows Server下也自带了Windows Server Backup的备份和恢复工具。
       (3)基于存储的硬件备份。存储设备是使用硬件来实现数据的存储、备份与恢复,速度较快。通过存储,还可以使用更高级的存储技术,如快照、镜像、重复数据删除等功能。同一厂商的存储产品往往具有远程镜像的功能,可以将本地备份数据通过同步或异步的方式自动实现异地备份。然而不同存储厂商间的硬件备份技术使用不同的技术标准,互不兼容,从而导致不同品牌的存储不能实现硬件的远程镜像。运营商的核心数据经常需要保留三份以上的异地备份,就需要在三个地点都使用同一个厂商的存储设备,这也成为基于存储的硬件备份的一大阻碍。
       (4)基于备份软件。备份软件集成了各种数据库、文件系统的备份等功能,又具备了镜像复制、快照、重复数据删除、数据校验、SAN(Storage Area Network,存储区域网络)备份等高级存储功能。备份软件从软件上屏蔽了硬件设备的差异,可以统一管理服务器硬盘、磁盘阵列、虚拟带库以及物理带库等存储设备。同时,备份软件也可以实现对不同操作系统(Windows、Linux、Unix)、不同数据库(Oracle、SQL Server、MySQL)的备份。通过备份软件,系统管理员不需要对不同的操作系统、不同的数据库、不同的存储设备和服务器各自编写自动备份脚本,可以在统一的界面上通过命令行或图形化界面集中管理备份设备、存储设备、备份策略。因此,备份软件也是核心IT系统中常用的备份方式。
        (5)备份一体机。随着一体化设备的发展,备份软件厂商纷纷推出集成了备份服务器、存储、备份软件的备份一体机设备。这种备份一体机可以在用户快速部署,大大方便了异地数据备份。
       2.3 备份软件
       备份软件架构如图1所示,主要由备份服务器、备份代理、存储服务器、Web服务器组成。
       备份服务器可以自动进行备份作业的调度,通过指挥备份代理和存储服务器共同完成备份、恢复任务[9]。备份服务器维护着Catalog数据库,在数据库里存储备份恢复作业的信息及物理设备相关的信息。备份代理一般是安装在需要备份的主机中,调用相关系统的接口。在备份作业发起时,数据由备份代理读取并传输到网络。对于不同的备份对象,往往需要安装对应的模块。例如,为了分别备份Oracle数据库、SQL Server数据库,就需要在对应的主机中分别安装支持Oracle数据库模块和SQL Server数据库模块的备份代理。对于不同的操作系统,也需要安装相应的备份代理。存储服务器可以将关键数据存储在存储设备,如磁盘阵列、虚拟带库、物理带库,负责存储中备份数据的读取和写入。Web服务器为管理员提供Web管理界面。目前主流的备份软件不仅有商用的IBM TSM、CommVault、Symantec NetBackup、HP DP等产品,而且还有开源的备份软件Amanda[10]、Bacula等产品。
       3 云计算对传统备份技术带来的挑战
       云计算技术在IT基础建设的引入,可减少硬件资源浪费,提高系统部署的速度,但也为备份带来了新的需求。
       (1)虚拟机备份代理。在存储中为虚拟机分配的空间,以虚拟机文件格式方式如.vmdk存储,虚拟机操作系统文件、用户数据放置在这个vmdk文件中。如果按照传统备份方式,要备份虚拟机中的系统和用户数据,就需要在每台虚拟机中安装备份代理。这种方式在占用大量的存储资源的同时,发起备份时也会占用大量的计算资源,从而影响虚拟机性能。
       (2)空白数据的空间占用。在分配虚拟机时,精简模式下的虚拟硬盘根据所需数据量的大小占用存储空间。虚拟硬盘空间随虚拟机数据量增加而变大后,在虚拟机中删除的数据并不会减少虚拟硬盘的空间大小,这样就造成大量空白数据占用了存储空间。如果对虚拟机的备份只是简单复制虚拟硬盘文件,就会出现备份中的有效数据少的问题。
       (3)数据冗余程度高。在虚拟机中,往往安装大量相同的操作系统、应用程序,这部分数据高度相同,如果直接通过安装在每台虚拟机中的备份代理来备份数据,则会造成大量的冗余,浪费存储空间。
       (4)备份颗粒度过大。通过虚拟化平台自带的虚拟化接口可以备份和恢复整台虚拟机,但往往需要备份的数据只是虚拟机中的部分用户数据,而不是完整的虚拟机。虚拟机级的颗粒度会拖慢备份恢复速度,消耗大量的存储空间。此外,这种方式也无法感知应用,难以保证数据的一致性。
       基于上述情况,传统的备份方式已经不适应云计算时代的数据备份,亟需针对云计算的数据备份技术。
       4 云计算环境的备份技术
       4.1 基于云计算的备份技术
       在云计算环境下,调用VMWare在数据存储方面的接口,可以有效地解决虚拟机的备份难题。
       (1)无代理备份。VMWare开放了VADP(vStorage
       APIs for Data Protection,用于数据保护的虚拟存储应用程序编程接口)的数据保护存储接口。备份软件调用VADP,即可与集成在vCenter中的vStorage for Data Protection模块通信,对每台虚拟机都实现不需要第三方备份代理的备份,从而减少备份对虚拟机计算资源的消耗。
       (2)数据块修改跟踪。VMWare提供的VMKernel
       级技术CBT(Change Block Tracking,数据块修改跟踪)可以判断在最后一次快照后是否有虚拟机数据块被修改,并标记被修改的数据。备份软件调用VADP接口,即可备份被修改的增量数据,而不需要对虚拟机文件做完全备份。
       (3)文件级备份恢复。VMWare FLR(File Level Recovery,文件级恢复)提供了浏览和装载虚拟机备份数据的功能。通过备份软件,调用VADP的FLR功能,可以实现对虚拟机的文件级颗粒度管理,而不需要做虚拟机级别的备份。
       (4)重复数据删除。传统的重复数据删除常使用固定数据块或者固定长度数据段等技术进行重删,但这种方式存在着即使数据集发生了非常小的改动,都会导致整个固定长度数据段的更改,从而不被识别为冗余数据。对于虚拟机的重复数据删除技术,常采用可变长度数据段。VMWare VDP(vSphere Data Protection,vSphere数据保护)技术能够分析数据集的二进制数据结构,确定数据段的边界,且适用于不同类型和体积的文件,从而实现智能化的重复数据删除。
       (5)vCenter集成。备份软件以vCenter插件的形式集成到vCenter的管理界面中,方便vCenter管理员管理虚拟机的备份,而不需要到专门的备份软件中处理。
       (6)应用感知。对于虚拟机中安装的SQL Server、
       Exchange、SharePoint、Active Direct等应用系统,可以通过在这些应用所在的虚拟机中安装VDP客户端,即可实现来宾级细粒度的管理,从而实现对虚拟机中的应用感知。
       4.2 重复数据删除
       对VMWare vSphere虚拟化环境,使用重复数据删除技术,对其中的30台虚拟机总共1053GB容量的虚拟硬盘进行全备份。在自动识别并剔除空白空间后,需要备份的数据只剩下虚拟硬盘数据的76.5%。而在使用重复数据删除进行消重后,实际写入存储空间的数据只有源数据的29.4%,因此实际重删比为70.6%。重复数据删除技术可大大减少虚拟机备份所需要消耗的存储空间,具体如图2所示。 初次全备份需要数小时的时间。在虚拟机进行数据读写操作,增加少量用户数据,此时再做全备份,备份时间可缩短到数分钟。这是由于调用了VMWare的CBT技术,使备份数据仅为修改的部分数据,从而加快了备份速度,减少了网络流量和备份数据量。
       5 结束语
       本文研究了传统IT基础架构下的备份技术,包括操作系统、数据库和文件系统等3种主要备份对象,总结了利用自带工具、存储硬件、备份软件和备份一体机等常见备份方式,描述了备份软件的架构,并分析了传统备份方式在云计算时代遇到的问题。在此基础上,研究了云计算环境下的备份技术,并指出了无代理备份、数据块修改跟踪、文件级备份恢复、重复数据删除、vCenter集成、应用感知等关键技术。在实际虚拟化环境中,证明了重复数据删除和数据块修改跟踪等技术的有效性,为电信运营商在云计算环境下的数据备份提供了参考。
       参考文献:
       [1] 鲍明曦,朱源,邓丽华. MSS全网集中建设助推集约化运营[J]. 通信企业管理, 2013(12): 75.
       [2] 田熙清,陈泳,胡颖茂. IT支撑系统技术架构的去电信化思考[J]. 移动通信, 2014(5): 68-74.
       [3] 张效斌. 备份系统在云中心的部署与应用[J]. 电脑知识与技术, 2013(29): 6530-6532.
       [4] 宫婷. 计算机数据库的备份与恢复技术研究[J]. 计算机光盘软件与应用, 2013(21): 155.
       [5] 肖克辉. 文件系统备份中目录树处理算法设计与实现[D]. 广州: 中山大学, 2005.
       [6] 张云帆. Oracle数据库备份与恢复策略[J]. 计算机工程, 2009(15): 85-87.
       [7] 邬文轩,胡晓勤. 一种基于MySQL Innodb数据引擎的增备方法[J]. 计算机安全, 2013(5): 30-33.
       [8] 杨宁. 基于B/S模式的Linux备份系统的设计与实现[D]. 广州: 中山大学, 2008.
       [9] 吴佳. 备份服务器的关键技术研究和实现[D]. 武汉: 华中科技大学, 2008.
       [10] 张媛. 企业级开源备份软件在图书馆数据中心的应用[J]. 图书馆学刊, 2014(9): 127-130.
转载请注明来源。原文地址:https://www.7428.cn/vipzj14175/
 与本篇相关的热门内容: