首页 > 文章中心 > 正文

分布式存储和数字集群移动通信系统

分布式存储和数字集群移动通信系统

1引入分布式存储的改进方案

分布式存储系统简单来说就是指将网络中许多物理上独立的存储设备,通过某种映射关系使之反映为逻辑上统一的存储空间进行使用。它可以很好的解决海量数据存储与数据并发的问题,所以这里将其引入集群通信系统中。

1.1网络设计

首先将数据服务器与交换控制中心在逻辑上分离开,改变原有的数据存储方式。各级交换控制中心不再配备私有的数据服务器,树形的业务网络拓扑结构不变,故除数据存储查询以外的其他业务将不受影响。然后将所有的数据服务器组成一个分布式存储系统,它对用户虚拟成一个统一的存储设备,系统中所有的存储与查询操作都将对这个虚拟存储设备进行。设计中所有的存储节点地位相同,没有使用负责资源定位的中心服务器。这种结构就称为结构化P2P网络,使用DHT(分布式哈希表)的方式进行资源定位,具体算法将在下一节介绍。同样以图1中G节点查询D节点数据为例,因为所有的数据都存储在结构化P2P网络构成的分布式存储系统中,所有只要知道需要查询的数据特征就可以直接从节点G连接到存储网络中,再根据资源定位的算法找到该数据在P2P网络中的存储位置,从而获取数据。这样就带来几个好处:

(1)数据存储摆脱了层级化的结构,使得在查询或读取某个数据时不必要通过该数据所属交换控制中心,数据传输时也不必要通过高层级节点进行转发,这大大缓解了高层级节点的压力,解决了负载不均带来的访问热点问题,同时也使得可靠性大大提高了;

(2)使用分布式存储方式还大大提高了数据的容灾能力。只要设计一个合理的数据备份恢复机制,即使个别存储节点无法接入网络,也丝毫不会影响系统的业务进行。

1.2算法实现

分布式存储的核心问题就是资源定位问题,这里准备使用一种经典的Chord算法来实现其功能。

1.2.1Chord算法原理

文献4中提出了Chord算法,它是由MIT于2001年提出的分布式查找算法。数据对象的存取原则为:将所有节点的nodeID(节点属性信息经过散列函数得到的hash值)从小到大(取模2m,m为hash值的位数)按顺时针方向排列在一个Chord环上。dataID(数据对象属性信息经过散列函数得到的hash值)为k的数据对象就存储在nodeID为k或者Chord环上k之后最近的一个节点上,这个节点称为k的后继节点,用successor(k)表示。如图3所示,这是一个m=4的Chord环,ID的值域范围为[0,16]。环上分布有6个节点,分别为N1、N3、N6、N9、N11、N13。假如要存储一个数据对象K,K的dataID=12,先找nodeID=12的节点,如果没有就找它后边最近的节点,这里后继节点是N13,所以数据就保存在N13上。

1.2.2Chord的路由

有了上述的后继关系后,所有的资源分布与定位问题都得以解决,但这样一个一个节点的找过去效率无疑是无法保证的。故此Chord中就引入了扩展查询算法。高级的交换控制中心(进行业务控制、终端管理、数据交换等工作),根据隶属关系逐级向下有多级交换控制中心,每个交换控制中心配有一个私有数据服务器用于存储所属的各类数据。每一个交换控制中心负责维护存有它所有子节点路由的路由表,查找某节点时需逐级查找。例如G节点需要D节点上的数据,就需要先向D节点发送请求,经过路由为G-C-A-B-D,随后D节点在自己的数据服务器上找到数据,再原路发回节点G。由上例可见,越高层级的节点所要承受的压力越大。在传统的集群通信系统中因为没有大数据量的业务,所以这种数据查询与传输的方式并不会对系统性能有较大的影响。但是在引入了新业务后,这种数据存储方式就会产生很多的问题:(1)负载不均衡,高层级节点压力过大。首先高层级节点上的数据被查询和存储的概率远大于低层级节点,高层级节点被访问的概率就很高。其次,处于不同分支的节点进行数据传输时都要经过高层每个节点负责维护一张路由表,通常称为指针表(fingertable)。如果ID长度是m个bit,那么指针表中就最多含有m个表项。节点n的指针表的第i项是Chord环上ID等于或者大于n+2i-1的第一个节点(取模2m)。如图2所示,节点N3的指针表,(3+20)mod24=4之后的第一个节点为N6,所以第一个表项的指针是N6。同理第二个表项的指针也是N6,第三个表项的指针是N9,最后一个表项的指针是N11。扩展查询的过程如图3所示,假设从N3节点发起查询,查询数据对象K的dataID=12,就可以根据N3上的指针表找到N11节点,再根据N11节点的指针表找到数据对象K的存储位置节点N13,这样就完成一次查询过程。

2实验结果及分析

本文使用OMNeT++进行仿真,选取了传统集群通信系统(DTMCS)与使用chord算法的结构化P2P网络改进后的系统进行比较,节点数设为781个(根据传统集群通信系统实际组网情况采用深度为5的树形结构,除第5层节点外,所有节点的子节点数均为5),随机选择请求发起节点与目标节点,发起查询请求并接受目标节点返回的数据信息(设返回数据包长为2k字节)。以在同一时段网络中发起的查询数作为变量,平均查询时延作为性能评估参数,对两种存储查询系统的性能进行评估。平均查询时延delay计算公式如下:delay=∑ni=1(receive_time-send_time)/n(1)式中,send_time为发送查询请求时间;receive_time为查询节点接收到返回数据的时间;n为同一时刻发起请求的数量;delay的单位为ms。使用chord算法的结构化P2P系统的平均查询时延受查询数量变化的影响并不大,随着查询请求数量增加缓慢变化;而传统的集群通信系统在查询请求较少时表现尚可,一旦请求数量较大时性能与可靠性将急速下降,甚至网络瘫痪出现大量丢包的情况。通过比较可以看出,改进后的存储查询系统在性能上有了很大的改进,可以很好的解决负载不均和可靠性低的问题。

3结束语

本文针对传统的数字集群移动通信系统存储查询功能在应对大数据量时的不足,提出了使用分布式存储系统的改进方案,并对该方案的网络拓扑结构和具体实现算法进行了详细的介绍,最后通过仿真表明了该方案在大量数据并发的情况下具有更好的性能。但是该方案仍然有许多不足之处,比如在仿真中发现节点数量超过5000时,平均路由跳数会比原方案更多,并持续增加。不过根据数字集群移动通信系统的组网特点,不会出现节点数量过大的情况,所以这个问题可以暂时忽略。另外还有一些需要完善之处,例如查询权限机制、即时数据同步以及通过分布式存储实现系统数据容灾功能等部分还需要进一步设计。

作者:蒋轶林郭淑琴单位:浙江工业大学信息工程学院