您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 《Linux小文件系统》需求分析报告
免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。《Linux小文件系统》需求分析报告=====================================================================目录1引言21.1编写目的21.2背景21.3定义31.4参考资料42任务概述42.1目标42.2用户的特点42.3假定和约束53需求规定53.1对功能的规定53.2对相关数据结构的规定103.2.1内存超级块结构(super_block)103.2.2内存i节点结构(inode)103.2.3内存目录项结构(dentry)113.2.4内存文件结构(file)123.2.5文件系统类型结构(file_system_type)123.2.6进程任务表(task_struct)与文件系统133.3对性能的规定143.4输入输出要求143.5其他专门要求154运行环境规定154.1设备及运行环境154.2接口15免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。21引言目前,Linux操作系统已经成为继Unix,Windows之后的第三大操作系统,而且发展势头远高于前两种操作系统,很有可能成为第一位的操作系统。另外Linux的用途及其广泛,除了工作站与服务器外,已经拓展到如手机、工控设备、网络存储、网络设备等等众多应用。我国已经把Linux方向作为国家重点扶持的方向之一。Linux作为开放的平台,全世界无数的研发人员投入其中,提供了大量的高质量开源软件,我国的许多研发人员同样参与其中。Linux上众多开发人员开发了多种文件系统,这些文件系统一般来说都是面向通用应用的,即对一些特定的应用的支持并不是很完善,本报告提出的小文件存储文件系统就是针对目前绝大多数文件系统的一个缺点所提出的,即当文件系统中存放的文件都是小文件(一般为几K到几十K),而且数量众多时,Linux的性能会急剧下降,这主要是由于文件列表过于庞大,传统的线性搜索带来的检索效率低下导致。小文件存储文件系统的主要使用范围有文件缓存服务器(民用),网络监视服务器(军用)等等,通过修改其文件组织、访问和检索机制,在高层次对用户透明的前提下,有效提高检索和访问速度。1.1编写目的本需求的编写目的在于研究Linux内核模块文件系统的开发途径和应用方法,描述本系统开发的背景,系统的目标,用户的需求情况,系统的功能等需求,以便于需求理解,为以后的概要设计和详细设计提供参考依据。本需求的预期读者是与Linux内核模块开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。1.2背景项目的名称:Linux小文件系统本项目的任务提出者:上海交通大学本科生研究项目(PRP)免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。3本项目的任务开发者:Linux小文件系统开发小组用户:1)使用用户:指导老师、开发组成员、教务处人员2)维护用户:开发组成员1.3定义可堆叠文件系统:在通过可堆叠技术,利用现有内核文件系统功能开发新的文件系统方面已经进行了大量的研究。这种方法使用了分层堆叠的inode接口。inode是类Linux操作系统的一种数据结构,用来表示一个打开的文件、目录或者其它在文件系统命名空间出现的实体,它隐藏了底层物理文件系统的实现细节。inode接口使高层操作系统模块可以按照统一的方式处理文件系统请求。inode节点概念的一个改进是inode分层堆叠。这种技术让一个inode接口调用另一个,从而使文件系统功能设计模块化。有了inode分层堆叠后,可以有多个inode(s),并且它们按顺序调用。利用inode分层堆叠方法,可以在现有的底层文件系统和VFS之间插入一个新的堆叠层文件系统,为底层文件系统增加新功能。这样,大多数实际的文件操作可由底层文件系统完成,开发者可以把主要精力放在文件系统的新功能上,而不用考虑文件系统和底层服务的交互,大大加快了开发速度。同时这种文件系统的性能和内核文件系统接近,避免了用户级文件系统的性能问题。Linux小文件系统:此文件系统是一个可堆叠的文件系统,作为一个内核模块运行。用于连接VFS和FS层。小文件系统本身由C代码构成,与底层文件系统无关,以保证高通用性。因此也可以看成是VFS的一个增强组件。免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。41.4参考资料Linux内核源代码情景分析-----毛德操胡希明Linux文件系统-----MosheBarLinux内核设计与实现-----RobertLove2任务概述2.1目标对于网络浏览器及网络流量分析工具而言,存放页面缓存和抓包结果的目录下会生成大量小文件,造成检索效率的下降。Linux小文件系统的目的是对此类目录下的文件检索操作过程进行优化,提高检索的效率。对于原有的文件系统,在同一个目录下存放了大量生成的小文件。而我们所需要做的,是在LinuxVFS和FS中间插入一层,即小文件存储系统,在这一层上完成地址的映射,将原先大量的小文件按照一定的方式归类到多个子文件夹中,在检索时,能够首先确定小文件所属的子文件夹,然后在该文件夹里的数量相对少了很多的文件中检索所需文件,因此可以在很大程度上提高检索效率。而该层文件系统对用户而言则是透明的。2.2用户的特点软件的最终用户是Linux下的普通用户。实现过程对用户而言完全透明,只须理解Linux下基本文件操作即可使用维护人员应熟悉Linux内核模块编程和调试技术,以应付突发和偶然的故障。管理人员为Linux系统管理员,具备基础的系统管理知识即可胜任。免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。52.3假定和约束a.本项目的开发经费不超过10万元,预计时间6个月;b.辅导老师1人,开发人员(本科生)4人;c.在管理方针,硬件的限制,并行操作安全和保密方面无约束。3需求规定3.1对功能的规定3.1.1系统结构图:用户进程虚拟文件系统VFSlinux小文件系统EXT3等FS存储系统用户空间内核空间免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。63.1.1.2功能要求:路径变换:将用户传入的文件名转换为磁盘上实际可用的路径名,以实现过程对用户的透明。文件检索:依照传入的文件名在磁盘上查找或创建文件文件调用:将用户所需的文件挂接到内存中对应的用户进程下3.1.1.3数据流图:免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。7系统UseCase图:建立文件用户检索文件日常维护故障修复管理员文件操作免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。8文件检索顺序图:文件检索协同图::用户:VFS:底层文件系统(如EXT3):Linux小文件系统2:检索命令3:调用4:路径变换5:检索1:挂载6:返回检索文件:用户:VFS:Linux小文件系统:底层文件系统(如EXT3)检索文件调用路径转换并检索免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。9文件检索状态图:输入命令do/输入所需检索文件的逻辑路径检索失败do/返回错误信息检索成功do/返回文件给用户路径变换do/调用Linux小文件系统进行路径变换文件检索do/变换为实际路径在底层文件系统中检索所需文件免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。103.2对相关数据结构的规定由于该任务涉及虚拟文件系统中的数据结构。相关的描述如下:虚拟文件系统存在于内存中。约定对于虚拟文件系统的数据结构都称为内存中的数据结构,以与具体文件系统对应的数据结构相区别。3.2.1内存超级块结构(super_block)每个文件系统都有一个超级块结构,用来描述整个文件系统的信息。内存超级块是磁盘超级块在内存中的存在形式。内存超级块的数据结构为:structsuper_block{……structdentry*s_root;……structsuper_operations*s_op;……union{……structext2_sb_infoext2_sb;……void*generic_sbp;}u;……};其中,s_root指向文件系统根目录的dentry结构。s_op指向一个super_operations数据结构,其中含有具体文件系统的用于超级块操作的函数指针,具体的文件系统应该提供这些函数。u是一个共用体,其成员是系统能支持的各不同文件系统的磁盘超级块信息结构体(fsname_sb_info)和一个(void*)型指针generic_sbp。实际使用的是u的哪一个数据成员取决于与该内存超级块对应的是哪一个具体文件系统。3.2.2内存i节点结构(inode)文件系统中所有的普通文件、设备特殊文件、链接和目录都用i节点唯一表示和标识,不同类型的文件通过i节点的文件类型属性来区分。在内存中,VFS将各种文件系统的节点数据结构都用内存i节点表示。structinode{……unsignedlongi_ino;……免责声明:中国文档网致力于为会员提供高质量文档。网站所有资料均来自internet和会员,中国文档网不保证其内容的合法性、准确性或有效性,文档版权属于提供者所有。中国文档网不承担与此相关的任何法律责任。11structinode_operations*i_op;……union{…….structext2_inode_infoext2_i;…….void*generic_ip;}u;……};每个i节点都有一个i节点号i_ino,它唯一标识文件系统中的某个文件。inode结构中有一个指针i_op,指向一个inode_operations数据结构,该结构用来将VFS对i节点的操作转化为具体文件系统处理相应操作的函数调用,如创建、删除inode结构的函数等。具体文件系统应该编写实现这些函数。inode结构中还有一个共用体u,其成员是系统支持的各种文件系统的磁盘i节点结构(fsname_inode_info)和一个(void*)型指针generic_ip。实际使用的是u的哪一个数据成员取决于与该内存i节点对应的是哪一个具体文件系统。3.2.3内存目录项结构(dentry)内存目录项是设备上的文件系统目录项在内存中的数据结构。VFS把每个目录看作一个若干子目录
本文标题:《Linux小文件系统》需求分析报告
链接地址:https://www.777doc.com/doc-3359371 .html