版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LI NUX下分布式文件系统的设计与实现周涛邱元杰何进(电子科技大学8010研究室四川成都610054【摘要】本文讨论了分布式文件系统在Linux下的设计、实现和应用的情况,主要讨论全局目录的维护和副本管理。首先介绍了系统设计的目标,接着说明了其中的关键问题,然后给出系统的结构,最后,介绍了在视频点播系统中的应用情况。【关键词】分布式文件系统全局目录主本副本管理1引言网络不断扩展、普通计算机性价比不断提高和对可靠性的不断追求促进了分布式系统的不断前进。作为分布式操作系统12的一部分,分布式文件系统也在发展。然而,作为主流服务器的Unix系统,却没有很好的分布式文件系统。Unix系统下的网络文件
2、系统(NFS,Network File System被许多管理员熟悉并使用。但是它需要管理员过多的干预,如远程文件系统的安装、卸载,目录手工维护等3。这样不仅麻烦,而且给系统的可靠性带来影响。因此,自动形成统一的全局目录成为我们考虑的一部分。系统中总有一些文件会被频繁的使用。例如:视频服务器系统中的电影文件,通常是20%的文件提供了80%的服务。如果手工维护这些电影文件在各台服务器上的分布,则很难达到好的效果。一种改进办法就是由操作系统自动的管理文件的副本,从而简化应用对文件的管理。现在的NFS系统显然不能提供这样的功能。在一个分布式文件系统及多缓存一致性策略4一文中详细的说明了通过修改虚拟文
3、件系统(VFS实现分布式访问功能的过程。这个方法复杂,而其与NFS有重复的嫌疑,也没有考虑副本管理问题。因此,在Linux下,DPFS系统利用NFS形成全局目录,而重点是实现副本管理。在Linux下实现的分布式文件系统主要针对视频点播,同时也考虑了其他应用的需要。现在这个系统在分布式视频点播系统中得到很好的应用。下面主要介绍分布式文件系统的设计、实现和应用情况。2设计的目标首先要实现的功能是:自动形成系统全局目录,并能动态的修改全局目录以表现系统当前的情况。例如,有新的节点(服务器系统中的一台主机加入,则应当增加新输出的目录,并使所有节点上的全局目录一致。同时,考虑有节点出现故障时,则应当屏蔽
4、此故障,修改全局目录并让系统可以正常运行。然后要实现的是副本管理。为了简化实现,现在没有考虑副本带来的一致性更新问题,这个问题将在下次实现。同时,将建立和删除副本的发起工作交给外部应用程序处理。系统提供建立副本,删除副本和查找副本信息三个系统调用,同时实现打开文件时的重定向功能。要实现这两个功能,需要考虑一些关键的问题,下面首先说明这些问题。3几个关键的问题3.1全局目录全局目录的结构直接关系到许多问题,如安装次序,出现故障的恢复,文件名解析等,因此对它的选择需要慎重。树型目录结构和平行目录结构是两种可行的选择。自由的树型结构是最终的追求目标,它可以极大的方便管理。但是实现复杂,可靠性难于保证
5、。例如:有中层安装目录出现故障,下层目录如果要可用则需要采取许多非常规的手段,这些手段形成了更多的故障隐患。在一种局域网分布式文件系统的设计与实现5中说明了树型目录的实现情况,可做参考。平行目录结构的想法是将所有被输出的目录平行的安装在全局目录下。这样的好处是简化了故障处理。例如,某节点出现故障,则只需要删除此节点的安装点即可。平行目录结构同样也简化了全局目录的形成,而最主要的考虑是可靠性,简单的系统出现故障的可能更小。系统的全局目录结构可以用图1说明。con f目录用于安装各节点上分布式文件系统需要的配置文件的目录。dpfs是为输出共享(即主本存放安排的,每个节点输出所有主机的主本目录以便于
6、访问。rep是为输出副本存放安排的,各节点存放副本的目录也输出以便于访问。/.lrep是本地副本目录,即存放别的主机在本节点创建的副本目录/文件,其他主机输出目录的安装点也将平行的安装在/.remote目录下 。图1:server1上的全局目录结构3.2副本管理的关键问题出于上面对副本管理功能的设想,有几个需要考虑的问题。它们是:主本与各副本信息存放及一致性问题,读重定向,副本信息的组织和访问。下面分别说明这些问题的解决办法。注意,如果没有特别地区分,实际上副本管理广义上也包括对主本目录/文件的管理,副本信息也包括主本的信息。显然,每个节点都要经常地访问副本信息,而副本管理完全依赖于副本信息,
7、因此,副本信息的可靠性非常重要。显而易见,存放在单一的节点上是不明智的,采取的策略是在每个节点上保存一份副本信息。副本信息不可能只放在内存内,因为系统可能完全崩溃。将其放在文件内是必要的。而且应当放在所有节点都可以访问到,并且易于访问的地方。因此将副本信息放在每个节点的/.con f文件内。然后将/.con f目录输出并安装在全局目录/ con f下(见上面的全局目录说明。由于每个节点上都有副本信息,因此保证它们的一致性是必要的。解决的办法是采用类似于两阶段协商的协商协议6。两阶段协商协议被分布式数据库采用来保证数据更新的一致性。这里将每个副本信息修改操作分为两步完成,即协商和修改。流程是:1
8、要操作的节点向其他节点发送修改请求。2其他节点检查是否在做修改操作或版本是否一致,如果可以操作则向请求节点发送许可应答,否则拒绝。3操作节点在收集到所有应答后判断允许操作的节点数,342005年第1期福建电脑如果大于半数转4,否则随机后退,重新请求,转1。4向其他节点发送操作命令。5自己完成操作,等待其他节点完成操作后应答。6其他节点进行操作,完成后应答成功与否。7发起节点查看是否都正常完成操作,如果少于总节点数的半数失败,则操作成功,否则报告失败,进行一致性更正操作。影响副本信息组织的因素是数据的格式和查找的需要。由于副本信息需要登记变长的文件名,因此不可能采用固定长度的数组格式,可行的是采
9、用链表方式。为了加快查找速度,还引进了hash 处理。副本信息在文件里的组织情况可用图2表示。可以看到,信息之间依靠指针连接起来以表明相互之间的关系。这种方式的缺点是读取有点不方便。但是优点是明显的:大大简化了副本的增加,删除和查找。当增加副本信息时只需要将信息写在文件尾并链入链表中即可。删除时则只需从链表中断开即可。查找则在hash 处理后顺链查找即可。可以估算出,在有副本(包括主本的正规文件数小于1024时,大多数是可以直接找到的,因此速度快。同时,为了加快查找的速度,还采用了缓存信息的方式。最近读入的副本信息总是保存在缓冲区内,再访问时则不需要到副本信息文件中读取。缓冲区也按照hash
10、方式组织,只是项数只有64项,也不形成hash 链表(减少复杂度。实际证明,缓冲区可以有效的加快查找速度 。图2副本文件的信息组织格式读重定向是体现副本管理(也包括对主本的管理优势的关键,其目的是:在读其他节点上的文件时,如果本节点上有副本则直接从副本中读取,从而减少网络传送的开销,也分担文件访问的负载。例如:在主机server1下有一文件/mnt/share/file1.mp4通过文件系统将其输出到/dpfs/server1/file1.mp4。假如该文件在server3,server5上有副本,即在这两台主机下均有/.lrep/server1/file1.mp4,表明server1是fil
11、e1.mp4的主本机,这样,两主机分别输出为/rep/server3/server1/file1.mp4和/rep/server 5/server1/file1.mp4。那么,除开这三台机之外比如server6如何读取file1.mp4呢?事实上,server6通过网络文件系统(比如NFS 将server1:/mnt/share 安装到本机/.remote/dpfs/server1下,接着输出到本机的/dpfs/server1下;同样,server6将server3:/.lrep 和server5:/.lrep 分别安装到本机/.remote/rep/server3/server1和/.rem
12、ote/rep/server5/server1下,接着分别输出到本机的/rep/server3/server1和/rep/serv 2er5/server1下,这样,在server6上可以同时访问file1.mp4的主本和两个副本。为实现此功能,必须截获系统的文件调用,并修改它。现在采取的方式是修改open -namei 函数。这个函数在打开文件时用来获得文件的入口(dentry 信息,以后的操作只使用这个入口。因此,只要修改此函数,使其返回副本文件的入口信息,则以后读取的也是副本文件。为了使系统在不装载模块时仍然按原来方式运行,采用了修改系统符号输出表的方式。办法是:首先在系统符号输出表里将
13、open -namei 输出。然后在模块内实现新的open -namei 函数,用此函数替换原来的函数即可。4 系统结构图3副本管理的模块结构按照上面的描述,系统由两部分组成。一部分是全局目录的维护,它作为一个单独的程序运行,负责在启动时形成需要的全局目录,在新节点加入时更新全局目录,在出现故障时屏蔽故障等;同时也负责系统内节点信息的维护,这些信息将提供给副本管理部分使用。另一部分是副本管理,它必须在内核实现,因此作为一个模块装载。副本管理模块实现上面描述的副本管理功能,因此又分为信息文件管理、缓冲区管理、一致性协商、读重定向和系统调用五个部分。图3说明了它们的关系。上层都是直接提供外部使用的
14、。显然,所有的查询都通过缓冲区管理,以便加快查找,如果没有找到再由缓冲区管理负责从文件中查找并读入。而修改部分则首先通过节点间的一致性协商。然后直接修改缓冲区和信息文件。这样可以保证一致性并且避免出现错误的查询结果。通过上面的方式。可以实现分布式文件系统的两个基本功能全局目录维护和副本管理。这个系统在新开发的分布式视频点播系统(DVOD 中的得到了很好的应用。5结束语视频点播系统需要保存大量的电影文件,提供大量的服务,一台计算机是难于实现的,将多台计算机作为一个系统才能有效地工作。通过对分布式视频点播系统的运行测试,表明文件系统完成了预期的目的。它简化了DVOD 系统的设计和实现,并且通过对副
15、本分布的调整,有效的平衡了各服务器间的负载。现在看来,分布式文件系统对于象VOD 这样的应用能很好的支持。但是,由于这次设计没有考虑副本文件与主本的一致性问题,因而对于频繁修改文件的应用并不适用,下一步将增加这部分,从而完善副本管理。另外,如何平衡负载,如何选择在一台轻负载且有足够磁盘空间的主机上创建副本,这属于分布式调度的范畴,另文叙述。参考文献1operating systems internals and design principles William Stallings 清华大学出版社,Prentice Hall 1998年6月2Distributed Operating Systems 。Andrew S.Tanenbaum 清华大学出版社,Prentice Hall 1997年2月3基于Unix 的几种网络文件系统的对比与分析王建勇计算机与通信<1997.05>1997年5月4一个分布式文件系统及多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公墓销售工作制度
- 校园反诈骗工作制度
- 汛期水情预报工作制度
- 澳洲工地工资工作制度
- 班主任辅导员工作制度
- 消化质控中心工作制度
- 编办调查研究工作制度
- 考核鉴定机构工作制度
- 职业危害防治工作制度
- 职工宿舍门卫工作制度
- 一年级数学10以内加减法计算专项练习题(每日一练共17份)
- 2026四川宽窄优品商贸有限责任公司招聘(3月)笔试参考题库及答案解析
- 2026北京昌平区事业单位招聘156人笔试参考题库及答案解析
- 2026年青岛高三下学期一模物理试题和参考答案
- 2026年中考语文高效复习策略与核心考点突破
- 2025-2030中国DPU智能网卡行业市场发展分析及产能产量研究报告
- 2026年春季统编版(部编版)2024新教材二年级下册道德与法治教学计划、教学设计及教学反思(附目录)
- CT安全防护课件
- DG-TJ08-2244-2025 既有建筑改造项目节能量核定标准
- 2026年学校意识形态工作实施方案3篇
- 实验诊断学第十章肾脏疾病实验室诊断
评论
0/150
提交评论