云计算伴随着信息化技术及互联网应用的不断发展而衍生出来的计算策略,其延伸到互联网应用的各个领域,能够对通讯设备进行实时数据通信和交互式计算的全新数据应用形式。云计算模型可以分为传输层、计算层以及展示层三个基本层次,其整个计算过程承载了海量数据的处理和存储,因此,存储模型的良好性能是其良好运行的保障。
分布式存储系统作为目前应用较为广泛的存储系统,其在云计算方面具有良好的适用性,分布式存储系统的核心是将服务器资源通过互联网进行连接通信,在外界看来,其作为一个计算存储整体提供数据服务。通过研究发现,分布式存储系统具有以下若干特征:
1)可扩展性。分布式存储系统的服务器数量可以是几百台,甚至上千台,随着服务器数量的增加,分布式存储器的性能也呈线性增加。
2)成本低。分布式存储系统甚至可以通过普通PC机互联互通实现,经济成本较低,同时,其具备自动容错和负载均衡等特点,随着服务的提升,线性扩展设备也较为方便,能够是需要一定程度的自动运维,维护成本也较低[5]。
3)性能优越。分布式存储系统的计算机集群和服务器集群能够提供的计算能力极强,具备较强的存储和技术性能。
4)易用性。对于分布式存储系统而言,其能够针对不同的数据应用,向外界提供数据接口,同时,分布式存储系统必须具备完善的监控服务和运维工具,十分便于其与外界系统和应用的集成。
本文提出的云计算数据优化存储模型即在分布式系统的基础上完成的。
1云计算数据优化存储系统设计
1.1哈希数据分布设计
云计算系统时刻产生海量传感器采集的用户信息,而且各种数据分布不集中,当数据量较大时,通过采用两种方式对数据进行拆分,一是手动拆分的方式,即通过管理员在线下对数据量大的用户进行标记确认,根据数据量的规模将数据拆分到不同的数据库集群中。另一种是自动拆分方式,即通过数据分布算法实现大用户数据流的自动拆分,将拆分后的数据平均分解到若干服务器中[8]。本文设计的数据优化存储系统采用自动拆分的方式,数据分布算法采用哈希数据分布策略。
本文采用的哈希数据分布策略是在一致性哈希算法(Dis?tributedHashTable,DHT)的基础上实现的。一致性哈希算法的核心思想描述为:随机为系统的每个节点分配一个token,随机分配token形成哈希环。当对数据进行存储时,首先计算主键Key的哈希值,然后按照顺时针方向将数据存放到***个等于或者大于该哈希值的token属于的节点中。一致性哈希算法的优势在于当对哈希环的节点执行添加或者删除操作时,不会对该节点的邻节点产生影响。
将哈希空间设置为0~2n,则一致性哈希算法的执行流程可以描述为如下步骤:
Step1:为每个服务器节点计算属于其自身的hash值,然后将哈希值分布到0~2n范围内的哈希环区间内;
Step2:采用相同的方式计算出待存储数据对象的主键节点的哈希值,也将其分布到哈希圆环内;
Step3:按照顺时针方向从数据映射的位置开始搜索,将数据放置在***个找到的哈希节点中。
为了方便服务器位置的查询,需要维护服务器在哈希环中的位置信息,本文采用的位置获取方法的计算复杂度为O(logN)。
将哈希空间设置为0~2n(即N=2n),以Chord系统为参考对象,为了提升查询的效率,本系统在每台服务器中产生一个长度为n的路由表,描述如下。
其中,p表示服务器位于哈希环中的唯一ID,路由表中的第i个数据描述了ID为p+2i-1的后继节点。
1.2分布式协议设计
Paxos协议用于解决多个节点之间的一致性问题。多个节点之间通过操作日志同步数据,如果只有一个节点为主节点,那么,很容易确保多个节点之间操作日志的一致性。考虑到主节点可能出现故障,系统需要选举出新的主节点。Paxos协议正是用来实现这个需求。只要保证了多个节点之间操作日志的一致性,就能够在这些节点上构建高可用的全局服务,例如分布式锁服务,全局命名和配置服务等。
大多数情况下,系统只有一个proposer,他的提议也总是会很快地被大多数节点接受。Paxos协议执行步骤如下:
Step1:批准(accept)过程,Proposer向所有节点发送accept消息,其他所有节点作为接受者(acceptor),接受者可以选择接受或者选择拒绝。
Step2:确认(acknowledge)过程,当接受的acceptor数量超过1/2时,则表示提议值可以生效,Proposer向所有的接受者发送acknowledge消息,提醒该提议已经生效。
当网络发生异常时,存储系统中可能会同时出现多个不同的Proposer,因此会产生多个不同的提议。提议的内容可以是修改请求,也可以是将自身提升为主节点的请求。一旦Propos?er***次发起的accept请求没有被多数的接受者所批准,或者与其他请求产生冲突,则必须完整地执行完成Paxos协议的整个流程。
Paxos协议需要考虑两个问题:正确性,即只有一个提议值会生效;可终止性,即***总会有一个提议值生效。Paxos协议中要求每个生效的提议被acceptor中的多数派接受,并且每个acceptor不会接受多个不同的提议,故而能够确保其准确性。
2仿真实现及分析
为了验证本文设计的云计算数据优化存储系统模型应用效果,作者在OPNETModeler仿真软件中进行仿真验证,OPNETModeler提供了完整的通信协议、存储器模型以及连接线路。
在OPNETModeler中构建的测试场景中,配置两台服务器节点,每台服务器分别于5个数据库存储单元相连接,所有的数据通讯均通过有限连接完成,对数据库的操作主要包含数据读出和数据写入两种类型。读操作即按照规定的时间将数据从数据库中读出,写入操作即数据存储过程,数据读出和数据存储的速率设定为10M/ms,且按照一致性哈希分布算法检索出目标数据库,仿真时长设定为20分钟,然后对每台数据库的容量进行分析对比,查看其分布是否均匀。
测试结果表明,在本实验中的10台数据库存储单元的存储容量基本维持平衡,且分布较为均匀,基本维持在135255M左右。因此,可以说明本文设计的云计算数据优化存储模型具有良好的公平性和一致性,能够将数据压力均匀地分布到多个数据集群中去。
作者同时对吞吐量和响应延时做了统计,统计结果表明,数据读写的平均吞吐量及响应延时与传统的顺序存储系统相比,性能有了较大的提升,仿真结果如图1所示。本文设计的云计算数据优化存储模型由于引入了哈希分布的概念,使得数据存储的吞吐量增加了13.1%,平均响应延时减少了10.8%。性能分析可能会很复杂,因为不同情况下系统的瓶颈点不同,有的时候是网络,有的时候是磁盘,有的时候甚至是机房的交换机或者CPU,另外,负载均衡以及其他因素的干扰也会使得性能更加难以量化。
3结论
通过分析云计算的数据处理特点,作者提出了基于哈希分布的云计算数据优化存储系统模型。此模型根据云计算的海量数据的分布特性,以一致性哈希分布算法原理为基础,在充分考虑负载均衡的前提下,完成了基于Paxos协议的系统分布式协议设计。通过在OPNETModeler仿真软件中构建测试场景,对云计算数据优化存储系统模型进行测试验证及分析。测试结果表明,本文设计的云计算数据优化存储模型相对于顺序存储系统模型在数据吞吐量方面增加了13.1%,响应延时方面减少了10.8%。总体而言,本文设计的云计算数据优化存储系统具备可行性。