段海军,陈 福,冯军波,韩春阳
(中航工业西安航空计算技术研究所 第19室,陕西 西安 710065)
面向航空电子系统的网络文件系统设计
段海军,陈福,冯军波,韩春阳
(中航工业西安航空计算技术研究所 第19室,陕西 西安710065)
摘要针对IMA的多个应用模块的文件共享问题,基于具有自主知识产权的机载多分区实时OS平台,提出了一种网络文件系统NFS的设计方案。文中采用网络文件锁,通过对文件的上锁和解锁,实现多个分区互斥访问文件;使用权限验证机制验证用户对文件的访问权限,用户通过验证后方可对文件执行相应的操作;日志文件保存整个NFS的运行情况,用于对NFS性能的分析。文中阐述了NFS客户端、服务器端的设计和网络封装格式,并给出了NFS运行的原理图。
关键词IMA;网络文件系统;分区
新一代航空电子系统已发展为综合化模块化的航空电子系统[1],IMA提供了一个实时的计算机网络,其由多个应用计算机模块和航空电子系统的专用总线组成,多个应用计算机模块如何共享文件是个需要解决的问题。NFS可将占用大量磁盘空间或用户共享的数据只保存在一个NFS得服务器上,并可解决IMA的多个应用计算机模块之间文件的共享和大文件的存储问题。
目前较为著名的网络文件系统是SUN公司的NFS,虽有开源的NFS,但其是基于Linux平台的,没有分区的概念,不适合IMA。本文以研制某型号飞机的航电系统为背景,参考了SUN公司NFS的设计思想,结合航空电子系统的多分区实时OS的特点,提出了一种适合IMA的网络文件系统NFS的设计方案。
1NFS的功能需求
NFS可定义为运行于多分区实时机载操作系统中,可访问远程文件的机制。NFS应具备的基本功能:(1)客户端应具备向服务器提出访问远程文件的能力;(2)服务器应具备响应客户端访问本地文件请求的能力;(3)网络必须实现客户端和服务器端正确的通信。
NFS除了完成基本功能外,还应该保证多分区能够正确、有序的访问文件;防止非法用户操作文件或者合法的用户对文件进行非法的操作;记录NFS的整个运行过程。
多个分区访问:网络文件系统支持多个分区访问远程文件,这时就涉及了互斥访问远程文件的问题。在多个分区同时访问文件时,若无法互斥的访问文件,有可能出现读脏数据、重复写,无意中损坏了文件中的数据。
单分区访问:分区是不是文件合法用户、是否会对文件进行非法的操作,这涉及到了文件的安全问题。文件中包含重要的信息,被某个分区读取数据有可能造成泄密;被某个的分区修改数据,有可能给系统造成安全隐患甚至导致系统崩溃。
运行情况的分析:NFS需要记录运行情况,以便对NFS的性能做出评估,对NFS做出及时的调整。
通过以上分析,网络文件系统除了基本的功能,还应具备3个功能:(1)互斥访问文件;(2)用户访问控制;(3)记录日志文件。NFS的功能模块层次如图1所示。
图1 NFS功能模块图
本文将读写远程文件的应用分区称为读写分区;
将响应远程分区访问文件的分区称为服务分区。
2NFS的功能设计
2.1网络文件锁
NFS采用网络文件锁实现多分区互斥访问文件。读写分区在访问文件前,先查看文件是否被锁,如果文件没有被锁住,则给文件上锁;若文件已上被锁,则等待正在访问文件的分区解开文件锁后,再给文件上锁,访问文件。一个文件在某一时刻只能被一个分区锁住,只有给文件上锁的分区才能给文件解锁。
NFS通过网络文件锁表Network File Lock List(NFLL)表明系统在某一时刻上锁的状况,如表1所示。给文件上锁是指将文件的路径和相应的操作信息记录到NFLL中,并将文件锁的使能位置1。释放文件锁是指按照文件的路径找到相应的记录,并将文件锁使能位置0。查看文件是否上锁,是指按照文件的路径查找NFLL,若找到相应的记录且文件锁使能,表示这个文件此时正被其他分区访问,该文件已上锁;否则表示当前文件空闲,此时没有分区在访问此文件。
表1 网络文件锁表
2.2用户访问控制
本文采用了自主访问控制DAC(Discretionary Access Control)[2],基本目标是防止非法用户进入系统和合法用户对系统资源的非法使用。DAC通过规定了哪些主体对哪些客体可以执行什么样操作的访问规则来进行控制访问。本文采用访问控制矩阵[3]明确NFS在某一时刻的授权情况,访问控制矩阵可用一个三元组(G,F,M),其中的的G是分区的集合,F表示文件的集合,M表示权限矩阵。权限矩阵式以分区行索引号、以文件为列索引号,例如:权限矩阵的第i行、第j列的元素Mij=RW,则表示分区Gi对文件Fj具有读和写的权限,如表2所示。在NFS中,特别要注意的一点是文件权限的授权者必须是文件的所有者,不是该文件的所有者不能给其他分区授予该文件的访问权限。
表2 访问权限控制列表
2.3日志文件
NFS的日志是系统记录了某些分区对某些文件的某种操作和操作结果,按照时间有序的集合[4]。每一个日志文件由诸多的操作记录组成,每条日志记录存储着一次单独的操作。NFS的日志是简单的文本文件,可被直接阅读。记录中包含一个记录序列号和一个消息,客户端的日志如表3所示。记录中使用绝对本地时间ALT[5],是IMA系统内部的参考时间,也是IMA系统的本地时间。
表3 NFS客户端日志文件
服务器的日志文件和客户端的日志记录内容不同。在服务器的日志文件中,记录了操作在服务器的开始时间、结束时间、用时、操作失败的原因以及请求消息传输的时间。服务器的日志如表4所示。
表4 NFS服务器日志文件
日志支持强大的搜索功能,只要输入几个关键字段,便可搜出所有符合关键字段的记录,使用户可了解到NFS在哪段时间是运行的高峰期、是否满足实时性的要求、每次操作的时间主要花在网络还是访问文件上、对文件操作失败的原因等。
3NFS的框架设计
NFS主要客户端和服务器端组成的,系统框架如图2所示。客户端通过调用一些访问远程文件的函数,实现对远程文件的访问。其将请求的操作远程文件的信息按照一定的格式封装,然后通过网络发送给文件所在的远程主机。服务器则是通过调用本机的VFS(虚拟文件系统,VirtualFileSystem)的函数进行文件的实际操作,并将结果按一定的格式通过网络返回给客户端[6]。
图2 NFS系统框架图
3.1NFS客户端的设计
NFS客户端同本地文件系统挂接在VFS下,与本地现有的文件系统互不影响。在系统中,VFS管理和组织本地文件系统和NFS客户端,并向上层模块提供统一的操作接口[6]。分区在访问远程文件和本地文件调用的接口是一致的,实现的透明访问远程文件。
NFS客户端主要实现的功能是向服务器提出访问文件的请求,为实现这一个功能NFS客户端必须有具备两个条件:(1)具有远程文件的文件目录;(2)可对请求信息封装,将请求信息发送给服务器,并能正确接收返回值。
NFS客户端保存着远程文件的目录,例如图4中客户端保存服务器的文件C:Navy.txt目录。按照树形的结构保存着文件的目录,可快速的查找服务器的文件,具有删除方便等优点。
3.2NFS服务器的设计
为支持NFS访问不同类型文件系统,NFS服务器直接调用VFS的文件接口,VFS管理着本地的文件系统,即使是不同类型文件系统,VFS也能向NFS服务器提供统一的接口。
NFS的服务器主要响应远程分区访问本地文件,因此必须具备3个功能:(1)正确的访问文件;(2)正确的接收、解析远程分区的请求信息,正确的封装和发送操作的结果;(3)向远程分区提供远程分区可访问文件的目录。NFS客户端保存客户端可访问本地文件的目录。例如图4中,服务器保存运行客户端访问本地的C:Navy.txt目录。NFS服务器应具备分区互斥访问文件和访问控制功能,以保证多分区正确的访问文件。NFS服务器封装返回信息的格式和解析请求信息的格式如下所述。
3.3网络封装格式的设计
NFS的网络是连接客户端和服务器的桥梁,主要实现客户端和服务器的通信。NFS通信主要有两种消息:请求消息和返回消息,因此信息的封装格式也有两种,如图3所示。第一种格式是应用分区、服务分区、文件路径、操作码、时间戳和操作参数;第二种格式是应用分区、服务分区、文件路径、返回码、时间戳和返回参数。客户端按照第一种格式封装请求消息,服务器按照第一种格式解析消息;服务器按照第按照第二种格式封装操作结果,客户端按照第二种格式解析返回消息。
读写分区服务分区文件路径操作码/返回码时间戳操作参数/返回参数
图3信息封装格式
3.4MOUNT协议
NFS的客户端访问服务器文件,必须首先了解服务器上有哪些允许被其访问的文件。NFS的MOUNT协议[7]实现的功能是:客户端通过MOUNT协议获取服务器上允许自身访问的文件目录,即将服务器上允许本客户端访问文件的目录添加到客户端的远程文件目录中。在图4中,服务分区m把允许读写分区n访问的文件的目录提供给读写分区n。
图4 MOUNT协议
图5 NFS原理图
4结束语
本文立足于解决IMA文件共享的问题,提出了一种运行在国产机载多分区实时OS中的网络文件系统NFS的设计方案。该方案采用网络文件锁和访问控制权限保证多分区正确、有序的访问文件,采用日志文件保存NFS运行情况。航空电子系统对软件的实时性和可靠性要求高,因此如何提高NFS的实时性和可靠性将是下一步研究的重点。
参考文献
[1]ReneLCEveleens.Integratedmodularavionicsdevelopmentguidanceandcertificateconsiderations[J].MissionSystemsEngineering,2006(2):1120-1132.
[2]VincentCHu,DavidFFerraiolo,DRickKuhnD.Assessmentofaccesscontrolsystems[R].USA:NISTIR7316,2006.
[3]RiccardoFocardi,RobertoGorrieri.Foundationsofsecurityanalysisanddesign:tutoriallecures[M].Germany:Springer,2001.
[4]王倩,刘奕群,马少平,等.面向用户互联网访问日志的异常点击分析[J].中文信息学报,2010,24(3):44-48,61.
[5]程春姬.综合模块化航电系统时间管理技术[J].航空电子技术,2010,41(1):17-20.
[6]RusselSandberg,DavidColdberg,SteveKleiman,etal.Designandimplementationofthesunnetworkfilesystem[C].Tianjin:ProceedingofSummerUSENIXConference,1985.
[7]CallaghanB,PawlowskiB,StaubachP.NFSVersion3ProtocolSpecification[S].NCUSA:SunMicrosystemsInc,1995.
Design of Avionics System Network File System
DUAN Haijun,CHEN Fu,FENG Junbo,HAN Chunyang
(Xi’an Aeronautics Computing Technique Research Institute,AVIC,Xi’ an 710065,China)
AbstractA network file system based on China’s proprietary airborne multiple partitions real-time operating system is designed for the file sharing among multiple application computers in the avionics system.The network file lock realizes multiple partitions mutually exclusive access files by locking and unlocking files,the access validation controls user access to files,and the log files save the whole operation process of NFS.The NFS client and server design and the network packing format are described and the schematic NFS is given.
KeywordsIMA;network file system;partition
中图分类号TP316.1
文献标识码A
文章编号1007-7820(2016)04-095-05
doi:10.16180/j.cnki.issn1007-7820.2016.04.025
作者简介:段海军(1986—),男,工程师。研究方向:计算机软件与理论。
基金项目:国家重大专项基金资助项目(2012ZX01041-006);国家航空科学基金资助项目(2013ZC31003;2013ZC31005)
收稿日期:2015- 09- 09