互联网以及其它与网络相关的各种应用飞速发展,网络上的信息资源呈爆炸型增长趋势。通过网络进行传输的信息量不断膨胀,大量信息需要进行处理,并通 过网络传输,这对信息存储系统提出了空前的要求。近年来,网络正成为主要的信息承载和处理模式,通过网络的互连来实现不同用户间数据和文件以及相关资源的 共享成为了当今主流。
当前,网络存储技术主要有三种:服务器附属存储(SAS, Server Attached Storage)、存储区域网络(SAN, Storage Area Network)、网络附属存储(NAS, Network Attached Storage)。传统的存储体系诸如SAS都是存储设备通过诸如IDE/SCSI等I/O总线与服务器相连,当客户连接数增多时,I/O总线将会成为一 个潜在的瓶颈,并且会影响到服务器本身的功能,严重情况下甚至会导致系统的崩溃。因此,脱离于服务器的网络存储技术逐渐成为近年来国际上比较热门的一个研 究方向。数据存储从以服务器为中心的存储方式转变到以网络为和中心的网络核心存储架构。NAS则成为存储网络化的重要存储模式之一。
NAS系统是一个具有专一功能的网络存储系统,实现与网络设备直接连接,使客户机与存储器之间直接传送数据。本文提出采用具有低成本优势的ARM片上处理系统EP9315和稳定网络性能的嵌入式Linux操作系统,实现低成本、即插即用、管理和设置简单的网络存储系统。
NAS系统概述
NAS是一种将以太网技术和即插即用技术结合起来的存储方案。它把存储设备和网络接口集成在一起,直接通过网络存取数据,使其成为专用的网 络文件存储及文件备份设备。NAS设备有自己的IP地址,可以放在任何的网络环境当中,通过物理链路和网络连接,这样NAS设备无需应用服务器的干预,用 户直接在网络上存取数据,使应用服务器大大降低I/O负荷,减小了CPU的开销。
由于NAS主要是实现存储功能,目标单一,使得我们可以设计好的方案用于优化存储,尽量避免I/O瓶颈,从而获得更高的存储效率、更低的 存储成本。NAS设备一般支持多计算机平台,不同操作系统平台上的用户通过网络支持协议可以调用同一文档,其中SMB格式是用于Windows和 Linux之间的文件共享。
系统硬件设计
本系统采用Cirrus Logic公司的ARM9系列的32位微处理器EP9315作为主控制器,Micrel公司的KS8721BL作为以太网PHY接口芯片。
1. EP9315主要特性介绍
EP9315内嵌运行于200MHz的ARM920T微处理器内核,内核工作电压1.8V,输入/输出电压3.3V;内部集成了一个高性能 的1/10/100Mbps以太网MAC,通过与支持MII接口的外置PHY接口简单连接,系统即可实现高性能、低开销的互联网访问功能。EP9315的 IDE接口可以支持与两个ATAPI工业标准兼容设备的连接,支持主模式和从模式,其内部的DMA控制器支持Multiword DMA和Ultra DMA模式的数据传输。
EP9315其它的特性还包括:带通用存储器接口(SDRAM、SRAM、ROM和闪存)、Raster/LCD接口、12位A/D转换 器的触摸屏接口、键盘接口、UART接口、3通道USB2.0全速主口、12通道DMA控制器等。其丰富的外围接口大大降低了系统开发费用。
2. 硬件电路
NAS系统核心器件设计框图如图1所示。其中主要部分功能描述如下:
a.SDRAM存储器为系统程序的运行空间,系统及用户数据、堆栈均位于SDRAM存储器中;
b.闪存用于存放用户应用程序、嵌入式Linux操作系统及其其他在系统掉电后需要保存的用户数据等;
c.EIDE接口实现IDE硬盘的接入;
d.1/10/100Mbps以太网物理层接口为系统提供以太网接入的物理通道,本系统通过该接口接上以太网PHY接口芯片KS8721,来实现高速的以太网接入,大大简化了系统的硬件电路设计。
图1:NAS系统硬件结构框图
NAS系统的软件设计
作为NAS设备最重要是存储,要实现这个功能,NAS设备需要具备几种功能:软件管理协调功能、网络功能、数据读取功能和设备驱动功能,所 以其软件模块可以按照这几个功能来划分。整个系统中必须有一个核心操作系统,作为对硬件的管理、软件的协调执行,并对外部调用提供API。在核心操作系统 之上是外部硬件设备的驱动模块,使硬件能正常地工作,为系统的正常运行提供基本条件。因为NAS是网络存储方案之一,所以要更多地考虑对网络和存储两方面 功能的支持,在设备驱动模块之上是对一些基本网络协议(TCP/IP)的支持和对专用网络存储服务器进行网络数据访问的文件共享协议(如服务器消息块 (SMB))的支持。最上层的是应用模程序块,包括很多应用服务(如远程管理和用户验证等服务)。NAS系统软件架构如图2所示。
图2:NAS系统软件架构
下面从操作系统与设备驱动程序、网络协议支持、应用程序三个方面讨论NAS系统的软件设计:
1. 嵌入式Linux操作系统和设备驱动程序
嵌入式Linux是在标准的Linux基础上,经过适当的简化、裁剪,然后加入一些特定的功能,形成一个精巧的、高效的、满足特定应用需求 的专用(定制)操作系统,它具有用户可裁剪、可配置的特点。NAS系统最重要的是存储,通过对Linux的裁剪,去掉许多通用的功能,使其成为一个专用于 存储、精简、高效的操作系统。
进入Linux内核源代码目录,注意之前要打上Cirrus Logic的内核补丁文件,实现对EP9315的支持。当完成内核的配置后,需要编译Linux内核,生成可运行在嵌入式系统上的内核映像文件。之后制作 根文件系统以支持系统与用户交互。通过不断的配置、编译,产生合适的嵌入式Linux内核,使之在功能和大小之间取得一个优化的结果,满足本系统的需要。 在Linux中,将各种设备大致分为3种基本类型:字符设备、块设备及网络设备。
嵌入式系统的差异性决定了系统开发者不但需要进行特定硬件的设计,同时需要编写相关的设备驱动程序,它是内核用于完成对物理设备的控制操作的功能模块。除了CPU、内存以及其他很少的几个部分之外,所有的设备控制操作都必须由被控设备相关的代码,也就是驱动程序来完成。
2. 网络协议和共享支持设计
Windows和Linux平台之间的文件格式是完全不同的,Linux不能对Window用户直接提供基本服务。接口工具Samba从根 本上消除了Windows与Linux之间的屏障。Samba是一套用于Linux和UNIX的软件,通过SMB协议提供文件和打印服务。
Samba的工作原理是让NetBIOS(Windows网络邻居的通讯协议)和SMB这两个协议运行于TCP/IP通信协议之上。其中 最重要的就是SMB协议,这是一个用于不同计算机之间共享打印机、串行口和通讯抽象的协议,在所有的Microsoft Windows系列操作系统中被广为应用。NetBIOS是一个对话通信服务,它通过一种公共的方法为访问提供应用程序,并且对整个网络提供服务。它实际 上为应用程序提供了一种公共的语言来进行通信。NetBIOS是一个针对如何访问数据的规范,并没有对两个应用程序之间的实际传输数据提供方法,它依靠更 低一级的协议,比如TCP/IP,来提供实际的传输服务。
Samba专门使用TCP/IP协议来传输NetBIOS,在Samba程序中,SMB依赖NetBIOS进行名字解析,通过网络提供和 获得资源。当运行Samba服务器时,Windows用户就可以登陆至你的Linux机器并且用你赋予它们的权限与UNIX文件系统进行双向的交流。
3. 系统应用程序软件设计
NAS设备本身一般没有显示器、键盘、鼠标等这些与人交互的外设,那么通过什么途径使系统管理员完成对这样一个“黑箱”的配置和管理呢?基 于Web的管理是目前在NAS系统管理中用的最多、最方便的方式之一。对于支持Web管理的NAS系统,系统管理员可以在任意一台客户机上使用标准的 Web浏览器对其进行各种应用和管理的操作。
在Web管理功能部分我们实现了如下功能:磁盘管理、用户和组管理、网络配置、系统设置、网络共享、硬件设置。
我们在搭建NAS应用和管理软件平台时,基于Web方式建立了两种应用模块,一种是面向客户端的,为客户提供一个访问NAS系统,并在系统 上存取数据、管理文件的平台。另一种是面向NAS系统管理员的,通过这个管理的平台,管理员可以实现对NAS系统的远程管理(见图3)。
图3:NAS系统的Web管理和应用流程图
我们将客户端的入口和管理员的入口集合到一个NAS系统的主界面中,通过选择不同入口进入不同的操作。NAS的用户进入客户端后,被提示输入用户名 和密码,并将填写后的表单提交给Web服务器,与Linux系统中保存的用户信息进行比较。如果是合法用户,验证通过后就会进入为此用户指定的文件目录, 用户仅可以在此目录中进行文件的存储和管理操作,不会涉及到其他用户的文件。同样其他用户进入客户端后也看不见此用户的信息,用户间是相互隔离、互不干扰 的,起到了数据保护的作用,防止了某些用户蓄意破坏其他用户的数据。如果选择管理员端,同样也会先要输入管理员名和密码。通过验证后,将进入NAS的管理 界面。
本文小结
本设计方案基于EP9315实现了一个基本的NAS系统,其采用嵌入式Linux操作系统,网络性能强大、稳定,内嵌TCP/IP协议和 SMB文件共享协议,加以完善就可以作为中小型用户的存储系统方案。本项目便于开发者对ARM9微处理器和嵌入式开发做更深入的实践研究,推动了ARM微 处理器更广泛的应用,也为网络存储系统的发展提供了方向。
原文地址:http://www.eetchina.com/ART_8800444078_617693_TA_443c5724.HTM