您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

基于Linux的嵌入式网络存储器筹划

发布日期:2011-04-15

     择要:在扼要先容网络存储器硬件原理的底子上,过细阐发软件平台的构建,并对差别网络、差别平台之间实现文件存储提出了相应的办理要领。

    关键词:Linux 网络存储器 Samba NFS

随着当代信息社会的高速生长,种种典范的数据也呈多少指数级地增长,怎样更有效、更方便、更完全地存取办理这些数据,成为人们存眷的一个标题。新的网络存储技能的出现,给了人们一个很好的办理方案。它把存储配置直连续接到网络上,作为一个瘦的网络客户终端配置给用户提供网络存储办事,并且,Web技能的生长也为其方便、可靠的办理提供了技能保障。

1 硬件筹划

硬件筹划方框图如图1所示。

从图1可看到,除CPU单位以外,网络存储器的实现紧张包括两个部分:I/O接口和存储器接口。下面以CPU为中间,阐发这两个接口的紧张结果。

①I/O接口。这里指CPU与Ethernet的接口(以太网接口)。它采取PCI的要领与以太网相连,是进入LAN(Local Area Network)的通道,在整个别系中认真发送或汲取网络上的数据包。

②存储器接口。包括两个方面:一是RAM接口,紧张存储数据,采取PCI接口要领;二是Flash接口,紧张存储利用体系及应用软件,采取并口情势与CPU相连。

③磁盘冗余阵列卡(RAID)接口。包括与CPU的接口和与磁盘阵列的接口。磁盘阵列紧张用来存储网络用户数据,CPU通过磁盘阵列卡对磁盘阵摆列行办理利用,容许肯定的冗余来包管用户数据的沉寂。

2 软件筹划

在整个软件筹划中,应选择一个切合的利用体系。整个利用体系恳求体积比较小、网络结果比较强、适于淘汰、能被嵌入到Flash中,并且有网络办理和磁盘办理结果。针对这些恳求,我们选择Linux利用体系作为软件平台,对其内核举行淘汰,从而实现嵌入式网络存储器的结果。整个软件实现可分为以下几个部分。

2.1 Linux内核的淘汰

(1)Linux内核简介

Linux内核紧张由五部分构成:进程调理、内存办理、假造文件体系、网络接口以及进程间通讯。进程调理认真控制进程对CPU的访问,调理步调利用一种战略确保全部的进程都能公平地访问CPU,并且确保内核在恣意时间能实行须要的硬件利用。内存办理认真办理体系的物理内存,实现多进程沉寂地共享谋略机的内存;别的内存办理支持假造内存,使进程可以利用大于实际物理内存的内存地点空间,不消的内存址空间被导出到文件体系中,并在须要利用时再导回到物理内存中。假造文件体系通过将种种配置抽象为一种大众接口,屏蔽了种种硬件配置的细节。网络接话柄现了对种种网络标准网络硬件的访问。进程间通讯子体系实现了体系内进程间的多种通讯机制。

(2)Linux内核的配置

Linux体系的内核采取单块布局,可以动态地加载和卸载模块。体系利用内核模块的可动态装载和卸载结果,可机动地在内核中添加新的组件或卸载不再须要的内核组件。因此在细致实现进程中,可以针对要实现的结果对其内核举行淘汰,以缩小体积。根据网络存储器的硬件实现框图可以知道,整个别系的硬件接口只包括PCI和IDE两种接口。在对Linux内核举行配置时,可把Floppy、SMP、MTRR、SCSI及全部的Block Device和Character Device删除,只留下old IDE Device、PCI。别的,文件体系在内核中占了相称大的比例,VFS简化了文件体系的筹划,Buffer cache、Directory cache增长了体系的屈从;但这些对嵌入式体系用处不大,可以删除,内核会减小20KB左右,大概跳过整个VFS,直接将文件体系写成一个Driver的型式,如许文件体系可由230KB缩减至50KB左右。在配置Linux内核时,网络协议的支持是必不可少的。如今,大多数网络都因此TCP/IP协议为底子的,并且一样通常的变乱站所选用的利用体系为Windows或Linux体系,因此,要实现其网络结果,并可以大概在差别平台下实现文件共享,应该选择对TCP/IP协议、NFS以及Samba协议的支持。

