基于FAT24的智能网络磁盘文件系统的研究与设计

来源 :计算机时代 | 被引量 : 0次 | 上传用户:dreamtale07
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:智能网络磁盘(Intelligent Network Disk,IND)存储系统被定义为以数据为中心的,由多个同构型的智能化、微型化、网络化存储单元IND组成的新型网络存储系统。文章从IND的特性出发,对FAT文件系统进行分析研究,设计了一种精简的、能满足IND需要的、基于FAT24的类FAT文件系统INDFS(IND File System)。
  关键词:存储系统;IND;嵌入式系统;文件系统;FAT24
  
  引言
  
  全球信息化,带来了数据量的爆炸式增长和数据流的急速膨胀,刺激了计算机网络技术的快速发展,也推动了网络存储技术的发展。从DAS、NAS到SAN和IP-SAN,存储架构实现了以服务器为中心到以数据为中心的转化。
  DAS存储设备寄生在相应的服务器里,完全以服务器为中心;所有的客户请求和响应、控制流和数据流都必须经过服务器,服务器成为I/O的瓶颈。基于将控制流和数据流分开的思想,NAS将存储器直接连到网络上,不再挂在服务器后端,服务器仅起控制管理的作用,从而减轻了服务器的工作负载,使系统的整体性能得到提高;但随着文件请求增加到一定程度,服务器的性能会显著地下降,而且服务器的存在必然会有单点故障问题。SAN提供了数据块传输、可伸缩的虚拟存储和远程备份,但由于其昂贵的价格,只有小部分的高端应用采用SANt2J。我们尝试用智能化、网络化、微型化的存储单元建立一种以数据为中心的较低成本的存储体系,即本文要研究的智能网络磁盘(Intelligent Network Disk,IND)存储系统。
  
  1、关子智能网络磁盘IND及其文件系统INDFS
  
  智能网络磁盘IND存储单元是具有IDE接口、高速以太网接口的嵌入式系统。该系统装有嵌入式实时操作系统,运行分布式、智能化的存储管理软件,挂接廉价的IDE大容量硬盘,所有直接接入网络的存储单元形成一个逻辑上完全为一体的,能实现快速存取的、具有数据容错和负载均衡功能的文件服务器集群。由IND作为基本单元组成的存储系统就是IND存储系统,其存储体系结构见图1所示,IND单元结构如图2所示。
  存储系统提供网络数据和文件服务,其中操作系统的选择和文件系统的定制是至关重要的。鉴于IND被定义为一个精简的较低成本的嵌入式系统,我们为IND选择了由Micriμm公司提供的,性能优良、源码公开、科研免费的实时操作系统内核uC/OS-II。Micriμm公司还提供了uC/FS,供uC/OS-II用户扩展文件系统用。uC/FS是一种基于FA732的类FAT文件系统,但需要付费。考虑到本系统的特点和进行科学研究的需要,我们决定开发自己的文件系统。该文件系统应该具有以下特性:能够存取当前流行的大容量IDE硬盘;可以实现多层次文件目录结构;能可靠快速访问磁盘文件;能兼容FAT文件系统;结构精简,能有效地利用嵌入式系统有限的系统资源。这样一种用于IND的文件系统笔者称之为INDFS。
  
  2、基于FAT24的INDFS的提出
  
  考虑到INDFS要能兼容FAT文件系统,笔者提出了一种基于24位FAT表(FAT24)的INDFS。
  
  2.1关于FAT文件系统
  FAT文件系统的基础是FAT(File Allocation Table,文件分配表),它在管理磁盘时,将逻辑盘的数据区划分为一个个簇(Cluster),作为磁盘文件分配的基本单位。簇由2n个连续的扇区组成,簇的大小一般依据磁盘的容量和FAT的类型而定。表1列出了不同容量下FAT32逻辑盘卷簇的大小和数目。簇依次编号,即得簇号。将簇号作为纪录编号,簇的状态作为纪录内容,组成一个反映整个磁盘簇分配和占用情况的一维表格,即FAT表。使用12位编号,即得FAT12,同理可得到FAT16、FAT32。某文件在磁盘上的存储分配情况反映在FAT表中是一个簇号单向链表,访问该文件只需记住文件存储的首簇号即可。而目录被视为特殊文件,目录表中保存了各文件或下一级目录的首簇号。当加载某个逻辑磁盘时,其FAT表也被载入内存,某一文件目录表在访问时也被载入内存,这样可以非常方便地实现对磁盘文件目录的读写。FAT文件系统就是这样一个以FAT为基础的、支持多级文件目录的文件系统。
  
  2.2 FAT12、FAT16不适于IND大容量硬盘
  FAT12是为容量仅为几百K的软磁盘提出来的,FAT16也只能管理最大2GB的硬盘分区,现主要用于存储容量较小的可移动存储媒介。它们不能满足IND所使用的当前流行的大容量IDE硬盘的要求。
  
  2.3 FAT32存在巨大的信息冗余不适于资源受限的IND
  (1)FAT32存在巨大的信息冗余
  通过对不同容量的FAT卷的分析可知,32位FAT表有巨大的信息冗佘。表1所示为不同容量的逻辑硬盘使用WIN98或WIN2000,WINXP格式化成FAT32卷后的簇容量及簇数目。
  从表1可看出,随着硬盘容量的剧增,簇也变大,而簇数目却保持在220221之间,即使卷容量为128GB时,簇数目也仅为222。222个簇,意味着只需要22个二进制位就可表达了,而32位FAT表最多可以表达222簇,以每簇4KB计,就可以映射16TB的卷。事实上,FAT32仅用了28位表示簇号(高4位为0),即便如此,相对于22位仍有巨大信息冗余。
  (2)在资源有限的嵌入式系统,FAT32难以发挥其优越性
  FAT32比较FA716有很多的优越性,它能支持更大容量的硬盘,比FAT16能有效地利用磁盘空间。但是FAT32占用的系统资源要多得多。一方面,32位FAT表与16位FAT表即使有同样数目的簇,FAT32表的大小也是FAT16表的两倍;另一方面,簇数的增多,也会使FAT32变得庞大。若使用全部的32位表示簇,最多簇数目为232,仅FAT表就将达到4*232=16GB。我们不敢想象将16GB的FAT表读入内存,也不敢想象在16GB的FAT表中搜索FAT表项。这样,我们对FAT32在运用过程中仅使用28位表示簇,在表1中使簇数目保持在220-222之间就容易理解了。由此可见,FAT32的性能没有得到最大程度地发挥,尤其在系统资源较为紧张时。既然这样,我们为什么不把FAT的位数降低呢?
  
  2.4建立基于24位FAT表的INDFS
  通过上述对FAT文件系统及FAT卷簇数目的分析,我们受到了启发:应该建立基于24位FAT表(FAT24)的INDFS。
  FAT24与FAT12、FAT16、FAT32相对应,就是用24个二 进制位表示簇序号,将逻辑磁盘中所有簇的存储分配情况映射到一个以簇号作为纪录号的一维表中,形成FAT24表。INDFS可以被设计成一个以FAT24为基础的类FAT文件系统。该文件系统能较好地满足INDFS的功能特性。
  (1)基于FA724的INDFS易于实现与FAT文件系统的兼容。由于INDFS源于FAT文件系统,且都以FAT为基础,因此易于实现与FAT16、FAT32的兼容。
  (2)基于FAT24的INDFS能满足IND对大容量硬盘管理的需求。若以每簇16KB计,使用22位表示簇,则可映射16*222=64GB的卷,使用多个卷,物理磁盘容量则可达128GB以上。IND使用廉价的、流行的IDE接口硬盘,这些硬盘的存储容量一般也是在80GB-200GB左右,更多容量的存储需求可通过使用多个IND来解决。
  (3)基于FAT24的INDFS比FAT32结构精简,能有效地利用系统资源,适于IND之类的嵌入式系统。FAT表降低8位,仅FAT表大小就可缩减四分之一,与之相关联的文件目录表、文件操作等数据结构都要简化,因此从总体上可以较大幅度地降低内存等系统资源的占用。虽然,基于FAT24的INDFS,面对32位系统架构,算法设计略复杂些,但对于IND这样一个资源受限的嵌入式系统来说,内存的节约在性能上的提升应该是主要的。
  
  3、基于FAT24的INDFS的设计
  
  基于FA724的INDFS的设计包括逻辑结构设计、主要数据结构描述和基本算法设计。
  
  3.1 INDFS的逻辑结构设计
  在uC/OS-II操作系统的调度下,INDFS承上支持智能化网络存取应用软件或其他存储管理应用程序,启下通过存储设备驱动程序管理大容量存储设备(这里是IDE硬盘),完成文件的存取工作。其逻辑结构可以用图3来表示。
  在图3中,虚线框内为INDFS的基本结构。其中文件管理和目录管理两大模块为上层提供所有与操作文件和目录相关的函数(API),文件目录表管理和文件分配表管理两个模块维护着INDFS两个最基本的也是最重要数据结构:文件目录表FDT和文件分配表FAT,逻辑磁盘模块是INDFS的载体,它定义了逻辑磁盘的基本参数,使INDFS可以管理多个逻辑盘,高速缓存(CATHE)用于提高读写磁盘的速度。此外,格式化实用程序完成]HDFS磁盘卷的初始化工作,底层驱动程序实现INDFS与]DE大容量存储设备的通讯。
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
其他文献
摘要:提出一种以J2ME为平台的手机定位技术,将支持J2ME的手机作为客户端,利用GPS与E-OTD相结合的混合定位方式对手机进行定位,并采用SVG矢量电子地图格式实现手机与用户的交互。实验表明,此方法的运用保证了定位精度,避免了定位精度对所处位置的依赖;同时,SVG格式矢量图的使用也提高了信息描述能力,表现出优异的动态特性。  关键词:手机定位;混合定位方式;SVG矢量图;位置服务    引言 
期刊
摘要:针对嵌入式网络打印服务器打印流程中文件处理占用资源较大的问题,采用C/S网络打印服务结构,对打印流程结构进行合理调整,将打印文件处理移植到客户端,利用內核裁减方法对服务器实施瘦化。多任务调度则通过μClinux提供的主进程创建任务进程实现。利用嵌入式系统提供的资源,在μClinux环境下构建了网络打印服务器平台,设计了网络通信模块、打印管理模块和USB设备驱动模块。在客户端设计支持PCL5语
期刊
摘要:高等教育自学考试(自考)是我国高等教育的一种重要形式,考生流失是自考的一种普遍现象。流失原因分析对自考管理方法的改革有着重要的意义。文章尝试采用聚类分析中K-Means方法对北京市自考考生流失的多重因素进行分析,揭示出自考考生流失的一些规律。  关键词:数据挖掘;K-均值;高等教育自学考试;考生流失;聚类    引言    数据挖掘(Data Mining)指的是从大量的、不完全的、有噪声的
期刊
摘要:随着政府信息化程度的不断提高,越来越多的电子政务平台提供了各类Web服务用于异构系统间的资源共享及数据交互。然而,目前通用的Web服务缺乏对语义的推理支持,使得异构的、分布式电子政务系统的管理及互操作性面临着极大的挑战。为了克服这一困难,提出了基于语义Web服务的电子政务模型,使用开放的、动态的、松耦合的、支持语义的Web服务构建了电子政务平台,以满足异构电子政务系统的资源整合及知识共享的需
期刊
摘要:介绍了C语言中几种内存分配方式,对几种方式的特点进行了对比,然后详细讨论了动态内存分配的实现方法,并分析了在实际应用中存在的问题,最后给出一个实例,说明动态内存分配在c语言程序设计方面的优越性。  关键词:内存分配;动态内存分配;C语言;程序设计
期刊
摘要:设计了一个基于BS结构的动态办公表格设计兼录入汇总系统,旨在便于用户利用互联网浏览器对临时发布的各类表格进行录入,并在管理员处自动生成所需要的表格,进行汇总输出。该系统考虑到多种表格形式,采用了多种方式相结合的录入方法以及单重多重录入并存的模式,并提供了丰富的表格维护功能和用户查看更新录入的功能。  关键词:表格动态设计;BS结构:表格动态录入:多重提交
期刊
摘要:主要讨论了VC++直接调用MatLab数学函数库的关键,并分别以实例说明了VC++直接调用MatLab数学函数进行矩阵运算的方法和通过Matlab引擎执行Matlab绘图命令进行绘图的方法。  关键词:函数库;绘图;VC++;Matlab
期刊
摘要:为了有效地利用有限的移动计算资源,必须用有效的统一的数据模型来处理海量的地理信息数据,这就需要一种合适的GIS框架结构和位于底层的高效的空间数据引擎的支持。文章设计了一种轻量级空间数据引擎,该引擎结合了嵌入式RDBMS,支持空间索引结构以及OpenGIS特征数据模型,能够提供强壮的底层空间数据库以支持各种更高级别的GIS应用。  关键词:移动GIS;轻量级空间数据引擎;简单特征;空间索引框架
期刊
摘要:对EPON系统的上行信道复用技术进行了深入的研究。在EPON系统上行信道复用技术中,带宽分配算法是一个热点和难点。文章基于DifferServ模型探讨了一种支持多业务的、保证QoS的混合动态带宽分配算法(HBA),并与静态、动态带宽分配算法进行了仿真比较。结果表明HBA算法在时延、时延抖动和信道利用率等方面优于其它算法。  关键词:以太网无源光网络;动态带宽分配;服务质量;仿真模型
期刊
摘要:分析了计算机中CMOS的工作特点,提出了结合软件技术与电子技术解决CMOS电源问题的几种方法,并就其中一种方法,论述了具体技术细节及操作步骤。  关键词:CMOS;数据保护;电池;恒压源
期刊