网络备份系统体系结构设计.docx
- 文档编号:3533664
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:32
- 大小:568.56KB
网络备份系统体系结构设计.docx
《网络备份系统体系结构设计.docx》由会员分享,可在线阅读,更多相关《网络备份系统体系结构设计.docx(32页珍藏版)》请在冰豆网上搜索。
网络备份系统体系结构设计
网络备份系统体系结构设计
2006-6-6
1.网络备份系统介绍
1.1网络备份系统背景
信息技术的迅猛发展,以计算机和网络技术为主的信息技术已在社会各个领域中得到广泛的应用,而随着近年来网络系统的普及和应用,当前越来越多的企业和单位意识到数据备份和恢复的重要性,为了达到数据的高安全性和高可靠性,许多企业和单位投入了大量的硬件和管理成本。
对于大型企业的关键性数据,市场上已存在SAN和NAS等多种解决方案,而对于个人桌面而言却相对空白,研究表明个人机器上的数据往往也是企业数据的重要组成部分,因此如何为个人用户提供高安全性、高可靠性的数据备份系统是企待解决的问题。
目前数据备份有许多解决方法,其中尤以基于网络的异地容灾备份系统备受瞩目。
与传统的在线备份系统相比,采用该方法实现的在线备份系统有数据安全性可靠性高,系统运行和维护开销小的优点,具有广阔的市场应用前景。
因此本小组设计了面向个人桌面的网络在线备份系统,并对其中设计的诸多问题进行了深入的研究。
1.2网络备份系统概述
网络备份系统是一个可应用在企业内部网或广域网中的面向桌面的在线备份系统。
该系统给用户提供功能强大、方便快捷、安全可靠的在线备份服务。
下面先介绍一下相关概念。
相关概念:
●冗余机制
为了满足用户对备份系统的可靠性和安全性,系统将用户提交的需要备份的文件数据利用转换矩阵进行冗余打散,变成若干个数据块(假设是N块),然后上传。
当用户下载备份文件时,将得到的若干个数据块进行组装,恢复成原文件。
注意,这里下载的时候,不需要下载全部N块,只需下载任意M块(M 当某些机器出现故障的时候,即使得不到全部N块,也能得到完整的数据。 这里冗余打散和组装是用的特殊的矩阵变换,在达到可靠性的同时,也满足了安全性。 ●增量备份 所谓增量备份就是只备份在上一次备份后被增加、改动的部分数据。 增量备份可分为多级,每一次增量都源自上一次备份后的改动部分。 即当用户反复备份某一大部分内容相同的文件数据的时候,系统只备份在上一次备份后被增加、改动的部分数据。 增量备份可分为多级,每一次增量都源自上一次备份后的改动部分。 举例如下,某用户做开发工作,昨天将源代码上传备份,今天做了一些工作,又将源代码上传了一次。 那么今天只需上传增加改动的部分。 新版本的索引信息需要记录哪些是改动的文件,哪些是引用前一个版本的文件。 由于不同版本之间拥有公共数据,因此需要一个版本管理机制。 这里再介绍一下引用计数的细节。 假设用户昨天上传了一个文件,被冗余打散成4块(A块,B块,C块,D块),那么这4块的引用技术分别为1。 今天此用户修改了该文件,又上传备份。 当冗余打散候,发现A块,B块,C块不变,而D块改动了,则上传模块将D块命名成E块,只需上传E块。 而服务器上A块,B块,C块的引用计数将变成2,而D块的引用计数仍然是1,E块的引用计数则为1。 本项目这个网络备份系统是一个可应用在企业内部网或广域网中的面向桌面的在线备份系统。 该系统给用户提供功能强大、方便快捷、安全可靠的在线备份服务。 为了达到上述的目标,我们需要解决以下问题: 1.如何为个人用户提供高安全性、高可靠性的数据备份服务。 2.如何在保证服务的基础上尽可能的节约存储空间和降低网络带宽消耗。 3.如何提高系统的存储性能,使得系统提供高性能的存储服务。 4.如何利用廉价的硬件成本提供好的服务质量,并减少管理和维护开销。 下面我们将针对上述问题提出相应的解决方案: 解决方案: ●为了保证数据的高可靠性,我们研究了硬件冗余技术和软件冗余技术相结合的可靠性理论,提出了采用Erasurecode分解编码的软件冗余技术与经典的raid硬件冗余相结合的方法,并在两种冗余技术结合的基础上,利用分布式技术,将数据尽可能的分布到不同的服务器上,使得彼此的错误相关性降到最低,从而达到高可靠性的远程数据备份的目的。 不仅如此,为了保证数据的安全性,我们研究了数据传输和存储的安全性问题。 在数据传输中采用压缩加密技术,避免了传输过程中信息泄漏。 在数据存储中是将原文件分解后分片存储,从单一的碎片中不能得到原文件的任何信息,从而保证了数据的安全性。 ●为了节约存储空间和降低网络带宽消耗,我们对数据增量备份技术以及数据压缩传输技术进行研究。 为了满足不同应用的需要,在对数据可靠性和备份速度权衡的基础上,提出了具有不同冗余度的增量备份技术,以提供不同可靠性等级和不同备份速度的服务,满足了各种应用的需要。 加之采用经典的压缩算法的数据压缩传输技术,达到了节约存储空间和降低网络带宽消耗的目标。 ●为了提高系统的存储性能,我们完成了对备份系统中服务器的负载均衡与动态优化问题的研究。 在系统中,对于服务使用者来说,数据服务池提供的数据服务是透明的,在数据服务池内部,通过对各个服务器各种静态动态信息的收集,对各个服务器的服务能力进行评估,根据不同的实际需要,采用不同的选择策略,动态的选择服务器,从而达到服务器的负载均衡和服务动态优化,提高了系统的整体存储性能。 ●为了达到利用廉价硬件成本提供好的服务质量的目标,我们对备份系统服务器的虚拟化组织问题进行了深入研究,提出了采用数据服务池技术来完成服务器的虚拟化组织,通过在服务器端设置服务器监控代理,对服务器状态进行实时检测和预警。 通过这种虚拟化的技术,使得对于外部而言,数据服务池是一个统一的整体,提供同一的服务,池中服务器可方便的实现服务的透明迁移,并支持服务器的在线动态扩展和维护,极大的提高了服务的质量,并且降低了系统的管理开销。 1.3项目面向的用户群 网络备份系统主要是作为一个可应用在企业内部网或广域网中的面向桌面的在线备份系统,该系统给用户提供功能强大、方便快捷、安全可靠的在线备份服务。 所以我们将项目面向的主要客户群定位为: 1.需要对企业关键数据进行备份的大中小型企业。 较之个人用户,企业关键数据更显得宝贵。 据统计,60%的企业关键数据都存储在企业内部员工的PC机和笔记本电脑上,因此对企业内部员工的桌面备份显得尤其重要。 2.在广域网中推出在线备份业务的互联网公司。 3.推广社区宽带网络增值服务的运营商。 目前国内正大力推广小区宽带入户,然而小区内部的带宽往往被大量闲置、浪费。 本系统也可以提供快捷的局域网内的备份服务。 由于本系统同时兼有简单有效的共享功能,因此它不仅是小区用户个人数据备份的工具,而且还是小区用户间数据交流的平台。 1.4本系统最终目标 本系统最终目标是构建一个在线高可靠性的增量备份工具的系统,该系统支持简单方便的客户操作界面和简单有效的虚拟存储管理。 2.网络备份系统需求分析 2.1用户需求分析 网络备份系统的使用者分为两类: 用户和系统管理员。 这两类使用者对系统的功能需求有所不同。 用户 备份文件(上传备份) -通过客户端软件,备份相应文件数据(即上传备份)。 下载备份 -通过客户端软件,下载所需要的文件数据。 备份删除 -通过客户端软件,删除不需要的文件数据。 备份的可靠性 -用户对数据备份要求可靠性。 必须保证数据不丢失。 备份的安全性 -用户对数据备份要求安全性。 不能轻易被别人获得私人数据。 注册用户名等 -通过客户端软件,输入用户名密码登陆。 系统管理员 -用户、角色和权限的管理 -系统设置和维护 -安全管理 -服务器群的管理,包括网路负载,CPU利用率等等。 2.2网络备份系统的功能模型 基于需求分析,可以得到系统的功能模型如下: 2.2.1客户交互模块 界面模块 用户通过客户端界面模块和系统交互。 冗余变换模块,全称是“冗余打散文件与组装文件模块” 为了满足用户对备份系统的可靠性和安全性,系统将用户提交的需要备份的文件数据利用转换矩阵进行冗余打散,变成若干个数据块(假设是N块),然后上传。 当用户下载备份文件时,将得到的若干个数据块进行组装,恢复成原文件。 注意,这里下载的时候,不需要下载全部N块,只需下载任意M块(M 当某些机器出现故障的时候,即使得不到全部N块,也能得到完整的数据。 这里冗余打散和组装是用的特殊的矩阵变换,在达到可靠性的同时,也满足了安全性。 加密解密模块 由于冗余打散和组装过程中数据块已经有加密的成分,所以这里的加密解密模块只需考虑传输的时候一些关于索引信息,用户名,密码等传输控制的信息。 版本管理模块 前面提到了增量备份的概念,即当用户反复备份某一大部分内容相同的文件数据的时候,系统只备份在上一次备份后被增加、改动的部分数据。 增量备份可分为多级,每一次增量都源自上一次备份后的改动部分。 举例如下,某用户做开发工作,昨天将源代码上传备份,今天做了一些工作,又将源代码上传了一次。 那么今天只需上传增加改动的部分。 新版本的索引信息需要记录哪些是改动的文件,哪些是引用前一个版本的文件。 由于不同版本之间拥有公共数据,因此我们需要一个版本管理模块。 上传模块 根据用户需求,完成上传指定文件目录的工作。 下载模块 用户从网络备份系统中下载需要的文件。 删除模块 用户从网络备份系统中删除不再需要的文件。 2.2.2文件服务模块 响应请求模块 当客户端或者其他服务器发出各种请求时,文件服务器给予相应的响应。 相当于一个功能管理中心。 传输模块 传输模块具体实现类似ftp的传输功能,完成传输任务。 垃圾清理模块 按照前面的引用计数,当文件服务器上面的数据块的引用计数为0时,清除该数据块。 修复模块 文件服务器自发探测,发现并修复损坏服务器上的数据块。 当一个文件服务器彻底损坏时,它上面的数据块再也无法读取。 这时,文件服务器会与其他相关的文件服务器相互通信,从中取得数据,利用冗余机制将坏块重建。 信息统计模块。 每个文件服务器自己统计自己的一些系统信息,如磁盘空间,网络负载等等,将这些信息提交给索引数据库。 2.2.3索引服务模块 响应请求模块 处理客户端上传,下载,删除,创建目录,传送索引等种种请求。 索引服务器将对这些请求给出相应的响应,相当于一个功能管理中心。 调度模块 根据文件服务器提交的信息,调度模块计算选择合适的文件服务器,提供给用户用以存储或下载。 解密模块。 当和客户端交互的时候,要将一些传输控制的信息解密出来,例如索引信息,用户名等等。 2.2.4系统管理模块 系统管理员通过管理模块进行一些管理工作。 主要是用户的管理,服务器群的管理。 用户管理模块 管理用户的诸如帐户,密码,是否在线等信息。 服务器群管理模块 包括服务器群的网络负载,CPU负载等信息的管理。 消息管理模块 针对用户反馈信息,广告消息,系统通知消息进行管理 2.3性能需求分析 性能要求: ⏹资源的访问效率和公平性 要求系统设计能够保证海量数据备份、大规模数据传输的效率性,并保证多用户使用时的公平性。 ⏹网络连接可拓扑性需求 要求系统设计要能够满足大范围网络传输带来的时延、带宽等限制。 同时要求系统具有规模可扩性,即可以提供某些策略支持,以保证在用户人数和系统规模急速增长的情况下,以最少的改动适应系统新的资源压力。 可用性要求: 资源的维护 备份系统必须具有高度的可用性,需要提供冗余支持以便维持系统运行健壮性,还需要提供可靠的数据备份机制,确保灾难发生时能够正确进行数据的恢复。 能够方便地进行系统扩展。 可修改性要求: ⏹系统结构灵活性 系统还需要具有良好的服务器扩展功能,支持多种服务器扩展模式,可根据用户量的大小及分布情况,选择相应的服务器扩展模式。 ⏹平台和资源的相对独立 要求系统具有平台独立性,能够屏蔽平台的影响,实现系统的跨平台构建。 安全性需求: 要求系统能够对恶意攻击作出判断和反应,能够提供基本的防御操作并能够支持防御功能的升级。 3.网络备份系统体系结构设计 3.1体系结构风格选择 3.2我们使用4+1视图来指导体系结构设计,以逻辑视图,开发视图,场景视图为重点,辅助以进程视图和物理视图,通过功能行为,将整个大系统划分为三个子系统: 用户使用,管理员使用,系统管理.以下是对这三个子系统进行体系结构分析. 由于网络备份系统是一个面向个人用户的系统,当用户使用该系统时,最关心的两个问题就是备份数据的安全性与可靠性,特别是涉及到网络上的数据的传输,这些问题就显得十分重要。 因此,我们采用了这么两个策略来保证数据的安全性与可靠性: 1.采用数据加密传输机制来保证数据的安全性。 2.将文件打散为多个冗余碎片,存放到不同的服务器数据库上来保证数据的可靠性。 要实现这两个策略,需要用户在本地机器上运行复杂的代码,而不只是简单的上传下载的功能,而简单的浏览器并不能满足这个需要,因此,我们选用了C/S架构。 然而,传统的C/S架构有这么几个缺点: ●多个Client端与Server端数据库直连,会给Server端数据库带来很大的压力。 ●Server端的业务与数据混合在一起,耦合度太高,不易修改。 为了解决这个问题,我们采用了改进的3层C/S架构,将服务器端的控制与数据分离,形成用户层——服务层——数据层的三层C/S体系结构。 这么一个C/S架构基本能满足用户的需求。 然而,除了用户,我们还需要为管理员提供管理接口。 由于管理员不需要上传下载文件,因此,对于管理员而言,他无须安装客户端。 并且,管理员必须能够方便快捷地管理系统。 因此,对于管理员,采用B/S架构是一个合适的选择。 除此以外,还有一个不容忽视的问题,那就是如果文件服务器发生永久性损坏,那么文件碎片的冗余度就会降低,这将会降低整个系统的可用性。 如果损坏的服务器数目超过了阈值,文件则无法恢复。 对于这个问题,我们的解决办法是将所有的文件服务器组织成一个P2P架构的机群,每台文件服务器可以自发地发现损坏的机器,然后将该机器上的数据恢复出来。 因此,网络备份系统最终的设计方案就是一个集合了C/S,B/S,P2P三种架构的混合体系结构。 3.2体系结构设计 3.2.1C/S体系结构 该体系结构是用来描述用户如何通过客户端获得系统的服务。 当客户需要备份文件时,客户端向索引服务器发送请求,索引服务器通过访问数据库,利用调度算法找出对该客户端而言速度最快最合适的几台文件服务器,将这些文件服务器列表返回给客户端,然后客户端直接将打散的文件传送到这些文件服务器上。 当客户需要下载文件时,也是同样一个过程。 客户端先向索引服务器发出请求,索引服务器访问数据库,利用调度算法找出最快最合适的几台文件服务器,将这些服务器列表返回给客户端,客户端直接从这些服务器上下载文件碎片,重新将文件组装起来。 体系结构如下图: 用户访问三层C/S架构 3.2.2B/S体系结构 该体系结构描述的是管理员如何通过web页面访问系统进行管理。 当管理员要管理整个系统时,他可以通过web页面登录。 Web服务器会给管理员提供一个管理界面。 主要管理功能有这么三种: 1.用户管理 Web服务器可以从索引数据库中读取所有用户的信息,管理员可以针对用户的信息,执行增、删、查、改的操作。 如添加用户,删除用户,设定用户空间等功能。 2.服务器管理 管理员可以对文件服务器群进行管理,加入或移出文件服务器。 并且,管理员可以通过索引数据库中的信息,查看文件服务器的状态,了解各个服务器指定时段的负载和使用情况。 3.通知管理 在该系统中,存在这么几种消息: 用户反馈消息;广告消息;系统通知消息。 管理员可以对这些消息进行管理。 体系结构如下图: 管理员管理B/S架构 3.2.3P2P体系结构 该体系结构是描述文件服务器之间如何自组织完成数据修复工作。 尽管我们采用了冗余机制,使得我们的系统在某几台文件服务器发生故障时,依然能够提供可靠的服务。 但是,如果文件服务器损坏的数目超过了阈值,那么文件将无法恢复。 所以,当一台文件服务器发生永久性故障,无法再恢复时,其他的文件服务器应该主动将损坏服务器上的数据重建出来。 步骤如下: 1.文件服务器周期性自发访问索引数据库,看看是否有其他服务器永久损坏。 2.寻找损坏服务器上适合自己修复的数据,加入自己的任务列表。 3.执行任务列表里的任务,从其他文件服务器上将相关的文件碎片下载到本地,通过冗余机制重建出被损坏的碎片。 体系结构如下: 文件服务器P2P体系结构 3.2.4混合体系结构 将以上3个不同的体系结构混合在一起,就是我们整个系统的混合体系结构。 混合体系结构 3.3其他的体系结构设计分析 3.3.1为客户提供的服务的体系结构 除了前面说过的C/S体系结构,我们还有这么一种B/S体系结构的设计: 将客户端的功能转移到服务层,设计作一个代理服务器。 这样客户端就可以通过web界面,利用http协议上传文件到代理服务器,由代理服务器将文件打散,再分别传送到文件服务器上。 下载时,通过代理服务器将文件组装完成,再利用http协议传送回客户端。 体系结构如下: B/S体系结构 优点: 1.客户端只需要是用浏览器即可访问系统。 2.系统维护、升级方便。 缺点: 1.代理服务器必须处理所有客户的备份和下载请求,将他们所需的文件打散和组装。 代价很大。 是系统瓶颈。 2.用户通过http协议上传下载文件,没有经过加密处理,缺乏安全性。 3.利用http协议传送文件速度慢,无法获得质量保证。 3.3.2文件服务器修复数据的体系结构 除了前面的P2P体系结构,我们还有这么一种C/S体系结构的设计: 将修复文件的任务交给一台代理服务器,由它去发现需要修复的文件,并将该文件碎片从新生成。 最后再将生成的碎片传到文件服务器上。 这样就是一个C/S结构。 体系结构如下: 文件服务器C/S体系结构 优点: 文件服务器端代码简单,易于维护。 修复机制集中在代理服务器上。 修改方便。 缺点: 代理服务器负载太大,是系统瓶颈。 3.4构件设计与连接 基于前面的体系结构设计,我们可以从面向对象的角度出发,在一个比较大的粒度上,将网络备份系统划分为客户模块,索引服务器模块,文件服务器模块以及web服务器模块共4个大构件。 这些构件在整体上被分为3层: 客户层,服务层与数据层。 由于这是一个实时交互的系统,因此不同层次的构件通过自定义的协议进行RPC连接。 而在每个构件中,根据上面的需求分析,我们可以在一个小粒度下,将相互独立的功能模块设计为其中的子构件。 总的构件设计与连接如下: 构件设计与连接 4.网络备份系统框架设计 4.1领域需求分析 网络备份系统是一个面向个人用户的系统,其用户相当广泛,而且用户类型并不固定,但不管对于怎样的用户,当用户使用该系统时,最关心的两个问题就是备份数据的安全性与可靠性,以及数据存取的效率问题。 在这里,我们抽取了对于使用网络来进行数据备份的时候,不同角色关注的需求: 普通网络用户比较关注的需求: ●系统的数据安全性。 本地数据丢失时可以通过网络备份系统得到很好的恢复;存放在网络上的文件信息不被其他人窃取和篡改;当部分数据损坏或丢失时,并不影响数据的恢复;系统能够及时地修复数据,防止信息丢失。 ●系统的数据可用性。 “可用性”主要讲两方面的问题,一是确保能够随时取得备份的数据,二是保证数据的一致性(版本同步)。 系统管理员比较关注的需求: ●系统可扩展性。 能够支持任意多的系统用户,需要解决两方面的问题: 空间和索引服务器负载能力。 “空间”问题通过分布式结构能够得到很好的解决,索引服务器负载则需要通过索引分布化解决。 ●系统可用性。 这主要是针对系统的服务,系统能够在用户需要的时候提供备份,下载和修改等服务。 ●数据操作高效性。 “数据操作”包括本地的数据处理以及网络数据传输,系统能够快速的进行文件碎片处理等数据准备工作,在网络传输时系统能够选取一组高效的存储线路同时在策略上考虑备份系统的特性,备份系统的备份和下载操作的非均衡性。 ●数据高效性。 这里主要指数据空间的高效性,系统在确保数据安全可用的前提下,避免同样的数据重复存储,在增量备份的前提下使得数据得到更大的重复引用。 ●系统负载均衡性。 系统包括多个文件服务器以及分布的索引服务器,系统能够保证这些负载均衡。 ●系统低成本。 “低成本”包括两方面的内容,一方面是用户希望得到免费的网络备份服务,另一方面服务上希望通过很低的硬件成本就能提供服务。 ●系统兼容性。 支持比较多的系统平台,网络备份系统充分利用了JAVA的平台无关性。 ●数据移动性。 包括两方面的要求,一是系统保证用户在任何安装了网络备份系统客户端的环境下备份/恢复数据,二是系统的存储模块可以将存储的数据转移而不丢失。 4.2框架设计 客户端的结构框架图: 系统端的结构框架图: 底层公共框架说明: 基类和通用服务层 这一层主要是为了整个系统所需的基本服务提供基础设施,是整个系统开发中最基础最常用的部分.主要内容包括: •对象模型基类 –JAVA类库 提供应用开发所需的无关具体应用背景的基本基类。 •通用服务(基本的机制) –对象创建、复制、删除等服务 –消息机制 –数据传输 –安全维护 –冲突控制 –同步管理 这些通用服务以不完全实现的方式提供出来,应用开发者还可以根据实际应用的需要进一步完善开发。 公共对象层 提供系统范围内应用可能都需要的一组公共对象,这些对象所基于的类都可以在实际的应用开发中被继承,它们只是定义了公共对象最基本的属性和操作。 当然,应用开发者也可以绕过这些公共对象,定义自己所需要的对象。 提供这些公共对象的目的一方面是为了方便应用开发者的开发,另一方面也可以使得基于框架的应用开发能够具有较高的一致性。 按这些公共对象间的相关程度,可以分为如下的一些类组: •类组0: 日历类 –自然日历 •类组1: 用户操作记录 –用户ID –用户操作时间(日历) –用户操作类型(上传/下载/删除/备份等) •类组2: 用户组 –用户ID –用户权限 –用户操作记录 •类组3: 系统管理员组 –管理员ID –管理员权限 –管理员操作记录 •类组4: 传输消息组 –消息头 –消息类型 –消息内容 4.3核心业务模块及扩展机制 核心业务模块提供了网络备份系统的核心的功能,包括客户端的核心业务模块和系统端的核心业务模块,例如加密解密模块,版本管理模块,请求响应模块,文件传输模块,文件的组装打散模块,数据管理模块,垃圾清理模块,修复模块,信息统计模块,用户管理模块,服务器群管理模块,调度模块,消息管理模块等核心功能,并且提供了基于类和通用服务层以及公共对象层的扩展机制,使得应用的开发者可以基于基类与通用服务,或者公共对象层来完成新增业务的开发.核心业务模块层的目的在于创建一个良好的面向对象的体系结构,和一个易于扩展的具有基础应用结构和行为的实现。 应用的开发者可以对核心业务模块提供的这些功能进行扩展,增加用户界面、具体应用场景的特定需求、特殊规则、具有竞争力的应用特色,以及补充的应用功能。 比如对客户端进一步扩展自动升级功能,自动备份功能,自动监控文件夹的功能;系统管理员端对服务器端扩展出监控报警功能等. 客户端的核心业务模块: ✧加密解密模块 −功能: 这里涉及到在文件传输的时候一些关于用户名,密码,索引信息等传输控制的信息的加密解密,以保证文件传输的安全性。 −主要操作: 索引信息加密解密,传输加密,传输解密 −扩展
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 备份 系统 体系结构 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)