2.2 差别平台下文件共享的实现

当代PC机中广为盛行的利用体系有两种:Windows和Linux。这两种利用体系是依赖于完全差别的技能来提供网络办事的:Linux利用体系因此传输控制协议/网络协议(TCP/IP)、网络文件体系(NFS)以及网络信息办事(NIS)为底子,提供网络办事的;而Microsoft则依赖于NetBIOS和办事信息块(SMB)来提供把数据从办事器传输至客户机的办事。因此,我们选用Samba东西来实现这两种差别平台下的文件共享。

(1)Samba简介

Samba从底子上消除了Windows与Linux之间的屏蔽,可以提供以下4个方面的办事:共享资源和打印机、名字阐发、欣赏、用户身份认证。通过让NetBIOS(Windows网络邻居的通讯协议)和SMB(Server Messege Block)两个协议运行于TCP/IP通讯协议之上实现文件共享,并且利用NetBEUI协议,可以让Windows通过网络邻居看到Linux办事器。

①NetBIOS协议。NetBIOS是一个对话层通讯办事,通过一种大众的要领为访问提提供用步调,并且对整个网络提供办事。它是一个针对怎样访问数据的典范,拜托更低一级的协议,如NetBEUI或TCP/IP等,提供实际传输办事的。NetBIOS典范把协议分成三种办事:名字办事、对话办事、数据报办事。名字办同族儿要校验该NetBIOS名字是唯一的,删除不再须要的NetBIOS名字,在NetBIOS名字底子上确定办事器的网络地点;对话办事在两个应用步调之间,提供超过跨过NetBIOS网络的实现通讯通道;数据报办事提供广播信息或在应用步调之间发送信息而无需应答。

由于NetBIOS和TCP/IP在主机定名方面利用的是完全差别的体系,前者以字符为底子,后者以数据为底子,以是必须把每个NetBIOS名字与IP地点举行结婚。Samba利用TCP/IP协议来传输NetBIOS,把NetBIOS名字阐发或IP地点,通常通过三种结婚要领:第一种是把每个对IP地点的恳求广播到节点名字阐发的原始NetBIOS,依赖于每个客户机和办事器,通过网络去探求对方;第二种利用本地文件,并加载进入高速缓冲存储器,以便每个客户机可以相识哪个名字阐发成哪个IP地点;第三种利用NetBIOS名字办事(NBNS),一个NBNS是一此中间主机,它为一个变乱组存储NetBIOS名字以及与其相映射的IP地点列表,因此,每个变乱组上的NetBIOS节点都可以向NBNS恳求为它们把名字阐发成IP地点。

②SMB协议。SMB协议是一个通过网络提供并得到资源的协议,依赖于NetBIOS举行名字阐发,为网络上利用资源提供一个标准的接口。SMB协议对办事器定义了两种沉寂模式:共享级和用户级。

共享级办事器在硬盘配置上创建了一些可被访问的目次,用户须要一个暗码来得到访问权。因此,网络上的恣意用户只要知道办事器的名字、资源的名字以及暗码就可以访问资源了。共享级办事器通过对同一个资源设置差别的暗码,控制用户的访问权限。

用户级办事器在硬盘配置上创建可被访问的目次,须要用户提供用户名及相应的暗码来得到访问权。NT办事器和LM/U办事器采取这种要领而不支持共享级访问。相对共享级模式,用户级更容易办理用户。

(2)Samba的配置

一个Samba办事器实际包括了两个办事器步调:smbd和nmbd。Smbd是Samba的内核,认真创建对话进程、验证用户身份、提供对文件体系和打印机的访问机失;nmbd实际网络欣赏办事器的结果,作用是对外颁发Samba办事器可以提供的办事。Nmbd可以使Samba办事器出如今Windows95或WindowsNT的“Network Neighborhood”(网络邻居)中,并且客户机可欣赏到Samba办事器所共享的资源。启动Samba办事器进程时,可以完全不运行nmbd,如许客户只能看到Samba办事器的NetBIOS名字,看不到Samba办事器所提供的些办事。

