智能网络磁盘IND软件设计与实现

2007-03-09 19:03:27来源: 互联网
摘 要:提出一种新型的智能网络磁盘存储技术,适用于TCP/IP通信网络。该技术可有效地解决存储设备单点失效问题,提高了数据吞吐率,易于扩展磁盘容量。结合嵌八式技术的发展,详细讨论智能网络磁盘的数据访问模块的软件结构和关键技术,并通过在S3C44BOX开发板上移植uCIinux操作系统和开发应用软件,实现智能网络磁盘的数据访问功能。 关键词:网络磁盘 ARM S3C44BOX uClinux 引 言 在过去的20年里,存储系统的发展速度一直较慢。尽管IDE技术、SCSI技术的发展提供了更有效的数据传输、更快的磁盘驱动和更大的磁盘容量,但是存储系统仍然是作为服务器的附属设备,没有摆脱服务器/存储系统的模式,服务器单点失效及瓶颈问题依然存在。吉比特以太网和Fibre Channel技术的出现,使服务器和存储系统作为对等的实体存在于网络上成为可能,存储系统不再依附于服务器,服务器的失效不会导致对存储系统上数据访问的失效。 所谓的智能网络磁盘1ND(Intelligent NetworkDisk),不是直接连在个人计算机上,而是通过网络接口连接在网络上,用户可通过文件属性来访问文件数据。智能网络磁盘向用户提供统一的接口,利用元数据为用户提供面向集合的数据视图。在物理上,同一集合的数据可能分布在不同的智能网络磁盘上。存储时根据元数据决定数据的存储位置;响应数据访问请求根据所存储的元数据定位数据的具体存储位置,然后向用户发送数据。智能网络磁盘可以分为系统软件和应用软件两大部分;系统软件包括TCP/IP协议栈、文件系统、驱动程序等几个部分。应用软件包括数据访问模块、数据定位模块、元数据管理模块及数据缓存模块等。数据访问模块经过虚拟文件系统访问存储在存储介质上的数据;数据定位模块根据元数据定位数据具体的存放位置;元数据管理模块负责元数据的有效性;数据缓存模块提供访问数据的缓存机制。企业通过使用智能网络磁盘,既可以提高企业内部公共数据存储空间,方便数据共享和管理,又可以减少为了增加存储空间而增加服务器所花费的代价;另一方面,企业可以减少每台个人计算机的存储空间,加大智能网络磁盘的空间或数量,从整体上降低企业为存储所花费的代价。 下面详细介绍智能网络磁盘的数据访问模块及系统软件部分。 1 硬件设计 智能网络磁盘硬件设计的核心是Samsung公司的S3C44BOX微处理器。S3C44BOX微处理器主频为66 MHz,采用ARM7TDMI内核,支持16位的Thumb指令集和32位的ARM指令集;支持8个32 MB的存储体地址空间。为了降低成本,SaC44BOX提供了丰富的片上设备,包括8 KB Cache、SRAM、LCD控制器、2通道UART、4通道DMA、系统管理器(片选逻辑、FP/EDO/SDRAM控制器)、带PWM功能的5通道定时器、1个内部定时器、I/O端口、RTC、8通道10位ADC、12C总线接口、12S总线接口、同步SIO接口和PLL倍频器。在片外为S3C44BOX微处理器增加了2 MB F1ash、8 MB SDRAM、1个IDE接口和1个RTL8019AS以太网通信芯片。Flash主要用于存放BootLoader程序、uClinux内核映像、ROMFS文件系统和应用程序。智能网络磁盘采用IDE接口硬盘作为存储介质。普通IDE接口硬盘数据传输速率为133 Mbps,远远比磁带机快,有利于数据传输;固态存储器尽管存储速度快,但其昂贵的价格使其在目前仍不适于海量数据存储。S3C44BOX开发板的原理框图如图1所示。 S3C44BOX微处理器提供25位的地址总线Addr0~Addr24,提供16位的数据总线data0~datal5,因此SaC44BOX支持的最大存储体空间为32 MB。IDE硬盘与内存之间按照DMA方式进行数据传送,而以太网卡与内存之间采用中断方式进行数据传送。对于S3C44BOX微处理器,SDRAM安排于第6个或第7个bank,地址分别OxOc000000或OxOc800000开始。ATA接口位于第2个bank内,而以太网接口位于第1个bank内。 2 软件设计 智能网络磁盘系统软件功能模块如图2所示。IND软件负责接受请求、请求调度、数据分布管理及数据定位等功能;VFS为虚拟文件系统,为不同的逻辑文件系统提供统一的接口;ROMFS和Ext2为逻辑文件系统。块设备驱动程序为不同的块设备提供一个统一的接口,并负责块设备数据缓存功能;ATA接口驱动程序提供标准的AT总线接口驱动程序;TCP/IP协议和802.3协议组成一个协议栈,使设备可用于以太网,数据可经过Internet传送;网络设备经过8019AS芯片连接,为此提供了RTL8019AS芯片驱动程序。 IND软件模块响应用户的读请求和写请求,按照先来先服务策略调度请求,统一管理数据在磁盘上的分布视图。每当有连接请求时,IND软件模块就要生成一个轻量级进程,响应连接请求,并根据请求的元数据,决定文件的存储和读取集合。客户与IND智能网络磁盘之间采用无状态连接,以减小客户与网络磁盘之间连接的复杂性。当打开一个网络磁盘文件时,数据以一个临时文件的形式存放在本地系统上,以后的操作都是对本地的临时文件进行操作,打开完毕后,网络磁盘上相应的文件对象自动关闭,响应进程死亡。在关闭文件的时候,如果文件被修改过,则写回网络磁盘,并且删除掉本地的临时文件;如果文件没有经过修改"则不用进行回写操作,只在本地删除掉临时文件即可。一般情况下,打开文件时要建立一次连接,而关闭文件时可能要建立一次连接,也可能不要。目录是一种特殊的文件,按照普通文件进行处理。 目前,系统只支持两种文件系统ROMFS和Ext2。ROMFS是一个小型的ROM文件系统,只能读不能写。它包含了需要在uClinux上运行的应用程序,在uClinux操作系统编译期间被包含进uClinux二进制代码中。Ext2文件系统安装于ROMFS文件系统的/var目录上。系统运行以后,ROMFS文件系统和ext2文件系统在内存中的逻辑关系如图3所示。带“*”号的为Ext2文件系统对象,不带“*”的为ROMFS文件系统对象。 网络通信采用TCP/IP协议和802.3协议实现。以太网已从一个共享的、低速的拓扑结构发展成为一种高性能的吉比特交换传输技术,采用以太网技术有利于网络磁盘向吉比特以太网上移植。TCP/IP协议是一种开放式的网络互联协议,兼容性强,普及程度高,数据可以通过Intemet传输。 3 智能网络磁盘系统软件的实现 智能网络磁盘采用uClinux作为操作系统。uClinux是专为不带MMU的CPU而设计的嵌人式Linux操作系统,具有以下优点:第一,其源码在GNU公共许可证下是开放的,任何人都可以自由使用和研究;第二,uClinux采用模块化设计,具有很强的可裁减性,用户可以根据自己的需要增加或裁减功能模块;第三,uClinux功能强大,支持多任务操作、TCP/IP协议栈、多种文件系统等功能;第四,uClinux可移植性强,已经成功地移植到各种CPU平台上.像S3C44BOX、Motorola MC68000、MCF5206和MCF5207ColdFire等;第五,uClintlx还有1个与之相兼容的小型C语言库uClihc,它与GNUC语言库glibc兼容,方便用户开发应用程序。目前,uClinux支持3个Linux内核版本,分别为2.O.x、2.4.x和2.6.x,本设计采用的是2.4.xLinux内核。该内核与IEEE POSIX标准兼容,使得大部分开源代码不经过修改,只需要简单编译一下就可以移植到目标平台上。 在实现智能网络磁盘时,先开发了基于S3C44BOX微处理器的系统电路板,然后将uClinux操作系统移植到本电路板上,最后编写IND软件。下面主要介绍uClinux操作系统的移植过程和uClinux操作系统的引导过程。 在移植uClinux操作系统时,先要得到一个完整的uClinux操作系统源码,既可以从网站上下载一个完整的uClinux光盘,也可以从网站上下载必要的源码,如Linux内核、uClinux补丁程序、uClibc和所需的应用程序源码。我们下载的是uClinuX_dist一20041215.tar光盘,其中包含对s3C44BOX的支持。其次是要建立交叉编译开发环境。针对电路板所产生的部分配置内容如下: #define CONFIG_ARCH_SAMSUNG 1 #deflne DRAM_BASE OxOc000000 #define DRAM_SIZE 0x00800000 #cleftne Flash_MEM_BASE Ox0000000 #define FIash_SIZE0x00200000 #deflne CONFIG_RAMKERNEL 1 #deflne C()NFIG_SPU_NAME″S3C4480X″ #define CONFIG_CPU_S3C44BOX 1 #define CONFIG_CPU_ARM710 1 #define CONFIG_CPU_32v4 1 #defIne CONFIG_CPU_32 1 #defIne CONFIG_No_PGT_CACHE l #define CoNFIG_CPU_WITH_CACHE 1 #define CONFIG_ARM_CLK(6000000) #define CoNFIG_SERIAL_S3C4480X 1 从以上内容可以看出,Flash位于S3C44BOX的第0个Bank,地址从Ox00000000到0x00200000,容量为2MB。SDRAM位于第6个Bank,地址从Oxoc000000到0xOc800000,容量为8 MB。S3C44BOX工作频率为60 MHz,串口采用S3C44BOx片上的一个UART,并在该串口上支持控制台功能,使得uClinux的启动输出信息可以在超级终端上显示出来。其他的配置包括TCP/IP网络,10/100 Mbps以太网络、IDE和ext2文件系统等内容。配置完的uClinux操作系统带有进程调度模块、内存管理模块、ATA接口驱动程序、文件系统、TCP/1P协议栈、网卡驱动等功能。 uClinux配置完成以后即可对uClinux编译,产生两个文件:一个是非压缩的uClinux操作系统二进制代码uCllnux_bootram.bin,其在SDRAM中工作的起始地址为0xoc008000;另一个是压缩的uclinux操作系统二进制代码uClinux_bootrom.bin,通过JTAG线缆烧写到Flash中,由bootloader程序将其加载到SDRAM中执行。在系统启动的时候uCIinux_bootrom.bin要先进行解压缩,存放到SDRAM中,然后跳转到uClinux操作系统的入口处执行。内核在启动时要检查机器的CPU类型和体系结构、初始化CPU、建立RAM页表和中断矢量表、加载设备驱动程序。这一切完成之后,uClinux创建最初的init进程,安装根文件系统ROMFS和ext2磁盘文件系统。最后,操作系统将自动执行IND软件,等待接收客户端请求。 uClinux操作系统的引导通过B00tlDader程序完成。从本质上讲,它不属于操作系统内核,针对不同的CPU体系结构,不具有可移植性。本设计所编写的Bootloader程序在系统启动时完成以下几项工作: ①将存放在Flash中压缩的操作系统内核进行解压缩,然后复制到从0xoc008000处开始的SDRAM中; ②改写系统的内存地址镜像,将RAM的起始地址映射为O; ③设置CPU的sp寄存器,并将内核的BSS段清零; ④设置CPU的pc寄存器,使其值指向内核的起始地址。 4 性能分析 智能网络磁盘的性能受到系统各个方面的制约,像IND软件的进程调度策略、局域网的带宽、ATA总线的带宽、文件系统的缓存机制和客户端的缓存机制。这里分析文件系统的缓存机制及系统数据吞吐率,以此对智能网络磁盘的性能作个初步的衡量。 虚拟文件系统和块设备驱动程序普遍采用高速缓存技术,将最近最常使用的数据保存在内存中,提高数据在内存中的命中率。文件系统的目录项对象、索引节点对象、文件对象及vfsmount对象都存在独立的高速缓存区中,当请求的对象在高速缓存区中,且有效时,就直接从高速缓存区中取出数据发送给客户;如果所请求的数据不存在,则在高速缓存区中取出一个空闲的对象作为新对象的描述符,这样可以减少为创建新对象而分配内存所花费的时间,提高系统的效率。对于索引节点对象、目录项对象及vfsmount对象,为了提高它们的查找效率,这些对象都存在于它们各自的Hash表中。对于块设备驱动程序使用高速缓存区,可以降低频繁地读取存储设备的次数。对客户端目录文件的读取要采用一定的预取机制,因为对目录文件的打开比较频繁,每打开一个目录,都要建立一次连接,因此,采可行的预取机制可以有效地减少建立连接的次数。 系统性能测试采用BenchMark软件。硬件测试平台由智能网络磁盘、l00MB交换机和24台客户机组成。测试文件大小为1 MB,客户机随机地向智能网络磁盘发送读请求,测试结果如图4所示。吞吐率表示多用户请求时单位时间内通过网络传输的数据总量。 从测试结果可以得出,当客户数逐渐增多时,每个客户所得到的平均带宽逐渐渐少。当客户增加到24个时,每个客户可得到大约O.3 Mbps的带宽,可以满足文件远程访问请求。 结 语 本文首先介绍了智能网络磁盘的硬件开发环境,然后详细介绍了智能网络磁盘的软件模块及关键技术,最后在S3C4480X嵌入式开发板上实现了智能网络磁盘。客户端在访问智能网络磁盘时,速度还有待进一步提高。这可以从改善网络环境,提高网卡的速度着手,对客户端请求的调度策略也可以作为一个方面的研究,其他的功能模块还需要继续添加。相信智能网络磁盘对企业来说是一个好的解决存储设备问题的方案。

关键字:智能  智能网络  网络  磁盘

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200703/3155.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
智能
智能网络
网络
磁盘

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved