您好, 访客   登录/注册

P2P架构下环型结构文件热备份系统设计

来源:用户上传      作者:

  摘要:针对文件共享系统中的文件热备份问题,提出一种在P2P网络中利用节点间环型结构实现共享文件备份的方法。围绕环型结构文件热备份设计,在实验系统中同时解决了网络节点加入与退出、节点状态监控、节点连接信息刷新、各节点中共享文件协同检索,以及各节点间实时通信等技术问题。充分利用P2P网络结构的技术特点,提高文件共享系统的可用性,同时证明P2P网络结构下的文件资源共享系统具有扩展方便、负载变化对系统影响较小等特点。
  关键词:P2P网络;文件共享;文件热备份;环型结构
  DOI:10.11907//rjdk.201103 开放科学(资源服务)标识码(OSID):
  中图分类号:TP319文献标识码:A 文章编号:1672-7800(2020)006-0098-04
  0 引言
  共享文件系统主要关注的问题之一是服务可用性。一直以来共享文件系统大多采用C/S或Web架构,数据集中存放于中心服务器,导致系统防灾性较差,例如网站的FTP服务器等,一旦发生故障,可能导致系统服务中断。笔者工作过的单位就发生过多次服务器宕机事件,使工作受到了很大影响。随着P2P网络技术的发展,分布式共享文件系统开始流行。分布式结构的共享文件系统在高可用性、易扩展性、负载平衡等用户十分关注的技术性能上都有较大改善,但由于P2P网络固有的动态性表现,使得文件检索成功率仍然不稳定,特别在一些不可抗力事件的影响下,有些系统无法持续工作,导致文件受到破坏甚至丢失。结合系统备份技术,特别是热备份技术以提高P2P文件共享系统的可用性与可靠性。在P2P分布式文件系统中,每个共享文件节点提供文件和存储资源,管理本节点的文件及备份文件,在网络中设置类似Gnutella的系统服务节点,以便于获取节点和备份节点的网络地址,并提供文件检索与资源定位服务。
  热备份系统以双机热备份为例,采用两台物理位置不同,但同时运行热备份程序的服务器,管理数据的备份、读取与存储,以持续保护数据的安全性。当主服务器出现故障时,备份服务器通过网络主动接替主服务器工作,保证网络服务不间断。
  相关研究主要集中在服务器监控方法与数据管理架构方面。如文献的混合容灾双机热备份系统提出新的心跳协议以解决主、备份系统的通信联系与状态监控问题;文献将主机和备份机的数据通过网络进行集中管理,双机热备份系统直接从存储设备读取与存储所有数据,以保证数据的安全性及保密性。以上系统均采用在主、备份服务器上集中存放数据的模式,由于受到服务器存储容量的限制,很难满足大型文件管理系统对存储容量及可用性的要求。本文提出的P2P架构下的共享文件热备份系统,将共享文件节点备份关系构成环型线性表,解决了备份文件存放、系统服务平稳切换等问题,可维持系统不间断工作,而且扩展性好,能够保证共享文件的安全性。
  1 系统热备份模型
  P2P节点基础通信层与共享文件热备份服务层形成系统的两层架构,其中P2P节点基础通信层实现所有节点间的点对点通信,共享文件热备份服务层提供与文件热备份相关的功能,以保证系统的可用性及访问的安全性。
  共享文件热备份层是由系统服务节点和共享文件节点组成的覆盖网。系统服务节点包括主服务节点和备份服务节点,系统服务节点管理所有共享文件节点,以保证备份文件的可用性,包括共享文件节点状态监控、节点控制与负载平衡、节点信息查询等。其中共享文件节点状态监控由节点状态监控算法实现,节点控制由节点加入算法和节点退出算法实现。共享文件节点存储与管理自治文件及备份文件,是网络共享文件资源的提供者和服务受益者,并能响应文件查询请求。
  为了实现网络共享文件的热备份,将共享文件节点间的备份关系设计成環型线性表结构,共享文件节点间逻辑结构如图1所示。共享文件节点备份关系由系统服务节点进行管理与维护。
  1.1 共享文件节点备份关系
  为了明确描述共享文件节点间的备份关系,给出以下概念定义:
  定义1:自治文件即共享文件节点向网络提供的共享文件。
  定义2:备份文件即其它共享文件节点以备份形式保存在本地节点中的文件。
  所以本文将共享文件分成自治文件和备份文件两类。每个共享文件节点设置共享文件表,用于记录与管理节点自治文件及备份文件信息。
  定义3:节点共享文件表(SFT,Shared file table),SFT={},其中id为文件编号,f为类型(0:自治文件或l:备份文件),t为共享文件更新时间,p为共享文件本地存放路径。
  为了有效管理系统服务节点及查询各网络节点的备份节点,应设置节点信息表和节点备份关系表。
  定义4:节点信息表(NIT,Node information table),NIT={},其中Nid是节点编号,IP是节点IP地址和端口号,S是节点在线状态。
  定义5:节点备份关系表(BRT,Backup relationship ta.ble),BRT=(N,R),其中N={ai|1≤i≤n,n≥0,ai∈NIT},R={r},r={1,a2>,2,a3>,…,n-1,an>,n,ai>}。
  N是节点集合,R是节点间备份关系集合,i,ai+1>表示ai所有自治文件备份到ai+1,。在BRT中,节点a1的前驱节点是an,节点an的后继节点是a1,其余节点为ai-1,ai+1,是ai的前驱和后继节点,所以BRT是个循环表。数据库实现BRT时,BRT={},其中Bid为后继节点编号。   1.2 节点加入算法
  新节点加入网络会引起节点间备份关系的变化,因为相关节点的自治文件都需要备份到后继节点,以维持BRT线性表环型结构的完整性和一致性。本文约定新节点插入到BRT尾节点后,使BRT尾节点成为新节点的前驱节点,首节点成为新节点的后继节点。
  算法1节点加入算法。
  输入:BRT的尾指针nid,节点IPn。
  输出:在NIT和BRT尾部增加新节点,建立备份关系。
  (1)NIT增加新记录n,Sn>。
  (2)如果BRT为φ,则在BRT尾部增加新记录,转第(6)步。
  (3)取BRT尾节点,在BRT尾部增加新记录。
  (4)在NIT中定位记录r,St>,获取节点网址IPr。
  (5)向节点IP,发送其自治文件到节点IPn备份的消息。
  (6)修改BRT的尾指针为Nid。
  新节点加入网络要向系统服务节点发送注册消息,调用节点加入算法完成3项任务:①在NIT和BRT增加新节点记录,通过消息传送的节点IP地址在NIT中建立记录,生成节点编号Nid;②建立节点备份关系,通过在备份关系表BRT尾部插入节点,使尾节点成为新节点的前驱节点,插入节点后,BRT的首节点成为新节点的后继节点,建立节点备份关系(线性表环型结构);③共享文件备份,向前驱节点发送消息,让其将自治文件发送到新节点作备份,但由于新节点刚加人,自身的自治文件情况还不明确,所以暂时不在后继节点作备份,而由节点文件发布算法实现文件备份。节点IP,收到消息,将SFTr(即SFTr中f=1)发送至节点IPn,SFTn=SFTr∩SFTn。
  1.3 节点退出算法
  系统服务节点定期接收所有共享文件节点发送的心跳消息,无心跳表明该节点已退出网络,要调用节点退出算法调整前驱、后继节点间的备份关系,并通知节点进行共享文件备份,最后刷新共享文件表SFT。
  算法2节点退出算法
  输入:退出节点nid。
  输出:在NIT和BRT删除退出的节点nid记录,调整BRT备份关系。
  (1)按nid在NIT中找到L,SL>、n,Sn>和N,SN>,获取IPL和IPN,删除记录n,Sn>。
  (2)按nid在BRT中找到、和,将更改成,删除记录。
  (3)向节点IPN发送消息,将其备份文件变成自治文件。
  (4)向节点IPL发送消息,将其自治文件发送到节点IPN作为备份文件。
  节点IPN接收到消息,使SFTN={}中f=1。节点IPL收到消息,将SFTL(即SFTL中f=1)发送至节点IPN,SFTN=SFTL∩SFTN。
  1.4 節点状态监控算法
  在线状态的共享文件节点定时向系统服务节点发送心跳消息,系统服务节点接收到消息,找到节点记录NIT={},设置S为在线状态。系统服务节点会周期性地检查NIT,若发现节点Nid离线,则选择合适的备份节点,并调整共享文件节点间的备份关系,最后对所有共享文件节点刷新NIT。
  算法3节点状态监控算法
  输入:周期时间事件。
  输出:刷新关系文件节点NIT消息。
  (1)for each Si∈NIT
  如果si离线,则调用节点退出算法。
  心跳协议也影响热备份系统性能。心跳协议可利用Socket,以UDP、TCP、ICMP报文方式或串口通信方式加以实现。信息传输经过传输层、内核与通信接口软件及应用软件任务进行切换,整个过程环节多、耗费时间长,采用TCP心跳协议可保证连接的可靠性。另外,系统服务节点接收到共享文件节点前后两次心跳的间隔期总会存在短暂的空白时间,若系统服务节点或共享文件节点出现故障,则均无法监控到,因此心跳时间设置会影响系统性能。
  1.5 节点文件检索算法
  各节点文件检索主要利用系统服务节点传送给节点的NIT结合各节点的SFT加以实现。依靠过去成功检索获得的信息,在NIT中选择部分或全部节点发送文件检索请求,各节点接收到检索消息,通过查询SFT即可找到所需的文件。
  算法4节点文件检索算法。
  输人:节点ao要检索的文件名f。
  输出:节点ai的返回结果。
  发送检索f消息给ai。
  节点ai收到消息,在SFT中查询f,如果找到则返回文件,否则返回未找到文件。节点ao根据返回结果对ai进行评价(评价指标为查询成功次数),如果成功返回查找的文件,则增加查询成功次数并记录评价结果。算法中选择节点的依据是查询成功次数,所以次数多的节点首先被选中。如果全部返回结果均为未找到,则节点ao可扩大选择节点范围再进行查找。
  2 软件设计与实现
  系统要共享的所有文件资源被分散存放到各文件共享节点中,并将检索共享文件节点的信息发布到系统服务节点以便于管理。
  本系统由P2P消息收发模块、消息解析与任务调度模块构成P2P节点基础通信层,P2P节点控制与文件备份模块、节点状态监测模块构成共享文件热备份服务层。节点之间通信采用TCP协议,P2P节点监听连接请求端口,有连接请求时创建消息接收线程,建立Socket通信连接并接收消息,通过应用层通信协议解析消息,任务调度发送消息给各处理模块完成相应处理。
  实验系统软件采用多线程技术、Socket通信技术和TCP协议实现可靠的数据通信。采用Microsoft Visual C6.0作为实验系统软件开发工具,同时采用Microsoft Access2010数据库管理系统建立系统服务节点的NIT和BRT表,以及共享文件节点的SFT和NIT表。
  3 结语
  本文主要研究共享文件热备份系统的结构设计问题,通过建立P2P网络下线性结构的共享文件备份系统,解决了网络节点变动控制、状态监测与文件检索等问题。系统能够满足中小型网络文件资源共享系统中的文件热备份需求,而且得益于P2P网络系统可靠性强、扩展性与灵活性较高等特点,一定程度上提升了系统可用性,且系统运行稳定。下一步将运用面向行业的智能信息处理技术实现文件信息的智能检索,并运用区块链技术解决网络安全性与溯源性问题,力求进一步提高系统可用性。
转载注明来源:https://www.xzbu.com/8/view-15277999.htm