linux下联合文件系统的研究及性能分析

Linux下联合文件系统的研究及性能分析摘要:该文通过分析Linux下现有联合文件系统实现,提取其特征,给出了联合文件系统的定义。归纳总结出基于VFS和基于底层文件系统两种联合文件系统设计模型。对联合文件系统的不同实现进行了测试比较和性能分析。关键词:联合文件系统;虚拟文件系统;Unionmounts;Aufs;Unionfs;Unionfs-fuse中图分类号:TP316文献标识码:A文章编号:1009-3044(2013)36-8315-06Linux文件系统的用户视图是一个完整的层级冃录树(Hie口rchic&lDirectoryTree)・Linux通过虚拟文件系统(VFS,virtualfilesystemswitch)实现这种机制。VFS是一种面向对象的接口,具有多态性。上层系统调用可以通过这一虚拟接口驱动底层文件系统,包括各种磁盘文件系统和NFS。为了实现统一的名字空间,VFS隐藏了挂载节点下子目录树结构,替换以被挂载文件系统中的根冃录[1]。一些应用需要文件系统名字空间的层叠化特性支持。例如,嵌入式Linux测试开发过程中,开发者常常希望通过NFS更新开发板系统中的文件,同时也想保留针对每个开发板的测试配置信息和文件修改。支持这种特性的文件系统是联合文件系统(Unionfilesystem)o本文对Linux下联合文件系统的设计进行深入研究。进行对比测试,分析了各实现之间性能差异和速度瓶颈,为联合文件系统过渡方案的选型和进一步研究开发提供参考。1联合文件系统SunOS下的TranslucentFilesystem(TFS)是早期的联合文件系统实现之一。设计的动机是提供文件系统级别的源代码版本控制[2]。本文根据联合文件系统的设计动机和各种实现拥有的共同功能,对联合文件系统必须具备的特征进行如下描述[3-5]:联合文件系统提供目前LinuxVFS还不具备的名字空间联合功能;联合文件系统必须至少支持三层,其中最上层可读写(RW),其余各层只读(R0);联合文件系统可以修改系统调用语义,但必须保证修改后的语义符合POSIX标准。1.1抽象特征和定义联合文件系统本质上是一种能够对文件系统名字空间进行联合操作的抽象文件系统。文件系统的名字空间是文件路径名的集合。文件(绝对)路径名由根目录到文件的路径组成(如/usr/include/unistd.h)。文件路径名和文件系统管理的文件一一对应。本文通过分析联合文件系统的实现,提取归纳出如下定义:定义1分支(Branch)是要进行联合操作的底层文件系统,包括磁盘文件系统(disk-basedfilesystem)和网络文件系统(NFS)。分支分为两类,一类是可读写分支,记作RW;一类是只读分支记作ROo该文限定联合文件系统只有最上层的分支可以为RW分支,其余分支均为RO分支。定义2除白(Whiteout)是一种联合文件系统对象。在对文件进行删除操作后创建,以遮挡下层分支屮的所有路径名相同的文件。定义3不透明目录(Opaquedirectory)是一种带有不透明标记的冃录。冃录文件被删除,并重建后,将会被标记为不透明。不透明冃录不会和下层分支中任何路径名相同的目录联合。定义4令[Ans]和[Bns]为文件系统A和文件系统B的名字空间,A和B的名字空间联合操作记作[?*][?*],用集合语言描述为:[Ans?^Bns=Ans?Bns-Wns](1)其中,A是RW分支,B是R0分支,[Wns]是除白文件路径集。另外,对(1)式中读写性质作如下限定:A可只读(R0)或者读写(RW),B只读;若A为RW,B为R0,那么联合操作得到的文件系统可读写,否则,只读。容易得到联合文件系统的递归定义:分支A覆盖在分支B上,B可以为另一R0联合文件系统。所以总是只有最上层分支具有RW属性。在实际应用中,一些联合文件系统实现支持下层文件系统亦为RW,甚至支持分支的动态调整(比如,aufs支持动态插入删除分支到分支栈中)。这种动态特性增加了联合文件系统灵活性的同时也降低了联合文件系统的可靠性和稳定性。POSIX标准定义的对文件和冃录的典型操作在处理联合文件系统名字空间的时候,应该同时具有如下语义:open():若以可写模式打开文件,包括0WRONLY,0RDWR,O_APPEND,如果路径名[a?Ans],l.[aGBns],就将[a]对应的文件向上拷贝(copyup)到A中,并将[u]插入到集合[Ans]中。readdir():返回[Ans?*Bns]。unlink():如果路径名[aeAns],从[Ans]中删除[a];如果[a?Wns]将[a]插入到[Wns]中。...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?