收稿日期:2009-06-11作者简介:王超(1985 ),男,博士生,E mail:w angchao1125@;刘伟(1976 ),男,博士,讲师,E mail:eliuw ei@.第30卷 第5期2010年5月北京理工大学学报T r ansactio ns of Beijing Institute of T echnolo gy V ol.30 N o.5M ay 2010基于文件系统的高速数据记录系统王超, 刘伟(北京理工大学信息与电子学院,北京 100081)摘 要:针对高速数据记录系统中记录过程和文件化过程的带宽不匹配问题,分析了影响文件化带宽的因素,提出了一种更具有灵活性和实用性的基于文件系统的记录方法.用该方法建立了文件系统框架,将存储空间划分为连续的管理信息区和数据区,记录过程中顺序记录数据到数据区,记录结束后修改管理信息区.在保证不影响系统记录带宽的前提下,该方法改善了文件化过程的带宽,实现了记录数据的高速文件化.关键词:数据记录;文件化;文件系统;F AT 32中图分类号:T P 311 52 文献标志码:A 文章编号:1001 0645(2010)05 0543 05File System Based High Speed Data Recording SystemWANG Chao, LIU Wei(Scho ol o f Informat ion and Electr onics,Beijing Inst itut e o f T echno lo gy ,Beijing 100081,China)Abstract :Aim ing at the bandw idth mism atch betw een r ecord pro cess and convert pr ocess in hig h speed data r ecording system ,factors that affect convert pr ocess bandw idth are analyzed,and a more flex ible and practical data reco rding method based on file system is proposed.The method divides storag e m em ory into consecutive information manag em ent space and data sto rag e space by establishment of file sy stem in advance.In reco rd pro cess,data is r ecorded in data sto rag e space consecutively and in co nvert process,info rmatio n manag em ent space is m odified.Thus,w ithout decreasing reco rd bandw idth,the method could im pro ve the bandw idth in conv er t process to achieve high speed file conversion.Key words :data recording;conv ert pro cess;file system;FAT 32 随着电子信息产业的迅速发展,高速数据记录系统越来越广泛地应用在各个领域,例如导弹跟踪、高分辨雷达成像、高能物理、电波天文学以及航空航天测试等.这些应用领域要求数据必须快速、可靠地记录在存储设备中,用作后续的分析和使用.高速数据存储系统需要依托磁盘的海量存储能力以及高速的读写带宽.磁存储技术由最初16 7MB/s 存储带宽,528MB 容量的IDE 磁盘发展到如今拥有超过1T B 容量,300MB/s 带宽的SAT A 磁盘.主要用于工业级存储的SCSI 技术标准也从最初10M B/s 的传输带宽发展到U ltra320SCSI 标准支持的320M B/s 的传输带宽.新一代的存储技术如串行SCSI (SAS)以及面向光纤网络存储的存储局域网络(SAN),这些都为高速数据存储技术带来了新的发展.1 问题的提出传统的数据记录系统直接以文件形式记录数据.文件形式的数据可以在操作系统下方便灵活地访问.但是受到文件系统对文件的管理约束,记录过程中数据不一定连续存储在磁盘连续的逻辑块地址上,磁头在不连续逻辑块地址间的切换会降低磁盘的记录效率[1].因此直接文件形式的记录在方便进行数据访问的同时约束了系统的记录带宽.为了提高系统的记录带宽,可以使用顺序的存储格式.顺序格式的数据存储绕过了文件系统,直接将数据记录在磁盘的连续的逻辑块地址上,以此减少磁盘磁头的切换时间提高记录效率[2-3].在面向实时存储的高速数据记录系统中通常使用顺序存储格式.目前一种典型的高速数据记录系统是基于PCI 接口的数据采集卡和磁盘阵列实现的[4],结构框图如图1所示.图1 高速数据存储系统结构图Fig.1 Block diagram of high s peed data recording采集卡通过PCI 总线将采集的数据传输至上位机内存,数据在上位机内存中缓存后再次经由PCI 总线顺序地记录到磁盘阵列.这个过程称之为记录过程.顺序的存储格式改善了系统的记录带宽,但是没有文件系统支持的数据无法直接在操作系统下访问.因此,记录结束后需要文件化过程:从无文件系统支持的源磁盘阵列中顺序读出记录的数据后以文件形式转存到有文件系统支持的目的磁盘阵列中,如图2所示.图2 文件化过程示意图Fig.2 C on vert p roces s对于高速数据记录系统而言,往往需要得到更高的记录带宽并且尽量压缩后期文件化过程的时间,但是文件化过程带宽受到目的磁盘阵列存储文件速度的限制,很难满足实际需求.数据记录带宽和文件化带宽的不匹配严重影响了高速数据记录系统的整体性能.因此研究和解决记录过程和文件化过程的带宽匹配问题对于高速数据记录系统的应用很有意义.2 问题的分析及解决思路由以上的分析可以看出,整个系统的工作划分为记录过程和文件化过程两部分.见图1搭建的高速数据记录系统.测试1中上位机采用Advantech 3369主板(2GB DDR RAM /Intel Pentium M 1 6GH z);采集模块采用自行研制开发的PCI 接口采集卡;磁盘阵列由3块U ltra320SCSI 磁盘组成.主板和采集卡直接通过PCI 总线连接,磁盘阵列通过Advantech 7901SCSI 接口板与PCI 总线连接,PCI 总线工作在66M H z/64bit 模式.经过实际测试,系统各模块的工作带宽如表1所示.其中B acq表示采集卡的工作带宽;B S CSI 表示磁盘阵列的工作带宽;B record 表示记录过程系统的平均工作带宽.表1 记录过程带宽Tab.1 Record process bandwidthM B/sB r e cord B SC SI B acq 135240360分析表1中的数据.记录过程中SCSI 磁盘阵列需要和采集卡共享PCI 总线,一般使用经验公式(1)估算共享总线情况下的平均传输带宽,B system =1/(1/B 1+1/B 2).(1)式中:B 1和B 2分别表示两个设备独立工作时的带宽;B system 表示两个设备共享总线时的平均工作带宽.将B S CSI =240M B/s 带入B 1,B acq =360MB/s 带入B 2,可以得到系统的平均工作带宽为B system =144M B/s 和实际测试记录过程带宽B record =135M B/s 基本吻合.记录过程结束后,需要由文件化过程实现数据到文件的转化.文件化过程中数据从SCSI 磁盘阵列中顺序读出,然后以文件形式存储在有文件系统支持的磁盘.Adv antech 3369主板板载了80GB IDE 接口磁盘,可以将转化的文件直接保存到板载的IDE 磁盘上.图3给出了经过实际测试从SCSI磁盘模组到80GB IDE 文件化的带宽.由图3可以看出文件化过程的带宽约为20M B/s,远远小于记录带宽(135MB/s),文件化需要的时间近似为记录时间的7倍.也就是说从开始记录数据到最终形成文件需要的时间8倍于数据记544北京理工大学学报第30卷图3 测试1中的文件化带宽Fig.3 Con vert process ban dwidth on test 1录过程,文件化带宽与记录带宽的不匹配严重影响了高速记录系统的应用性能.考虑到IDE 磁盘的传输能力可能成为文件化过程的瓶颈,使用传输性能更好的光纤接口磁盘阵列代替IDE 磁盘作为文件化过程的目的磁盘.搭建独立于记录系统的数据转存测试环境,测试2选用H P v x8600WorkStation (3GB DDR2RAM /Intel Xeon X5640)工作站,搭配QLogic ql2340光纤适配卡用于连接光纤磁盘阵列,Adaptech 29320A SCSI 适配卡用于连接SCSI 磁盘阵列.其中SCSI 磁盘阵列为源磁盘阵列,仍然由3块U ltra320SCSI 磁盘组成;光纤磁盘阵列为目的磁盘阵列,由6块光纤磁盘组成.测试结果如图4所示.图4 测试2中的转化文件带宽Fig.4 Con vert process ban dwidth on test 2由图4可以看出,800GB 的数据形成文件需要约8600s,文件化带宽达到95M B/s.对比记录带宽135M B/s,文件化过程消耗的时间仍然1 4倍于记录过程.分析上述的测试结果,文件化过程消耗的时间与系统的传输性能和数据长度有关.其中传输性能与系统的硬件组成有关,同样转化20GB 的数据,测试2(SCSI 磁盘阵列+光纤接口磁盘阵列)的文件化过程需要约203s,测试1(SCSI 磁盘阵列+IDE 磁盘)需要约1096s;而在同样的硬件环境下,处理数据量越大,文件化过程需要的处理时间就越长,二者近似成正比关系.对比图3和图4可以看出,改善目的磁盘的传输性能后,文件化过程的带宽有所提高,但是仍然不匹配于记录过程.当然可以选择传输性能更好的存储系统来替代光纤磁盘阵列,这同样会提高硬件成本代价.因此,通过改善传输性能来提高文件化带宽的方法不是最佳的方法.对于有文件系统支持的目的磁盘,整个磁盘的存储空间划分为数据区和管理信息区两部分.数据区用于存储实际数据;管理信息区存放管理信息,这些管理信息用于管理数据区存放的数据,一般包括数据的存储位置信息、长度信息以及数据到文件的映射信息.文件化过程实际上完成了两项工作: 从源磁盘拷贝数据到目的磁盘的数据区; 在目的磁盘的管理信息区添加管理信息.文件化过程需要处理的数据由拷贝的数据和添加的管理信息两部分组成.其中管理信息的长度在不同文件系统下略有不同,但是要远远小于拷贝的数据长度.如果可以将源磁盘的存储空间划分为数据区和管理信息区,记录过程直接将数据存储在源磁盘的数据区,那么记录结束后只需要在源磁盘的管理信息区添加相应的管理信息就实现了数据的文件化.这样,文件化过程只需为记录数据添加管理信息而不再涉及到数据的拷贝,处理数据量大大减少.转化相同长度的数据为文件,以压缩文件化过程处理数据量的方法来减少处理时间是提高带宽的一条有效途径.如果数据区有连续的存储空间,则仍然可以使用顺序的存储格式记录数据来保证记录过程的带宽.这个设计思路是实现记录数据快速文件化的一个适合的方法.存储系统设计思路可以分为以下3个步骤: 建立文件系统的结构; 顺序记录数据在数据区; 记录结束后添加数据的管理信息.3 基于文件系统的高速记录系统实现根据上述设计思路,以FA T32文件系统为例,介绍基于文件系统的高速记录系统的实现流程.3 1 FAT32的结构FAT32文件系统是Windo ws 平台上的一款主流文件系统,由主引导记录MBR(mater boot re co rd)区域、磁盘操作系统引导记录DBR(DOS bo ot reco rd)区域、文件分配表1(file allocation table,FAT1)区域、文件分配表2(file allocation table,FAT2)区域以及数据(DAT A)区域5部分组成.这5部分的位置和长度由磁盘的物理参数决定,并且在FAT32结构建立之后完全固定下来[5],如图5所示.FAT32以簇为基本单位管理数据,在大于32GB 的磁盘分区中,簇的大小一般为32扇区[6].545第5期王超等:基于文件系统的高速数据记录系统图5 FAT 32结构Fig.5 FAT 32structureMBR 和DBR 作为保留扇区描述了当前磁盘分区的基本信息.FAT 1区和FA T2区用于管理DA TA 区中每个簇的使用情况,FA T2区作为FAT1区的备份存在.DATA 区是连续的用于存储数据的区域,组成DATA 区的每一簇都在FAT1和FAT 2中以一个32bit 的标志标注.剩余扇区是指无法组成一簇的扇区,这些扇区无法被FAT32访问和操作.3 2 基于FAT32的高速记录系统实现如图6所示,整个流程分为3个步骤:在存储开始前建立FAT32的结构;顺序记录数据到FAT 32的DAT A 区;记录结束后为数据添加管理信息.图6 基于文件系统的存储设计流程Fig.6 System design flow chart首先建立FAT32结构,可以通过计算磁盘的参数建立FAT 32结构中各个区域,更简单的方法是在磁盘上直接格式化建立FA T32分区结构.FAT 32中的DATA 区域是物理上连续的磁盘空间,文件/文件夹的索引信息、文件中的数据都存储在这个区域.FAT32数据的管理信息由FAT 1,FAT 2和文件/文件夹索引信息构成.FAT 描述了存储数据的分布位置,而文件/文件夹索引信息可以看作是数据到文件的映射.将DA TA 区域划分为两个连续空间(如图7所示,其中灰色部分表示原FAT 32DAT A 区):文件/文件夹索引信息区和数据存储区.文件/文件夹索引信息区用来存储文件/文件夹的索引信息,这些索引信息描述了数据存储区的数据和文件的映射关系;DAT A 区数据存储区用来存储实际的数据,其中每一段数据都对应着一个文件,并在DA TA 区文件/文件夹索引信息区对应一条文件的索引信息.FAT1,FA T2和DA TA 区中的文件/文件夹索引信息区一起组成了文件系统中的管理信息区;DAT A 区的数据存储区作为顺序的磁盘逻辑存储空间组成了文件系统中的数据区用于顺序存储高速数据流.记录开始前需要计算存储起始地址.根据系统设计,所有的记录数据都存放在DATA 区的数据存图7 DAT A 区划分Fig.7 Division of FAT32DAT A area储区.如果DATA 区数据存储区为空,存储起始地址就等于DATA 区数据存储区的起始地址;如果不为空,新的存储起始地址需要紧接着上次记录数据的存储结束地址.为了保证DAT A 区数据存储区的连续性,当磁盘空间不足时(DATA 区数据存储区没有足够的空间存放记录数据或者管理信息区没有足够的空间存放管理信息),需要删除DAT A 区数据区中的所有数据并清除管理信息区中的所有文件/文件夹索引信息.记录过程中,仍然按照顺序存储的格式将数据连续的记录在DAT A 区中的数据存储区.根据预先设计的文件系统结构,记录结束后需要分别修改组成管理信息区中的FAT1,FAT 2和DA TA 区中的文件/文件夹索引信息区.具体流程如图8所示.图8 管理信息区修改流程Fig.8 Ind ex ar ea modification根据数据记录的长度和起始位置信息修改DA TA 区数据存储区中已经占用的簇在FAT 1区中对应的标志.FAT 32要求一个文件的长度不能超过4GB [4].对于高速数据记录系统,4GB 的长度是远远不够的.长度的限制可以通过分割数据的方法来解决,当记录数据的长度超过4GB 时,分割数据为若干小于等于4GB 的数据文件.因此在修改FAT1区时,还需要根据每个分割成的小于等于4GB 的数据文件的起始和结束位置来标注占用簇对应的标志.FAT2区域为FAT 1区域的备份,使用同样的方式修改FAT2.最后在DAT A 区的文件/文件夹索引信息区为每一个分割成的小于等于4GB 的数据文件添加索引信息实现数据到文件的映射.采用测试1的环境,直接在3块SCSI 磁盘上实现数据的文件化,图9给出了实际测试基于FAT32的数据记录系统针对不同长度数据的文件化带宽.基于FAT 32的数据记录系统在顺序记录数据后,只修改了FAT 1区、FAT 2区以及DATA 区文546北京理工大学学报第30卷图9 基于FAT32记录系统的文件化带宽Fig.9 Convert process bandw idth of FAT32baseddata recordin g sy stem件/文件夹索引信息区中的信息.根据FAT32文件系统的性质,一般1簇=32个扇区=16kB.根据设计的记录系统,每4GB数据对应一个文件,每个文件对应索引信息长度为4B,FAT信息长度为4 2 (4GB/16kB)=2M B.因此,4GB数据文件化需要处理数据长度仅为2M B+4B,这大大减少了文件化过程操作的数据量.由图9可以看出,将800 GB的数据转换成文件只需要6 8s,文件化带宽可以达到117GB/s.这一带宽不仅远远高于测试1中SCSI磁盘到IDE磁盘20M B/s的文件化带宽,而且高于测试2中SCSI磁盘到FC磁盘阵列89M B/s 的文件化带宽,满足了高速数据记录系统数据快速文件化的需求.由于FAT32对文件长度的限制,文件化过程中需要分割数据,形成多个数据文件.使用NT FS 文件系统可以突破长度限制[7],但是NT FS文件系统并没有公开构造文件过程的技术细节,因此尚不能直接应用.4 结 论针对高速数据记录系统中记录带宽和文件化带宽的不匹配问题,提出了基于文件系统的高速数据记录设计方法.该设计方法预先在磁盘存储空间上建立文件系统框架,使用连续的数据存储区保证顺序格式的数据记录带宽;在后期的文件化过程中,该设计方法通过压缩处理数据量的方法缩短了转化数据形成文件的时间.在保证数据记录带宽不变的情况下,本方法有效地提高了后期文件化带宽,实现了高速记录数据的快速应用,提升了高速数据记录系统的整体性能,并且在为航空集团某研究所定制的机载实验数据记录单元项目中取得了良好的效果.参考文献:[1]Spencer W N.Impro ving disk perfor mance via lantencyreductio n[J].IEEE T r ansactio ns o n Computer s,1991, 40(1):22-30.[2]张昆帆.高速数据采集和存储[J].现代雷达,2004,26(4):14-16.Zhang K unfan.H ig h speed data acquisitio n and sto ring [J].M odern Radar,2004,26(4):14-16.(in Chinese) [3]赵忠文.用A SPI控制硬盘实现高速数据记录[J].装备指挥技术学院学报,2004,15(4):67-69.Zhao Zhongw en.Implementatio n of high speed data re cor ding system thr ough contro l the hard disk by ASP I [J].Jo ur nal of the Academy of Equipment Command& T echnolog y,2004,15(4):67-69.(in Chinese)[4]吴赟,张运宇.P C机中高速数据传输和存储的研究及定量分析[J].国外电子测量技术,2003(2):14-17.Wu Yun,Zhang Y uny u.Study and quantitative analy sis of hig h speed data t ransm ission and st orag e in PC[J].For eig n Electr onic M easurement T echno log y,2003(2): 14-17.(in Chinese)[5]戴世剑,涂彦晖.数据恢复技术[M].北京:电子工业出版社,2005.Dai Shijian,T u Yanhui.Data r eco ver y techno lo gy[M].Beijing:P ublishing H ouse o f Electro nics Industr y, 2005.(in Chinese)[6]M icro soft Cor po ratio n.M icro soft extensible fir mwar einitiat ive F AT32file system specificatio n FA T:g en er al o verv iew of o n disk fo rmat,V ersion1 03[EB/ OL].[2000 12 06](2008 11 15).http: w w w.mi cr w hdcsys tem/platfo rm/fir mwar e/fatg en.mspx.[7]M icr osoft Cor po ration.N T FS technica l refer ence[EB/OL].[2008 11 15].http: technet.microso ft.co m/en us/libr ary/cc758691.aspx.(责任编辑:刘芳)547第5期王超等:基于文件系统的高速数据记录系统。