论文部分内容阅读
摘要:针对传统的备份系统存在使用过程繁杂、磁盘空间利用率低和备份效率低等问题,本文阐述了一个云环境下文件和数据库的备份系统的研究与设计,通过对系统体系结构和功能模块的合理设计以及对相关技术的研究,解决了文件和数据库备份的效率和安全性问题,力求使得备份变得更加简单、便捷、合理。实验结果表明,系统对磁盘空间的利用效率比较高,有较好的可用性和数据安全性。
关键词:文件备份;数据库备份;云环境
1.文件和数据库备份系统
1.1 应用环境
用户在云环境下可能使用着多个云服务器或者云数据库等云服务,而它们是可以通过公网IP地址进行访问获取到数据的,因此数据的传递是在广域网上进行[4]。根据云服务所提供的权限的不同,可以大致分为两种:一种是提供整个云服务器主机,另一种是只提供某种云服务产品(如VPS、云数据库、云Redis、云解析DNS等)[5]。
对于前者而言,用户可以自主安装各种操作系统和配置相应的运行环境,并且自由地安装所需的应用程序。云服务器是通过虚拟化技术,通过负载均衡将硬件设备资源重新调度,使得用户完全可以将其当作是“一台”完整的机器,即当作是传统的服务器来使用。而对于后者而言,可理解为是云主机划分出来的某个独立区域,拥有独立的域名、完整的Internet服务器功能,但没有独立的操作系统,用户只能通过提供的控制面板操作,享用某种特定的功能服务,但不能完全地访问到整台机器的文件系统和内存等。
1.2 系统体系结构
数据库和文件备份系统采用的是C/S软件体系结构,即Client/Server(客户端/服务端)结构[1]。服务器负责管理客户端的列表和配置,备份数据以及对多个备份副本进行管理,另外还管理则操作日志、数据统计等工作,另外还负责发起对云数据库的备份操作。而客户端主要负责安装在需要做文件备份的客户机器上面,提供优质简易的操作界面,允许客户在客户端连接自己部署的服务端机器,配置自己的备份策略和所需要备份的文件目录。另外客户端需要监听服务器发起的备份与恢复操作。
1.3 服务端核心功能模块
1. Web访问界面
服务端可以通过Web界面访问到当前备份系统的状态管理界面。服务端的Web界面可以通过FastCGI(端口55413)或者是HTTP(端口55414)进行访问。使用FastCGI端口访问时候可以通过SSL(Secure Sockets Layer,安全套接层)将服务器连接到其他的Web服务器中(比如apache、lighttp等)。系统管理员基本都要使用这个Web界面对备份系统进行整体管理,使用服务端的各个功能模块并且设置备份副本存储介质目录。服务端默认绑定以下端口:
2. 客户端列表与配置管理模块
服务端通过定期监测远程连接着本端的客户端的状态信息(如客户端名称、在线状态、最近在線时间、最近备份时间等)整合整理,并且在Web界面进行展示,方便系统管理员对其进行选择、查看、备份恢复以及删除客户端等操作。服务端需要将客户端的配置信息整合记录下来,如客户端的文件配置目录、配置策略等。当发起备份操作时可以将配置信息提供给文件备份模块。
3. 客户端文件备份与恢复模块
文件备份模块主要负责对客户端的文件进行备份传输和恢复传输。包括对文件系统的全量备份、增量备份。接着负责将客户端传输过来的备份副本存储到服务端指定的的副本存储介质目录中。当副本的数量达到一定的时候,将定期地删除最旧的副本,以防过度地占用磁盘空间。
4. 数据统计与日志管理模块
服务端需要对当前的数据存储状态进行统计,包括当前存储空间的使用状况、各个客户端的备份副本所占用的空间比例、磁盘镜像的占用比例等等。方便系统管理员监控磁盘空间使用率,在必要时进行服务端负载均衡操作,控制客户端的数量,并且定期删除过期的备份副本。服务端活动日志管理模块记录着所有客户端的所有备份操作及其相关的状态信息。服务端将每一条日志分成不同的等级:信息、调试、错误和警告四种不同的等级。在服务端Web界面当中,可以浏览所有客户端的日志并且通过不同的等级或不同的客户端对日志进行过滤查看。在备份的过程中,服务端会尝试记录属于客户端的特定的备份日志,并且最终发送回给客户端,提供给客户端的用户查看。
5. 云数据库备份模块
对于云数据库,系统管理员需要提供用户云数据库的URL、端口号、数据库名和密码,并且需要选择数据库的类型(如Mysql、Oracle、PostgreSQL等)。服务端在尝试连接云数据库并且成功之后,将按照管理员制定的备份策略定期对云数据库进行拷贝备份。
1.4 客户端核心功能模块
1. 托管图标/管理界面模块
客户端有专门的一个界面进程负责显示托盘图标和对话框界面。界面模块需要接收用户的操作并且读取用户填入的配置和选项,将命令通过协议分发到客户端的其他功能模块。
2. 命令侦听模块
客户端需要侦听来自服务端的UDP(端口号为35622)广播消息,并且在接受到消息时想服务器发送名为message的消息表示自己已经接收到。同时有一个接收服务端命令的端口(端口号35623和端口35621)并且与服务端建立永久连接,通过该端口接收备份请求和更改设置请求。客户端默认绑定以下端口:
3. 文件列表设置模块
客户端需要负责构建所要备份目录中的所有文件的列表,并且将其维护在客户端机器的特定的目录上。通过Windows Change Journa不断监视加速目录列表创建目录的备份。并且及时记录目录的更改与变化,方便与服务端进行备份操作时,能够将旧文件数据与新修改文件数据做区分,方便做增量备份,也方便服务端发起数据恢复操作。 4. 备份策略管理模块
用户可以通过界面模块对所设置的文件列表下的所有文件指定合理的备份策略。包括对某个目录下所有文件是否做全量备份、增量备份,在哪一个时间段进行备份,是否在某个时间间隔内做定期的备份等。
1.5 散列处理及备份碰撞概率
在备份系统对数据进行增量备份或者备份恢复时,需要检查文件数据是否相同。这里值得一提的是在消除文件重复数据之前,备份系统使用的是SHA512对文件数据进行散列处理。SHA512是一种安全散列算法。安全散列算法(The Secure Hash Algorithm,SHA)由美国国家标准和技术协会(National Institute of Standards and technology,NIST)于1993年提出,并被定义为安全散列标准(Secure Hash Standard,SHS)。
对于数据的散列处理会有几率发生散列冲突,即即是数据不同,数据的散列值相同。若真的发生散列冲突,则可能导致文件传输过程中发生错误链接或者是映像备份中的某个数据块不传输。但在维基百科中对SHA512的概率表中显示,我们需要有个相同大小的不同文件进行散列计算,才会到达的概率发生散列冲突。维基百科还明确指出,是典型硬盘最好的不可纠正的误码率。存储个1KB的不同文件需要一个EB的硬盘空间,可以看出是几乎不可能的。因此当备份系统链接到错误的文件数据时,更可能的硬盘返回了错误的数据或者数据在内存中被损坏掉了。
2.实验
测试环境为Windows Server2012 R2 64位操作系统,Inter(R)Xeon(R)E3-1220 v3@3.10GHz CPU,内存28GB,机械硬盘4000G。
2.1文件系统备份实验
测试方法:在测试机器中安装系统的服务端和客户端,对本机某个文件目录下的的文件系统进行定期的备份,分别采用全量备份和增量备份并且记录备份副本占用磁盘空间的大小[7]。备份期间对指定的备份目录下的文件结构进行不定大小的增加、删除和修改操作,操作的文件大小范围在1G~10G之间。并且对其进行了16次全量和增量备份,得出的实验数据如图3.1所示。可见若只对文件系统进行增量备份,需要备份的副本的大小基本在文件全量备份副本大小的10%左右,大大节省了磁盘的空间占用。
2.2数据库备份实验
测试方法:在测试机器中安装系统的服务端并且对远程Mysql数据库的进行定期的备份,分别采取压缩和不压缩的方法对数据库的备份副本进行存储,并且记录备份副本占用磁盘空间的大小。备份期间对数据库进行多组SQL语句操作,对数据库表中数据进行增、删、改操作。对其进行了五次全量备份。可见对数据库备份时若对备份副本进行压缩,将会大大减少磁盘空间的占用率。3 总结
本文详细地描述了云环境下使用的文件和数据库备份及恢复系统的设计以及实现的过程,解决了云环境下文件数据以及数据库数据管理复杂繁琐的问题,提高了磁盘的利用率以及数据的传输效率,具有一定的安全性,满足实际使用的功能需求和性能需求。
参考文献:
[1]何宇平,李涛,胡晓勤,彭勇,马晓旭. 基于Windows的远程文件备份系统的设计与实现[J]. 计算机安全,2008,(2):1-2
[2]何宇平,李涛,胡晓勤,彭勇,马晓旭. 应用于远程文件备份系统的关键技术[J]. 计算机应用研究,2009,26(1):1-3
[3]李自尊,胡晓勤,周文瑾,邓亮. 基于差异数据的块级数据库备份系统[J]. 四川大学学报(自然科學版),2012,49(4):1-6
[4]李涛. 网络安全概论[M]. 北京:电子工业出版社,2004.
[5]纪海. 基于云计算的产品平台设计服务研究[D]. 北京:纪海,2012. 9-11
[6]林芙楠. 基于Bloom Filter的云存储文件去重方法的研究与优化[D]. 广州:林芙楠,2016.
[7]徐旭,付威,李芬,吴文阳,张建刚,韩晓明. 基于内容地址存储的文件级备份系统[J]. 计算机工程,2010,36(16):2-4
关键词:文件备份;数据库备份;云环境
1.文件和数据库备份系统
1.1 应用环境
用户在云环境下可能使用着多个云服务器或者云数据库等云服务,而它们是可以通过公网IP地址进行访问获取到数据的,因此数据的传递是在广域网上进行[4]。根据云服务所提供的权限的不同,可以大致分为两种:一种是提供整个云服务器主机,另一种是只提供某种云服务产品(如VPS、云数据库、云Redis、云解析DNS等)[5]。
对于前者而言,用户可以自主安装各种操作系统和配置相应的运行环境,并且自由地安装所需的应用程序。云服务器是通过虚拟化技术,通过负载均衡将硬件设备资源重新调度,使得用户完全可以将其当作是“一台”完整的机器,即当作是传统的服务器来使用。而对于后者而言,可理解为是云主机划分出来的某个独立区域,拥有独立的域名、完整的Internet服务器功能,但没有独立的操作系统,用户只能通过提供的控制面板操作,享用某种特定的功能服务,但不能完全地访问到整台机器的文件系统和内存等。
1.2 系统体系结构
数据库和文件备份系统采用的是C/S软件体系结构,即Client/Server(客户端/服务端)结构[1]。服务器负责管理客户端的列表和配置,备份数据以及对多个备份副本进行管理,另外还管理则操作日志、数据统计等工作,另外还负责发起对云数据库的备份操作。而客户端主要负责安装在需要做文件备份的客户机器上面,提供优质简易的操作界面,允许客户在客户端连接自己部署的服务端机器,配置自己的备份策略和所需要备份的文件目录。另外客户端需要监听服务器发起的备份与恢复操作。
1.3 服务端核心功能模块
1. Web访问界面
服务端可以通过Web界面访问到当前备份系统的状态管理界面。服务端的Web界面可以通过FastCGI(端口55413)或者是HTTP(端口55414)进行访问。使用FastCGI端口访问时候可以通过SSL(Secure Sockets Layer,安全套接层)将服务器连接到其他的Web服务器中(比如apache、lighttp等)。系统管理员基本都要使用这个Web界面对备份系统进行整体管理,使用服务端的各个功能模块并且设置备份副本存储介质目录。服务端默认绑定以下端口:
2. 客户端列表与配置管理模块
服务端通过定期监测远程连接着本端的客户端的状态信息(如客户端名称、在线状态、最近在線时间、最近备份时间等)整合整理,并且在Web界面进行展示,方便系统管理员对其进行选择、查看、备份恢复以及删除客户端等操作。服务端需要将客户端的配置信息整合记录下来,如客户端的文件配置目录、配置策略等。当发起备份操作时可以将配置信息提供给文件备份模块。
3. 客户端文件备份与恢复模块
文件备份模块主要负责对客户端的文件进行备份传输和恢复传输。包括对文件系统的全量备份、增量备份。接着负责将客户端传输过来的备份副本存储到服务端指定的的副本存储介质目录中。当副本的数量达到一定的时候,将定期地删除最旧的副本,以防过度地占用磁盘空间。
4. 数据统计与日志管理模块
服务端需要对当前的数据存储状态进行统计,包括当前存储空间的使用状况、各个客户端的备份副本所占用的空间比例、磁盘镜像的占用比例等等。方便系统管理员监控磁盘空间使用率,在必要时进行服务端负载均衡操作,控制客户端的数量,并且定期删除过期的备份副本。服务端活动日志管理模块记录着所有客户端的所有备份操作及其相关的状态信息。服务端将每一条日志分成不同的等级:信息、调试、错误和警告四种不同的等级。在服务端Web界面当中,可以浏览所有客户端的日志并且通过不同的等级或不同的客户端对日志进行过滤查看。在备份的过程中,服务端会尝试记录属于客户端的特定的备份日志,并且最终发送回给客户端,提供给客户端的用户查看。
5. 云数据库备份模块
对于云数据库,系统管理员需要提供用户云数据库的URL、端口号、数据库名和密码,并且需要选择数据库的类型(如Mysql、Oracle、PostgreSQL等)。服务端在尝试连接云数据库并且成功之后,将按照管理员制定的备份策略定期对云数据库进行拷贝备份。
1.4 客户端核心功能模块
1. 托管图标/管理界面模块
客户端有专门的一个界面进程负责显示托盘图标和对话框界面。界面模块需要接收用户的操作并且读取用户填入的配置和选项,将命令通过协议分发到客户端的其他功能模块。
2. 命令侦听模块
客户端需要侦听来自服务端的UDP(端口号为35622)广播消息,并且在接受到消息时想服务器发送名为message的消息表示自己已经接收到。同时有一个接收服务端命令的端口(端口号35623和端口35621)并且与服务端建立永久连接,通过该端口接收备份请求和更改设置请求。客户端默认绑定以下端口:
3. 文件列表设置模块
客户端需要负责构建所要备份目录中的所有文件的列表,并且将其维护在客户端机器的特定的目录上。通过Windows Change Journa不断监视加速目录列表创建目录的备份。并且及时记录目录的更改与变化,方便与服务端进行备份操作时,能够将旧文件数据与新修改文件数据做区分,方便做增量备份,也方便服务端发起数据恢复操作。 4. 备份策略管理模块
用户可以通过界面模块对所设置的文件列表下的所有文件指定合理的备份策略。包括对某个目录下所有文件是否做全量备份、增量备份,在哪一个时间段进行备份,是否在某个时间间隔内做定期的备份等。
1.5 散列处理及备份碰撞概率
在备份系统对数据进行增量备份或者备份恢复时,需要检查文件数据是否相同。这里值得一提的是在消除文件重复数据之前,备份系统使用的是SHA512对文件数据进行散列处理。SHA512是一种安全散列算法。安全散列算法(The Secure Hash Algorithm,SHA)由美国国家标准和技术协会(National Institute of Standards and technology,NIST)于1993年提出,并被定义为安全散列标准(Secure Hash Standard,SHS)。
对于数据的散列处理会有几率发生散列冲突,即即是数据不同,数据的散列值相同。若真的发生散列冲突,则可能导致文件传输过程中发生错误链接或者是映像备份中的某个数据块不传输。但在维基百科中对SHA512的概率表中显示,我们需要有个相同大小的不同文件进行散列计算,才会到达的概率发生散列冲突。维基百科还明确指出,是典型硬盘最好的不可纠正的误码率。存储个1KB的不同文件需要一个EB的硬盘空间,可以看出是几乎不可能的。因此当备份系统链接到错误的文件数据时,更可能的硬盘返回了错误的数据或者数据在内存中被损坏掉了。
2.实验
测试环境为Windows Server2012 R2 64位操作系统,Inter(R)Xeon(R)E3-1220 v3@3.10GHz CPU,内存28GB,机械硬盘4000G。
2.1文件系统备份实验
测试方法:在测试机器中安装系统的服务端和客户端,对本机某个文件目录下的的文件系统进行定期的备份,分别采用全量备份和增量备份并且记录备份副本占用磁盘空间的大小[7]。备份期间对指定的备份目录下的文件结构进行不定大小的增加、删除和修改操作,操作的文件大小范围在1G~10G之间。并且对其进行了16次全量和增量备份,得出的实验数据如图3.1所示。可见若只对文件系统进行增量备份,需要备份的副本的大小基本在文件全量备份副本大小的10%左右,大大节省了磁盘的空间占用。
2.2数据库备份实验
测试方法:在测试机器中安装系统的服务端并且对远程Mysql数据库的进行定期的备份,分别采取压缩和不压缩的方法对数据库的备份副本进行存储,并且记录备份副本占用磁盘空间的大小。备份期间对数据库进行多组SQL语句操作,对数据库表中数据进行增、删、改操作。对其进行了五次全量备份。可见对数据库备份时若对备份副本进行压缩,将会大大减少磁盘空间的占用率。3 总结
本文详细地描述了云环境下使用的文件和数据库备份及恢复系统的设计以及实现的过程,解决了云环境下文件数据以及数据库数据管理复杂繁琐的问题,提高了磁盘的利用率以及数据的传输效率,具有一定的安全性,满足实际使用的功能需求和性能需求。
参考文献:
[1]何宇平,李涛,胡晓勤,彭勇,马晓旭. 基于Windows的远程文件备份系统的设计与实现[J]. 计算机安全,2008,(2):1-2
[2]何宇平,李涛,胡晓勤,彭勇,马晓旭. 应用于远程文件备份系统的关键技术[J]. 计算机应用研究,2009,26(1):1-3
[3]李自尊,胡晓勤,周文瑾,邓亮. 基于差异数据的块级数据库备份系统[J]. 四川大学学报(自然科學版),2012,49(4):1-6
[4]李涛. 网络安全概论[M]. 北京:电子工业出版社,2004.
[5]纪海. 基于云计算的产品平台设计服务研究[D]. 北京:纪海,2012. 9-11
[6]林芙楠. 基于Bloom Filter的云存储文件去重方法的研究与优化[D]. 广州:林芙楠,2016.
[7]徐旭,付威,李芬,吴文阳,张建刚,韩晓明. 基于内容地址存储的文件级备份系统[J]. 计算机工程,2010,36(16):2-4