网站大量收购独家精品文档,联系QQ:2885784924

一种多客户端访问共享文件缓存一致性策略.docxVIP

一种多客户端访问共享文件缓存一致性策略.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种多客户端访问共享文件缓存一致性策略 0 基于对象存储的文件存储 目前,主机类型的计算已从传统的主机方式转变为网络收集的模式。在传统的基于主机的存储结构中,网络存储已成为研究的重点。针对集群对存储系统高性能及文件共享等需求,一种新的存储架构——基于对象存储的文件系统被广泛研究及应用,它以对象作为数据存储管理的基本单位,采用缓存技术来提高文件系统的性能,利用程序访问局部性原理,将最近访问的文件数据保存在客户端缓存中,下次访问相同的文件数据时则不需要再次与文件服务器建立连接访问低速的磁盘,直接从缓存中得到,从而获得较高的I/O性能。然而缓存机制的引入使得数据一致性问题更加突出,如何解决缓存与主本数据一致性,并保证文件系统的性能,具有一定的现实意义。 1 挖掘客户处理机制 1.1 系统存储机制 作为首个开源的基于对象存储设备的分布式并行文件系统,Lustre已经被广泛的应用到商业与科学研究的各个领域。它采用高度模块化的结构设计,使用客户端(Client)通过与元数据服务器(MetaData server,MDS)以及对象存储目标器(object storage target,OST)结合在一起运行,客户端向用户提供一个目录树结构,同OST进行文件数据的交互,同MDS进行元数据的交互。OST主要负责实际数据的存储,处理所有客户端和物理存储之间的交互。MDS则主要负责提供元数据和负载均衡服务。 文件系统的缓存机制是一种尽量减少文件系统访问磁盘次数、以获取较高I/O性能的机制,并遵循计算机系统设计的最广泛的原则——加快经常性事件,基本思想是将应用程序所需的文件在首次访问时由低速磁盘保存到缓存中,以便之后的访问就可以直接从高速缓存中读取,从而大幅度提高读操作的性能。 与本地文件系统把数据存储在本地磁盘不同,Lustre文件系统最终把文件存储在远端存储对象目标器上,其文件检索层次也与本地文件系统不同,客户端、对象存储目标器和元数据服务器构成了Lustre文件系统的三级检索和存储层次,客户端把首次访问的文件对象保存在自己的高速缓存中,尽量减少与服务器的交互次数,从而降低网络开销。 1.2 文件并行并发控制 客户端缓存机制的引入,不仅可以减少对共享资源的访问冲突,而且可以有效的减少与服务器交互的次数,降低访问延迟,从本质上来说,客户端缓存就是存储对象设备上文件的一个副本。Lustre文件系统对于多个客户端同时对同一文件进行访问时通过使用分布式锁管理器(Lustre distributed lock manager,LDLM)进行并发控制,从而保证了文件一致性。但当同一文件数据在多个客户端进行了缓存之后,其中某个客户端修改了自己的缓存数据并将其写回到服务器,此时Lustre采用一种懒散(lazy)算法,并不会将此文件的更新立即刷新到其它客户端,而是在其它客户端进行文件访问时通过锁冲突检测和元数据信息比对等方式进行访问时刷新(update_on_access)来保证缓存数据与服务器上主本数据的一致性,这种算法在大规模数据访问时,特别是针对密集型的共享资源访问的情况会带来很大的网络吞吐量和更新延迟。 2 祝福客户端的缓冲液分析 目前主流的基于对象存储的分布式文件系统常用的缓存更新策略主要有两种: (1) mds与客户端缓存数据的同步 基于对象存储的文件系统中,元数据服务器MDS一个很重要的功能就是管理文件到对象的映射。由元数据服务器发起的更新策略可以通过在inode结构添加扩展段obj id x,ost p,记录每一个对象和其所在的OST对应的布局属性信息。在这个扩展信息的基础上由MDS增加一个数据结构,obj-client表,每次有新的客户端进行文件访问并缓存了对象数据时,MDS都会将对应的信息记录在该表中,直到客户端缓存被替换或者失效时再将相关的记录进行移除或更新。MDS与客户端缓存管理器保持着联系,一旦OST上的文件主本数据发生改变,那么MDS就通过inode的扩展信息和obj-client表找到所有缓存了该对象的客户端,并通知相应的客户端缓存管理器进行缓存数据的更新,如图1所示。这种策略虽然可以保证缓存数据与主本数据的一致性,但因部分客户端缓存的数据可能在相当长的一段时间内并不会被再次用到,而这种同步更新过程又需要占用大量的网络资源,造成资源的浪费;另外为维护缓存一致性而新增加的数据结构表及维护也增加了MDS的开销,所以目前来说几乎很少有文件系统采用。 (2) 种长产板更新后的深度待时数据的读取 当OST上的文件主本数据发生改变后,客户端并不立即更新其缓存,而是采用一种懒散(lazy)算法,即在客户端进行文件读取操作时,再根据MDS中文件元数据信息,进行修改时间等信息的比对,发现不一致,首先将缓存数据标志位置无效,再与相应的OST进行交互,

文档评论(0)

134****3501 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档