摘 要:本文提出一种基于网格的校布式存储系统,对该存储系统实体,用户读写读写过程,存储资源调度和存储资源定位进行了研究,最后通过对通过和FTP进行文件上传和下载性能进行了测试,证明了本系统文件传输性能比FTP要高,并且文件越大,读写性能增幅越大。
关键词:网格技术;存储系统;分布式;资源调度
引言
分布式存储技术的采取附网存储(NAS)、存储区域网(SAN)等存储技术,它在一定程度上改善了用户对存储空间需求的紧张局面,但在具体实施的环节上确实还存在着不少问题[1]。如何利用分布于网络中各个异构主机节点之上的不可靠空闲存储资源来构建大规模、高效率、易扩展、高可靠的存储系统来满足用户对信息与数据需求的增长是存储技术迫切需要解决的问题。基于网格的分布式存储能很好的解决上述问题,本文把将网格存储技术应用到分布式存储上,完成基于该技术的高效的资源节点查找,存储资源调度和分配,实现网络间的数据恢复、分配、回收,可以在不同种类的节点之间共享资源等优点,可以为分布式数据应用提供很好的技术基础。
1. 网格分布式存储系统设计思想
网格分布式存储系统的基本思想是利用网格存储技术,通过网络将网内零散的存储设备连接起来,汇集这些设备上的空闲存储空间,形成一个高可扩展、高可靠、高性能分布式存储系统。
系统为了将各节点主机的存储空间构建成一个大从系统功能的角度可以将系统分为3层:应用层、服务层和资源层。图1显示了系统层次结构。
图1 网格分布式的系统层次结构
应用层:用户通过用户界面直接与应用层交互。通过应用层提供的资源服务接口,用户看到的将是一个虚拟的海量存储空间,用户可以上传、下载、共享自己的资源,也可以访问由其他用户共享出来的资源。应用层主要包括用户管理模块和资源提交模块。用户管理模块负责对系统中的用户统一管理,用户按角色分类,各个角色的用户具有不同的操作权限,主要包括存储用户的中请注册、增加、修改等功能。
服务层:服务层是用户使用网资源的一个窗口,主要包括四个模块。
(1)用户读写模块:用户登录到存储系统后,将所在节点名、主机IP地址、需要上传/下载的文件名称等基本信息报告给网格中心,并实现读写文件操作。
(2)资源调度和分配模块:资源调度的目标是当用户通过接口提出任务请求时,尽可能高效及时地在分布式存储系统中找到合理的资源。
(3)资源定位模块:主要功能是给定一个资源的描述,资源定位部件返回一个或者多个满足该描述的资源的位置。
(4)资源更新模块:当用户进行读写操作或当存储节点加入或离开时,需要对系统进行更新。文中具体表现在对全局目录索引及活动节点列表更新机制的研究上。
资源层:由地理分布的具有存储空间的主机即系统节点以及连接它们之间的底层网络构成。将社会中人们喜好的就近原则应用到系统设计中,系统将存储节点根据地理位置划分为不同域。
自组织结构采用自组织和自管理形式,包括自我配置、自我优化、自我防护、自我治愈等。本系统采取混合组织结构[2]。节点组织结构如图2所示。
图2网格服务环境下存储节点组织结构
由于网格服务环境本身就是一个集中控制的平台,并不是像对等网络那样完全非集中控制。所以系统采用一种树和网相结合的混合拓扑结构。为了方便资源的创建与管理,系统中的各节点组成不同的域,中心节点和域内节点形成树状的逻辑结构,采用树的结构是模型中多域管理策略的前提;同时对于同一域内的不同节点用网形结构将它们相互连接起来,有利于同域节点之间相互查询,提高了它们之间数据传输读取的效率,减轻了中央节点的传输负担和查询负担,有利于系统的稳定性。
在系统中选择存储能力较强并且稳定性较高的小型机作为服务节点。服务节点的功能类似于集中目录式网络中的服务器,这些节点在系统中不会像普通节点一样随时可能退出系统。所有域内服务节点建立域内索引来管理本域内普通节点。域内所有控制权在域内服务器节点上。而普通节点会加入逻辑位置接近的服务节点所在的域中。任何普通节点不仅可自由的加入或退出一个域,而且普通节点之间可以相互访问。在网格中心建立全局索引,只管理所有服务器。这种组织机制具有如下一些优点:当节点加入或离开网络时,只需域内索引上加入或删除。同一域内的不同节点用网形结构将它们相互连接起来,会有较高的运行效率,与集中目录式模型中相比,单点失效带来的冲击也小了很多。同时,由于服务节点的存在,增加了数据访问的可靠性和效率。同时,由于中心节点的负载较轻,可以在一定程度上支持更多的资源信息查询。在这种结构下,单个域节点的失效并不影响其他节点的功能,具有较好的可靠性。
2.实现机制
2.1写过程
用户向系统写文件是指用户将本地磁盘中的文件上传到网格分布式系统系统的操作。当用户向全局空间写文件时,为了将文件分布式保存到网络各节点的存储设备上,需要利用副本进行存储,其基本步骤是:C用户选择要向系统上传的文件f,并使用SHA-1算法计算f的文件名;(2)查询活动节点列表,获得当前活动节点总数M;(3)选择一个或多个其他文件作为防作文件;(4)根据副本算法将原始文件复制成Na个副本,并计算副本文件和防作文件之间的XOR校验,得到Nm个校验文件;(5)将Na个数据副本和Nm个校验文件分别存储到N(N=Na+Nm)个节点主机中;(6)更新全局目录索引GDI。
当保存数据的N个节点中部分节点不在线或崩溃时,为了保证数据文件的可用性,我们采用如下冗余校验思想:在分布保存文件时,不仅保存文件副本,而且保存副本之间的校验文件。这样当部分副本不可用时,可以通过校验文件恢复数据。具体过程如图3所示。
图3写过程
2.2读取过程
用户从系统读取文件是指用户将文件数据下载到本地的操作。用户从全局空间读文件时,需从网格中各节点读出相应的副本,然后通过副本定位到原始文件。其基本步骤是:(1)通过文件名查询全局目录索引GDI,获得该文件的文件副本和校验文件的存储信息,得到文件存储节点表;(2)与活动节点列表进行比较,取交集得到可用的存储节点表;(3)从各存储节点读文件副本或校验文件;(4)
通过数据副本定位到原始文件。读取文件时,为了减少校验计算量,提高文件读的速度,采用尽量先读原始数据副本的策略,在原始数据副本无法找到的情况下,再读校验文件数据,利用XOR的逆运算是XOR的特性,通过XOR计算,得到完整的数据副本[3]。
2.3资源调度和分配
网格中心节点负责服务节点存储资源的调度与分配,而域内服务节点负责本域内普通节点存储资源的调度和分配。调度与分配采用局部优先策略。调度与分配过程如图4所示。
图4存储资源的调度与分配过程
图4中,用户A向域内服务节点C请求存储资源,过程如下:
(1)服务节点C首先搜索域内节点存储资源,是否存在一个存储节点的资源符合用户A的请求,如果存在这样节点(如:节点B),那么就将节点B信息通知用户A,然后用户A与节点B直接通信建立对等通信,用户A直接使用节点B的存储资源;服务节点A将调度消息传递给中心节点。
(2)如果域内没有符合用户A的资源请求的存储节点,那么域服务节点C再搜索自身存储资源。
(3)如果仍然没有足够资源,域服务节点C根据系统服务索引查找其他域内服务节点(如:服务节点D)。服务节点D搜索域内节点存储资源,是否存在一个存储节点的资源符合用户A的请求,如果存在这样节点,如节点E,那么服务节点D就将节点E信息通知服务节点C,节点C通知用户A。然后用户A与节点E直接通信建立对等通信,用户A直接使用节点E的存储资源服务,节点A将调度消息传递给中心节点。
若服务节点D所在域内没有节点满足用户A的请求,则继续查找其他域内服务节点。如此查询下去,如果最终没有找到符合该请求的资源,那么服务节点C通知用户A和网格中心节点的最终结果。
在资源调度和分配过程中,并未访问中心节点,只是到调度、分配结束后才传递消息给中心节点,这样大大减少了中心节点的负载。
2.4系统中的存储资源定位
在网格存储系统中,一个重要的功能就是资源定位:给定一个资源的描述,资源定位部件返回一个或者多个满足该描述的资源的位置。
当客户和存储节点在同一个域内,用户向系统发送存储定位请求,检测出同域内的存储对象A。用户和存储节点不在同一个域内,用户向所在域的服务节点C发送资源定位请求,服务节点C在其SSI中读取其它域内服务节点B,并对其发出请求,通过服务节点B对存储节点A进行定位[4]。
3系统测试
为了测试所设计的基于网格的分布式存储系统性能,本文按照图2的结构搭建网络环境,并进行文件传输性能测试。
用户向系统写文件是指用户将自己本地磁盘中的文件上传到网格分布式系统系统的操作。用户从系统读取文件是指用户将文件数据下载到本地的操作。在测试中,在三个网段中各配置了一台服务器,通过此服务器的路由延迟转发功能实现计算机间的网络通信模拟。测试使用的数据集是100个不同大小、类型的文件,并将这些文件根据文件尺寸的大小大致分为8类:128KB,512KB,2MB,8MB, 32MB,128MB,256MB和512MB。
首先,对实验所采用的100个存储节点进行网络测试,并分别上传/下载这些不同大小的文件,记录每个文件的上传/下载时间。在存储节点A上再用FTP方式上传/下载这些文件,并记录每个文件的上传/下载时间。
写性能测试结果如图4所示。从图4可以看出:在文件较小时,网格分布式系统和FTP写性能相当,当文件较大时,网格分布式系统写性能高于FTP。根据对网格分布式系统写文件过程的描述可知,节点可以同时从多个副本处并行下载数据,大大提高了下载速度。
文件大小
图4 网格分布式系统与FTP写文件的性能比较
读性能测试结果如图5所示。从图5可以看出:文件较小时,网格分布式系统和FTP读性能相当,随着文件的增大,网格分布式系统表现出比FTP优异的读性能。
文件大小
图5网格分布式系统与FTP读文件的性能比较
通过测试结果可以看出本系统文件传输性能比FTP要高,并且文件越大,读写性能增幅越大。
4.结束语
网格存储是一个新兴的研究领域,要真正实现一个稳定、安全、高效的基于网格的分布式存储系统,还有很长的路要走,还有许多问题需要探讨和解决,需要继续努力、反复地实验和不断地完善现有的理论和技术。
参考文献:
[1]颜海兴,郭放,唐鹤权.网络存储系统在校园网上的应用[J].东华大学学报,2004. 30(6):116-119
[2]魏青松,卢显良,雷宇.FTDSS:高容错分布式共享存储机制[J].计算机科学,2003.30(8):172-175
[3]闫晓东,徐惠民.一种可扩展的分布式副本定位方法[J].北京邮电大学学报,2005.28(3):46-48
[4]章伟辉,方赵林,王万良.校园网络存储系统的研究[J].浙江工业大学学报.2005.33(5):529-533