在Samba的软件包中存在一个smb.conf配置文件,其布局雷同于Windows的*.ini文件。RedHat和Debian中,smb.conf文件的缺省位置是在/etc/下,全部的Samba步调都要参照这个配置文件。整个配置文件分为三节:[global]、[home]、[printers]。[global]节设置全局选项和一些缺省的办事选项;[home]节用来动态地映射到每个用户的home目次下;[printers]节用来设置将根据体系printcap文件配置的打印机共享至指定用户。此中每一节中的配置参数都是一个全局参数或是一个办事参数,全局参数影响或控制整个办事器,办事参数影响或控制办事器提供的某项办事。Samba的配置文件见网络补充版。

办理员可通过Samba的一些下令来办理用户及用户的访问权限,如添加用户、删除用户、变革目次的访问权限,也中直接修改smb.conf举行办理。

2.3 差别布局网络之间文件共享的实现

(1)NFS协议简介

NFS网络文件体系是由Sun Microsystems公司最早实现的,用于在差别的利用体系、差别的网络布局及差别的传输协议之间共享文件。NFS协议组包括NFS、RPC、XDR。NFS本身没提供别的步调可调用的进程,它通过长途进程调用和通用外部数据表现来实现。长途进程调用为长途办事提供一个接口,包括主机地点、步调号及一个远端进程的进程号,而外部数据表现提供了一套通过网络形貌数据典范的要领。

在差别的利用体系中,文件体系的办理要领差别,敷衍目次树的深度、名字的利用以及路径的表现要领也都有差别的规定。有些利用体系的文件体系处于特定的目次下面,而有些利用体系用mount利用使全部的文件体系看起来在一个单独的目次下。只管目次和文件在很多方面都比较雷同,但是访问它们却须调用差别的步调,因此,NFS假定文件体系是分等级的,并且文件处于最低等级,NFS为目次提供一个标准的网络格局以便访问。在长途调用中,每次调用只返回一个目次,如许办理了差别文件体系之间布局差别的标题。

(2)NFS办事的配置

NFS办事器利用了5个保卫进程来提供NFS办事。最底子的提供NFS办事的体系至少要运行nfsd用于处理惩罚处罚NFS协议,而mountd用于处理惩罚处罚客户的mount恳求。别的,由于NFS利用RPC长途调用,别的三个RPC保卫进程portmap、rpc_lockd、rpc_statd可以用来资助提供更高效的办事。为了使别的体系也能利用Linux体系上的硬盘空间,在体系启动时,应加载NFS的保卫进程。这须要在rc.conf中变动相应关的参数:nfs_server_enable、rpc_statd_enable、rpc_lockd.enable和portmap_enable,这些参数映射相应的保卫进程。如许,体系启动之后就具备了能共享文件的本领 ,接下来的变乱是通过变动/etc/exports文件来设置须要共享的目次以及这些目次的访问权了,以包管其沉寂性。Exports文件的设置如下:

/usr/src/sys-maproot=guest1 ns host2

/usr/ports-ro-network 202.114.1.0

在这里我们利用绝对路径的要领定义了两个共享目次—/usr/src/sys和/usr/ports,并且对这两个目次的访问权限分别作了差别的限定,以包管其沉寂性。敷衍第一个目次,限定了客户机上的root用户等价于本机上的guest1用户,以克制客户机上的root用户拥有这个办事器上的root权利,举行非法利用,以后的ns和host2参数是主机名,只有ns和host2才华共享这个/usr/sys/src目次。第二行设置共享了/usr/ports目次,限定为只容许读取,并且也只有202.114.1.0网络上的谋略机才华访问这个共享目次。在变动了exports文件之后,向mountd进程发送一个SIGHUP信号,使其重读exports文件的内容,如许关于exports文件的设置才开始见效。

结语

本文提出了一个网络存储器的底子办理方案,实现了网络存储器的底子结果。整个别系易于摆设,具有可靠性较高,跨平台、跨网络的长处;同时也存在着一些不敷的地方,比如对用户、磁盘的办理不太方便,这些可通过数据库技能加以改革。