基于网络分布式文件系统设计与实现路径
2020-06-30白祎花
白祎花
摘 要: 设计了一款网络分布式文件系统。该系统基于软件定义网络,通过充分应用其底层网络动态数据资源完成实时数据传输最佳路径的获取,使分布式文件系统的性能通过有效导引分布式文件系统中的大数据流而得以显著提高。通过构建的分布式文件系统原型对文件读写及修复操作进行测试,同传统网络环境相比,基于软件定义网络环境的分布式文件系统的读写及修复能力均得以显著提升,更适用于网络数据流量大且异构明显的情况。
关键词: 分布式文件系统; 软件定义网络; 实现路径
中图分类号: TP 316.4 文献标志码: A
Design and Implementation Path of Distributed File System Based on Network
BAI Yihua
(School of Administration, Shanxi Technical College of Finance & Economics, Xianyang, Shanxi 712000, China)
Abstract:
This paper mainly designs a network distributed file system. The system is based on the software-defined network. By fully applying the underlying network dynamic data resources to complete the acquisition of the best path for real-time data transmission, the performance of the distributed file system is effectively guided. The large data stream in the distributed file system is significantly improved. The file read and write and repair operations are tested by the built-in distributed file system prototype. Compared with the traditional network environment, the read/write and repair capabilities of the distributed file system based on the software-defined network environment are significantly improved, and are more suitable for the network. The case where the data traffic is large and the heterogeneity is obvious.
Key words:
distributed file system; software-defined network; implementation path
0 引言
快速發展的移动互联网带来了网络数据量的爆炸式增长,在复杂庞大的数据中通常隐藏着巨大的潜在价值,需采用技术手段收集、分析、挖掘和处理以获取有价值的信息,传统的超级计算机已经难以满足处理海量数据的需求,增加了处理的时间和经济成本还,上层用户需求对网络架构提出了更高的要求,在多个设备上存储数据可有效解决这些问题,随着新型技术的普及应用(包括云计算、虚拟化等)网络中协议复杂程度不断提高,对网络服务质量的要求随着不断提高。
1 现状分析
提高底层网络的智能程度以迅速感知并适应上层应用的变化,是提升应用性能及用户体验的有效手段,因此如何高效的管理分布式的存储设备成为急需解决的问题,构建分布式文件系统使各存储设备协同工作并将良好的数据访问性能提供给用户成为研究的重点。通过了解和控制底层网络状况并在此基础上对其核心操作算法进行改进是提升DFS性能的有效手段,将 SDN应用于数据中心网络中的研究较多,例如,对基于流的网络监控在OpenFlow网络中的实现路径的研究(包括吞吐率、延迟和数据包丢失等),实现细粒度的数据中心流量工程的建立;Google B4作为首个在实际系统中应用软件定义网络,对在全球数据中心传输和备份数据及其对WAN 范围流量工程的要求进行了研究,并设计了基于SDN的负载均衡方案以便提供更好的云服务[1]。将网络资源服务(可配置)利用软件定义网络提供给用户,获取实时网络情况为大数据应用创造有利条件。本文完成了基于软件定义网络环境的分布式文件系统原型的构建,采用弹性树修复(FTR)算法,针对异构的存储节点基于网络编码思想对实际存储环境异构性(包括数据存储量和可用带宽等)作为重点考虑。
2 系统设计
2.1 软件定义网络和分布式文件系统的连接
软件定义网络能够高度抽象和解耦网络(包括设备控制层、数据转发层等),结合高度虚拟化的网络硬件,实现对整个网络通过软件编程重新定义,能够获取动态的网络变化信息,有效弥补了传统网络的不足,提高了网络的智能性和灵活性,SDN可实时监控和管理网络资源,将具有参考价值的信息提供给上层应用,根据上层应用要求实时配置网络资源。由网络文件系统发展而来的分布式文件系统(DFS)属于网络资源密集型应用,具备强大的数据存储能力及可扩展性,分布式文件系统通常由多个存储节点、一个以上的控制节点及运行软件构成,整个数据中心受到分布式文件系统性能的直接影响。SDN的接口结构同DFS均采用C/S架构与集中控制易于结合使用,SDN具备底层网络通信及自定义数据流向(以上层业务逻辑为依据)功能。DFS的节点同SDN网络通过OpenFlow(SDN网络的南向接口协议)交换机互连,由SDN Controller控制DFS产生的数据流量,OpenFlow交换机以流表(由多条由匹配字段及转发操作构成的流表项按优先级排列组成)作为核心,在设计Controller和DFS的NameNode这两个中央控制的节点时采用了结合式和分离式,结合式在同一逻辑节点上实现2个中心控制节点(作为不同的进程),信息交换以进程间通信的方式完成,然后通过分离式在两个逻辑节点上实现将2个中心控制节点(位于不同的实体机)[2]。
2.2 SDN在分布式文件系统中的应用
通过SDN 网络对上层应用进行及时感知和反馈以优化系统的性能,在SDN Controller通过一组 API即中间件(Middleware)实现对DFSNameNode的调用,包括底层网络信息的获取及按照指定路径发送数据等,如图1所示[3]。
本文的设计特点在于:(1)在后台基于 SDN Controller对动态更新的拓扑流图(底层网络,包括连接信息、各节点信息、节点间的最短路径信息等)进行维护,以便真实反映出底层网络的变化情况,每次查询可在常数时间内给出答复,同时提供相应的API访问DFS;(2)OpenFlow协议中存在包括id及priority字段在内的VLAN标志,可实现包括传统网络隔离在内的多种功能,通过匹配这2个字段对特定的流表项进行指定,实现在保证已有网络功能的基础上特定流量按指定路径的传输过程;(3)在分布式文件系统插入流表有超时机制,需通过计算估计超时时间,从节点A、B简的路径经过交换机即会下发对应流表,通过本次传输时间和会话保护时间相加得到各流表项的超时时间;(4)本文分布式文件系统中包含控制流(包括指令交互流和元数据信息交换流,流量小而持续)和数据流(流量大而集中),在本文的系统中只对优化路径在数据流传输前进行计算并下发流表;(5)本文设计包括提供控制流的通信功能的传统基于IP 路由、提供系统数据流通信功能的基于SDN的智能路由两种路由策略[4]。
2.3 系统架構设计
本文所设计的分布式文件系统的整体架构,如图2所示。
SDN网络结构位于中间层,其主要功能在于底层网络数据的传输;围绕中间层部署的是DFS的各种角色节点,客户端(Client)和数据节点(DN,以Rack为单位部署)通过OpenFlow交换机实现互连,各DataNode(位于DFS中)在数据中心中均同ToR交换机连接,若各交换机均支持OpenFlow协议则DFS中的网络流量能够运行于SDN网络中,即可实现监控和管理等优化效果,本文在同一台服务器上实现NameNode(命名空间)和Controlle(控制点)的整合即ControlNode(控制节点)[5]。
3 网络分布式文件系统主要功能的实现
(1) 读文件操作
在 SDN 网络上完成全部网络通信过程,文件读写的具体步骤为:首先由Client 将具体的一个读文件请求发送至ControlNode,并由其负责对该文件信息进行查询完成数据传输的起始和目的节点的确定,在此基础上完成最佳路径的计算及流表的下发,实现路径的部署;接下来ControlNode将处理完的需读取文件的信息返回给用户Client,提示文件可开始读取;然后Client将数据传输请求发送给目标 DataNode ,DataNode完成处理后将数据返回给Client ,以刚建立的路径作为其数据传输路径;接收到数据后Client对其进行解码、校验后将读取成功标志返回至ControlNode,ControlNode据此将本次建立的路径删除[6]。
(2) 写文件操作
结合SDN 的文件上传功能,写文件的具体步骤为:ControlNode在接收到由Client发送的写文件请求后,据此完成目标存储节点的确定及用户同目标节点间最佳路径的计算,并向交换机下发流表;接下来Client会接收到ControlNode返回的成功准备路径标志,并在此基础上完成同目标存储节点间连接的建立以有效满足数据传输需求;数据中心中接收到Client数据传输的首个存储节点后,接下来通过Pipeline形式的运用完成数据到其他节点的传输过程;ControlNode在接收到成功写数据标志后(由目标存储节点返回)对新添加的流表项进行删除操作[7]。
(3) 文件修复操作
本文文件系统采用了FTR 算法对文件进行修复,文件修复的具体步骤为:完成一条修复任务的读取后(位于修复队列中),修复的目标节点(newcomer)的选择及数据提供节点的确定均通过 ControlNode完成从而计算出最佳路径并下发流表,在此基础上完成对数据传输路径的部署;参与修复的各节点会接收到来自ControlNode的开始修复消息,据此完成实际的数据传输和计算过程;最终ControlNode会接收到来自Newcomer的修复完成消息,然后对建立的路径进行删除操作[8]。
4 系统测试及结果分析
4.1 实验设计
为了测试本文所设计的分布式文件系统的有效性,通过一个系统原型的建立与实现,客户端和数据存储节点采用PC四台(搭载Ubuntu系统),具体配置如表1所示。
系统主要由ControlNode(包括Floodlight Controller和NameNode)、SDN网络、DataNode部分及Client构成,网络的动态拓扑流图位于对底层OpenFlow交换机起到控制作用的Controller节点上,SDN网络使用轻量级的网络仿真平台Mininet(含有强大的API,支持OpenFlow协议)搭建实现虚拟较为真实的网络环境,Mininet的VM使用PC运行。将文件的读、写、修复(FTR 算法)操作作为主要测试对象完成实验[9]。
4.2 实验结果分析
测试文件读写时,基于IP的路由只以链路连接信息为依据计算最短路径路由,基于可用带宽的路由的最短路径根据链路上带宽的权值计算。带宽随机分布于指定范围,多次测量文件取平均值,针对带宽差异性的测试结果,如图3所示。
每隔十秒微小改动网络的带宽,多次测量大小相同的文件取平均值,采集拓扑信息频率对文件读写的影响情况如图4所示。
测试文件修复时,针对不同的参数对比了FTR 算法和 STAR算法,如图5所示,证明了FTR算法更适用于SDN提供的网络数据[10]。
实验结果表明使用SDN提供的底层网络数据使分布式文件系统的读写性能得以显著提高,计算最短路径和下发流表所需时间对系统不产生影响的同时提高了系统效率,每次只需查询和少量的计算,文件修复的测试对比结果表明在网络环境异构情况下使用FTR算法可显著较少数据修复时间,证明了基于SDN的分布式文件系统的处理效率得以显著提升,能够达到控制整个网络的目的。
5 总结
传统分布式文件系统对底层网络考虑不足,降低了其读写性能及文件修复性能,本文通过设计分布式文件系统原型有效实现了读/写文件和文件修复的基本操作功能,以SDN
的底层网络信息为依据优化算法使系统性能得以显著提升,实验测试结果表明基于软件定义网络环境的分布式文件系统的读写及修复能力均得以显著提升,具有较高的实际应用价值。
参考文献
[1] 林朝炽.基于Elastic Stack的分布式数据采集与分析平台探索[J].网络安全技术与应用,2019(2):378-379.
[2] 陈付梅,韩德志,毕坤,等.大数据环境下的分布式数据流处理关键技术探析[J].计算机应用,2017(3):620-627.
[3] Sun Lili, Yang Yang, Xiong Zenggang, et al. Intelligent Block Placement Strategy in Heterogeneous Hadoop Clusters[J]. Journal of Convergence Information Technology, 2013(8):1142-1150.
[4] S R Balasundaram, S Vengadeswaran. An Optimal Data Placement Strategy for Improving System Performance of Massive Data Applications Using Graph Clustering[J].International Journal of Ambient Computing and Intelligence, 2018, 9(3):15-30.
[5] Xiong Fu, Wenjie Liu, Yeliang Cang, et al. Optimized Data Replication for Small Files in Cloud Storage Systems[J]. Mathematical Problems in Engineering, 2016(8):837-894.
[6] 劉泽华,赵文琦,张楠.基于Scrapy技术的分布式爬虫的设计与优化[J]. 信息技术与信息化, 2018(Z1):121-126.
[7] 徐时芳,罗晓宾,陈阳华.基于Spark的分布式大数据分析建模系统的设计与实现[J].现代电子技术,2018(20):172-175.
[8] 廖先富,刘俊男.基于Django与HDFS的分布式三维模型文件数据库构建[J].电子技术与软件工程,2018(18):189-191.
[9] 邹振宇,郑烇,王嵩,等.基于HDFS的云存储系统小文件优化方案[J]. 计算机工程, 2016(3):34-40.
[10] 袁丽娜.HDFS数据副本均衡放置策略的改进[J]. 计算机科学, 2017(S2):397-400.
(收稿日期: 2019.07.10)