



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种分布式文件系统的设计和实现 程炜烨(华中科技大学 计算机学院 湖北武汉 430074)摘要:分布式文件系统在集群存储中起着重要的作用,。本文详细介绍了一种分布式文件系统的设计和实现,着重叙述了统一名字空间的设计和Linux下客户端文件系统的实现。该分布式文件系统的读写性能比网上邻居有明显的优势。关键词:集群存储;统一名字空间;超级块;目录项;索引节点The design and implement of a distribute file systemCHENG Weiye (School of Computer Science, Huazhong University of Science and Technology, Wuhan 430074, China)Abstract: Distribute file system plays an important role in cluster storage. The design and implement of the distribute file system is discussed in detail, especially the design of global name space and the implement of file system in Linux.Key words: cluster storage; global name space; super block; directory entry; index node1 引言为了满足文件存储的新的要求(大容量、高可靠性、高可用性、高性能、动态可扩展性、易维护性),设计一种好的分布式文件系统越来越成为需要。分布式文件系统使得分布在多个节点上的文件如同位于网络上的一个位置便于动态扩展和维护。由于分布式文件系统中的数据可能来自很多不同的节点,它所管理的数据也可能存储在不同的节点上,这使得分布式文件系统中有很多设计和实现与本地文件系统存在巨大的差别。下面主要讲述分布式文件系统设计和实现中所要面对和解决的主要问题Error! Reference source not found.。2 软件总体结构设计一个好的分布式文件系统是集群存储的关键。我们设计的分布式文件系统通过统一名字空间管理使得分布在多个服务器上的文件如同位于网络上的一个位置便于动态扩展和维护。我们把整个系统主要划分客户端与服务器端两部分。客户端包括MVFS文件系统,CC模块(Client Cache),CNS模块(Client Name Space),CN模块(Client Network)。服务器端包括SC模块(Server Cache),SNS模块(Server Name Space),SN模块(Server Network)。应用程序的I/O请求首先送给MVFS文件系统,MVFS文件系统根据文件句柄获得本文件系统的全局文件名并把对文件的访问转换为对CC的访问。CC 收到请求之后,如果在Cache中没有发现对应的数据,则将请求发给CNS层,CNS层根据全局文件名获得该文件所在的服务器。最终通过CN层将命令发给服务器。服务器端SN层通过网络接待命令后,将命令传递给SNS层负责将全局文件名转化成本地的文件名,然后到SC层去查找,如果在Cache中找不到,最终会通过本地的文件系统完成对应的I/O 请求。整个系统的总体结构如图1所示。在服务器端还有一个全局管理程序(心跳协议程序)。通过该心跳协议程序,所有的存储节点的所共享出来的文件构成了整个文件系统的单一的全局逻辑树,从而可以让客户端见到唯一确定的全局逻辑树。图1 总体结构图3关键技术31 统一名字空间的设计与实现统一名字空间是指服务器上的每一个目录和文件在我们的文件系统中都有一个统一的,唯一的名字。要实现统一名字空间就必须将服务器上的本地局部路径与文件系统中的全局路径一一对应,所以我们在每一个服务器上都存放了一个本地配置文件来记录这个映射关系,每个服务器应该根据所有服务器的本地配置文件而形成一个全局配置文件。本地配置文件的第一行主要记录其版本号。后面的每一行是一条记录,主要包括共享的全局路径(客户端看到的文件或目录名)及物理路径(服务器上存放的文件或目录名)。而全局配置文件的第一行主要记录其版本号,服务器个数及每个服务器的IP,后面的每一行是一条记录,与本地配置文件的记录相识,只是多了一个服务器IP的信息当服务器启动后,首先根据自己的本地配置文件生成一个全局配置文件,然后广播自己的本地配置文件。当服务器接收到其他服务器的本地配置文件后,会根据这个本地配置文件修改全局配置文件。当全局配置文件中不包括该服务器的信息即第一行没有该服务器的IP,我们将全局配置文件的版本号改为两个配置文件中版本号的稍大者,并修改服务器个数,添加服务器的IP及对应的记录。如果全局配置文件中已包括该服务器的信息且全局配置文件的版本号大则不用修改,否则将全局配置文件的版本号修改成接收文件的版本号,并修改服务器个数,添加服务器的IP及对应的记录。当修改了某个服务器的信息后,我们应该将本地配置文件的版本号修改为全局配置文件的版本号加一,然后广播自己的本地配置文件。当获得一个全局配置文件后我们还应将其转化为一棵目录文件树使得在客户端对一个文件或目录的操作能够转换成对服务器上得操作。为了方便查找,我们将全局配置文件转化为一棵二叉树,以全局配置文件中记录的全局路径来建树。其中树的根节点代表者全局路径的根目录。树中节点的左儿子为其子目录,右儿子与其在同一级目录上。32 客户端文件系统的设计与实现文件系统应该提供一组服务,使用户能够处理数据,以执行所需要的操作,包括创建文件、删除文件、组织文件、读/写文件、控制文件的访问权限等。Linux通过VFS(虚拟文件系统)为各种文件系统提供统一的接口。VFS是内核中的一个软件层次,负责处理所有与文件系统有关的系统调用。我们通过像VFS注册了一种文件系统MVFS,使得用户的请求可以由我们提供的函数来处理Error! Reference source not found.。MVFS文件系统中主要包括超级块,目录项和索引节点。MVFS文件系统的总体结构如图所示。图2 MVFS文件系统的总体结构文件系统的超级块主要记录文件系统的数据块大小,存放文件系统设备的设备号以及该文件系统根目录的目录项的指针,在MVFS文件系统中,我们在超级块中还存放了要连接的服务器的IP和使用的用户名和密码。MVFS文件系统的目录项描述文件系统中与某个文件索引节点相链接的一个目录项(可以是文件,也可以是目录),同时通过链表记录了父目录与它下面的子目录和文件的关系。而索引节点记录了关于这个目录或文件的一些系统信息,比如文件的所有者,文件相关的一些权限记录,关于文件的若干个时间戳。要想访问服务器上的目录和文件,必须先挂载MVFS文件系统。当挂载MVFS文件系统时,我们的处理流程如图3所示。图3 MVFS挂载流程在初始化超级块,索引节点时,需要将它们的成员函数赋值。MVFS文件系统主要通过将一些函数如对目录的读取以及对文件的创建和读写与它的索引节点关联,使得以后对该目录或文件的操作都由这些函数来实现。其中对目录的读取方法如图所示:图3 目录的读取流程首先根据文件句柄获得对应的目录项结构,而目录项结构存放了对应的全局目录名,因此可以得到对应的全局目录名。当我们获得了该目录下的目录名或文件名后,可以调用VFS提供的回调函数filldir。VFS会为这些目录和文件分配目录项结构,并将它们链接起来Error! Reference source not found.。对于文件的读写,首先根据文件句柄获得对应的目录项结构,从目录项结构可以得到对应的全局文件名。然后以全局文件名,缓冲区,要读的大小,文件偏移为参数向CC层发出读或写文件命令。当CC层的函数返回时,要读或写的数据已在缓冲区里。4 性能测试我们在相同环境下,客户端和服务器均为P4 PC 平台,配置512MB 的DDR RAM,通过千兆网连接,分布采用我们的分布式文件系统和网上邻居,使用IOMETER对不同负载的读请求进行测试,具体的测试结果如图4所示。从图中可知,我们的分布式文件系统的读性能要比网上邻居好的多。图4网上邻居和分布式文件系统的读性能比较5 结束语本文详细介绍了分布式文件系统的设计和实现,着重论述了实现过程中采用的关键技术。随着对分布式文件系统的进一步开发,将会对系统的性能、扩展性、可用性等方面进行完善。参考文献1 Mary Baker, John Ousterhout, Availability in the Sprite Distributed File System, ACM Operating Systems Review,25(2), pages 95-98, April 1991.2 Roger Haskin, The Shark Continuous Media File Server, Proceedings of IEEE 1993 Spring COMPCON, San Fransisco, CA, Feb. 1993, pp. 12-17.3 Xiaohui Shen, Alok Choudhary, DPFS: A Distributed Parallel File System, Proceedings of the 2001 International Conference on Parallel Processing (ICPP01)4 John Wilkes, Richard Golding, Carl Staelin, and Tim Sullivan, “The HP AutoRAID hierarchical storage system”, Proceedings of the ACM Symposium on Operating Systems Principles, pp.96-108, December
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025下半年航空行业板块景气度持续提升从量变到质变
- 电子竞技赛事商业赞助趋势分析:2025年品牌合作策略洞察报告
- 2025年江苏省苏州市中考道德与法治试卷及答案
- 2025年生态修复工程中生态系统服务功能评估与生态系统服务政策优化研究
- 2025年生物制药行业生物制药质量控制与监管政策分析报告
- 跨境电商人才培养与企业核心竞争力提升研究报告
- 文化创意产业园2025年品牌塑造策略与产业集聚竞争力提升路径研究报告
- 消费与零售行业2025年趋势报告:线上线下融合下的创新策略
- 产科科室培训及管理制度
- 景区拓展物料管理制度
- 机械制造业智能化工厂规划与建设方案
- 《云南教育强省建设规划纲要(2024-2035年)》解读培训
- 人教版七年级数学上册练习题
- 河南三门峡2020-2021学年八下期末数学试题(原卷版)
- 沪教版(五四学制)(2024)六年级下册单词表+默写单
- 2025国培研修计划
- 等级医院评审材料-POCT质量管理手册
- 中华人民共和国科学技术普及法宣贯培训2024
- 财务风险隐患排查
- 金属加工安全操作规程制定
- 整本书阅读:《乡土中国》(考教衔接讲义)-2025年高考语文一轮复习(新教材新高考)
评论
0/150
提交评论