基于EP9315的附網(wǎng)絡(luò )存儲NAS系統設計
NAS系統是一個(gè)具有專(zhuān)一功能的網(wǎng)絡(luò )存儲系統,可實(shí)現與網(wǎng)絡(luò )設備直接連接,使客戶(hù)機與存儲器之間直接傳送數據;結合具有開(kāi)放式、強大和穩定的網(wǎng)絡(luò )性能的嵌入式Linux操作系統,內置與網(wǎng)絡(luò )連接所需的協(xié)議,能實(shí)現低成本、即插即用、管理和設置簡(jiǎn)單的存儲系統。
1 系統結構
NAS系統把存儲設備和網(wǎng)絡(luò )接口集成在一起,直接通過(guò)網(wǎng)絡(luò )存取數據,使其成為專(zhuān)用的網(wǎng)絡(luò )文件存儲及文件備份設備。因此,一個(gè)基本的NAS系統應包括基本的硬件設備、接口,操作系統,網(wǎng)絡(luò )通信和上層應用程序4個(gè)部分。
在硬件方面,系統采用32位的嵌入式微處理器EP9315作為主CPU。由于EP9315集成1/10/100 Mbps的以太網(wǎng)LAN控制器,因此只需外接物理層(PHY)接口芯片,即可實(shí)現穩定、高效率的以太網(wǎng)接入。在操作系統方面,作為一個(gè)只需要實(shí)現網(wǎng)絡(luò )存儲和文件管理的系統,應該采用面向存儲的專(zhuān)用操作系統?;贚inux強大和穩定的網(wǎng)絡(luò )功能、源代碼的開(kāi)放性,系統選用嵌入式Linux作為NAS的操作系統;通過(guò)對Linux的裁剪,去掉許多通用的功能,能大大提高設備的性能。
網(wǎng)絡(luò )通信方面: 由于NAS服務(wù)器采用Linux操作系統,客戶(hù)機PC一般都是Windows系統,Linux系統支持TCP/IP協(xié)議,但是不支持NetBIOS(Network Basic Input and Output System),因此兩者之間的通信需要一個(gè)中介。本系統利用Samba來(lái)實(shí)現個(gè)功能。
在應用程序方面:NAS設備的遠程訪(fǎng)問(wèn)和管理以及數據傳輸,都需要相應的應用程序來(lái)支持;否則,即使將NAS接入網(wǎng)絡(luò )中,對用戶(hù)來(lái)說(shuō)它也只是個(gè)無(wú)法訪(fǎng)問(wèn)的“黑箱”。本系統的應用程序實(shí)現了硬盤(pán)管理、用戶(hù)和組管理、網(wǎng)絡(luò )配置、系統時(shí)間設置、網(wǎng)絡(luò )共享管理等。NAS系統設計框圖如圖1所示。
2 系統硬件設技
系統采用Cirrus Logic公司的ARM9系列的32位微處理器EP9315作為主控制器。
2.1 EP9315主要特性介紹[2]
EP9315內嵌先進(jìn)的運行于200 MHz的ARM920T微處理器內核,內核工作電壓為1.8 V,輸入/輸出電壓為3.3 V;內部集成了一個(gè)高性能的1/10/100 Mbps以太網(wǎng)媒體訪(fǎng)問(wèn)控制器(MAC),通過(guò)與支持MII接口的外置PHY(物理層接口)簡(jiǎn)單連接,系統即可實(shí)現高性能、低開(kāi)銷(xiāo)的Internet訪(fǎng)問(wèn)功能。
EP9315的IDE接口可以支持與兩個(gè)ATAPI工業(yè)標準兼容設備的連接,支持主模式和從模式,其內部的DMA控制器支持Multiword DMA和Ultra DMA模式的數據傳輸。EP9315的其他特性還有:通用存儲器接口(SDRAM、SRAM、ROM和Flash),Raster/LCD接口,帶12位A/D轉換器的觸摸屏接口,鍵盤(pán)接口,UART接口,3通道USB2.0全速主口,12通道DMA控制器等。其豐富的外圍接口大大降低了系統開(kāi)發(fā)費用。
2.2 硬件電路
NAS系統主要硬件結構框圖如圖2所示[3]。
其中主要部分功能描述如下:
復位電路 實(shí)現系統上電復位和在系統工作時(shí)用戶(hù)按鍵復位。電源電路 為12 V—5 V、5 V—3.3 V和5 V—1.8 V的電壓轉換。IDE硬盤(pán)需要12 V電壓,EP9315微處理器的內核工作電壓為1.8 V,其片內功能模塊的工作電壓為3.3 V,電壓轉換采用7805和LM1117系列轉換器實(shí)現。電源管理系統功能框圖如圖3所示。
RS232接口電路 用于與上位PC機的串口通信,通過(guò)串口實(shí)現對操作系統的開(kāi)發(fā)、調試。在系統的初始狀態(tài),EEPROM和Flash存儲器均為空,此時(shí)需要設置系統啟動(dòng)配置模式為16位串行啟動(dòng),以把初始化代碼寫(xiě)到Flash中。
JTAG調試接口 可對芯片內部的所有部件進(jìn)行訪(fǎng)問(wèn),通過(guò)該接口對系統進(jìn)行軟、硬件調試和編程,進(jìn)行應用程序的開(kāi)發(fā)、調試。
Flash存儲器 用于存放用戶(hù)應用程序、嵌入式Linux操作系統以及其他在系統掉電后需要保存的用戶(hù)數據等。
SDRAM存儲器 為系統程序的運行空間,系統及用戶(hù)數據、堆棧均位于SDRAM存儲器中。
EIDE接口 用于實(shí)現IDE硬盤(pán)的接入。
1/10/100 Mbps以太網(wǎng)物理層接口 為系統提供以太網(wǎng)接入的物理通道。本系統通過(guò)該接口接上以太網(wǎng)物理層接口芯片KS8721BL,來(lái)實(shí)現高速的以太網(wǎng)接入,大大簡(jiǎn)化了系統的硬件電路設計。
3 NAS系統的軟件設計
當完成系統的硬件設計與調試以后,接下來(lái)的就是嵌入式Linux操作系統的移植以及NAS應用程序的開(kāi)發(fā)。NAS系統的軟件主要包括嵌入式Linux操作系統,設備驅動(dòng)程序、文件共享協(xié)議及應用程序。NAS系統軟件的體系結構如圖4所示。
作為一個(gè)NAS系統,整個(gè)系統中必須有一個(gè)核心操作系統,作為對硬件的管理,軟件的協(xié)調執行,并對外部調用提供 API。在核心操作系統之上是外部硬件設備驅動(dòng)程序,使硬件能正常工作,為系統的正常運行提供基本條件。因為 NAS主要是實(shí)現網(wǎng)絡(luò )存儲,所以要更多地考慮對網(wǎng)絡(luò )和存儲兩方面功能的支持,在設備驅動(dòng)之上是對一些基本網(wǎng)絡(luò )協(xié)議的支持和對專(zhuān)用網(wǎng)絡(luò )存儲服務(wù)器進(jìn)行網(wǎng)絡(luò )數據訪(fǎng)問(wèn)的文件共享協(xié)議(SMB)的支持,使Windows、Linux用戶(hù)都能對NAS設備進(jìn)行訪(fǎng)問(wèn)。最上層是應用程序模塊,提供UI(User Interface),實(shí)現對NAS的配置和管理。
3.1 嵌入式Linux操作系統
3.1.1 嵌入式系統的Bootloader
上面的軟件體系結構圖沒(méi)有單獨列出初始化代碼Bootloader,但它是嵌入式系統重要的一部分。對任何計算機系統來(lái)說(shuō),系統的啟動(dòng)都有一個(gè)初始化的過(guò)程,嵌入式系統也不例外。本嵌入式系統采用Redboot作為系統的Bootloader。Redboot是一個(gè)采用eCos開(kāi)發(fā)的程序,是目前比較流行的一個(gè)功能強大、可移植性強的Bootloader[4]。
移植到本系統的Redboot除了具有一般Bootloader的硬件初始化和引導內核功能外,還具有以下功能:引導腳本以方便啟動(dòng)Linux操作系統,命令行接口,串行和網(wǎng)絡(luò )通信協(xié)議,內嵌GDB stub以支持GDB調試,支持Flash映像文件系統,通過(guò)BOOTP協(xié)議支持網(wǎng)絡(luò )引導,也可配置靜態(tài)IP。Redboot是建立在eCos系統上的一個(gè)獨立的最小系統,可通過(guò)eCos系統提供的配置工具(比如圖形化的Configtool)對Redboot進(jìn)行源代碼級別的裁剪配置。
3.1.2 嵌入式Linux的移植
由于嵌入式設備沒(méi)有足夠的內存和存儲資源來(lái)完成編譯過(guò)程,通常的方法是在主機上完成針對目標機的代碼編譯。這樣的工具就是交叉編譯工具,交叉編譯工具集有專(zhuān)門(mén)的網(wǎng)站可以下載,并下載針對不同ARM處理器的Linux內核移植補丁。本系統采用Linux2.4.21的內核,采用的交叉編譯工具集合為cross2.95.3。
嵌入式Linux是在標準的Linux基礎上,經(jīng)過(guò)適當的簡(jiǎn)化、裁剪,加入一些特定的功能,形成一個(gè)精巧、高效、滿(mǎn)足特定應用需求的專(zhuān)用(定制)操作系統。它具有用戶(hù)可裁剪、可配置的特點(diǎn)。NAS系統最重要的是存儲,通過(guò)對Linux的裁剪,去掉許多通用的功能,使其成為一個(gè)專(zhuān)用于存儲、精簡(jiǎn)、高
Cirrus Logic公司已為內核寫(xiě)好了針對EP9315微處理器的補丁,加上這個(gè)補丁的內核就是一個(gè)能運行在基于EP9315微處理器系統上的版本,接下來(lái)就可以在此基礎上進(jìn)行內核的配置與編譯。通過(guò)不斷的配置、編譯,產(chǎn)生合適的嵌入式Linux內核,使之在功能和大小之間取得優(yōu)化的結果,以滿(mǎn)足本系統的需要。
3.2 Linux設備驅動(dòng)程序開(kāi)發(fā)
嵌入式系統的差異性決定了系統開(kāi)發(fā)者不但需要進(jìn)行特定硬件的設計,同時(shí)需要編寫(xiě)相關(guān)的設備驅動(dòng)程序,它是內核用于完成對物理設備的控制操作的功能模塊。除了CPU、內存以及其他很少的幾個(gè)部分之外,所有的設備控制操作都必須由被控設備相關(guān)的代碼,也就是驅動(dòng)程序來(lái)完成[5]。
在Linux中,將各種設備大致分為3種基本類(lèi)型:字符設備、塊設備及網(wǎng)絡(luò )設備。其中,字符設備是指采用字符流方式訪(fǎng)問(wèn)的設備,如字符終端、串口。對應的字符設備驅動(dòng)的接口是標準的文件系統調用接口。
塊設備是采用數據塊方式訪(fǎng)問(wèn)的設備,如IDE硬盤(pán)等。由于塊設備通常都提供文件系統支持,因此常用的設備訪(fǎng)問(wèn)方式是通過(guò)文件來(lái)進(jìn)行的。字符設備和塊設備在Linux中都被看成是一種特殊的文件,稱(chēng)為“設備文件”。由于每個(gè)設備都至少由文件系統中的一個(gè)文件來(lái)代表,這樣的設備文件在系統中就唯一確定了對應的設備。網(wǎng)絡(luò )設備是采用數據包傳輸方式訪(fǎng)問(wèn)的設備。與前兩者不同,Linux采用的方法是給它們分配一個(gè)唯一的名字(比如eth0);同時(shí),內核和網(wǎng)絡(luò )設備驅動(dòng)間的通信采用了一套與數據包傳輸相關(guān)的函數,如最常見(jiàn)的套接字(socket)接口。網(wǎng)絡(luò )設備通過(guò)ifconfig系統調用來(lái)創(chuàng )建和配置。
其他的還有一些驅動(dòng)程序不屬于以上3類(lèi),比如USB等總線(xiàn)驅動(dòng)。它們一般是作為內核提供的公共服務(wù),和其他驅動(dòng)聯(lián)合起來(lái)使用。
3.3 文件共享協(xié)議
由于NAS服務(wù)器采用Linux操作系統,客戶(hù)機PC一般都是Windows系統,而Windows和Linux平臺之間的文件格式是完全不同的,因此Linux不能對Windows用戶(hù)直接提供基本服務(wù)。本系統通過(guò)應用SMB協(xié)議實(shí)現這種功能[6]。Samba是一套使用SMB(Server Message Block)協(xié)議的應用程序,通過(guò)支持這個(gè)協(xié)議,Samba允許Linux服務(wù)器與Windows PC機之間進(jìn)行通信。本系統采用的Samba的版本為samba3.0.20b。
在開(kāi)發(fā)過(guò)程中,需要在Linux服務(wù)器上進(jìn)行所有的軟件開(kāi)發(fā)。本系統通過(guò)建立網(wǎng)絡(luò )文件系統(Network File System,NFS),把Linux服務(wù)器上的特定分區共享到目標系統上,實(shí)現在目標系統上操作Linux服務(wù)器和在線(xiàn)對程序進(jìn)行調試和修改。
3.4 NAS系統應用程序設計
NAS設備本身一般沒(méi)有顯示器、鍵盤(pán)、鼠標等這些與交互的外設,那么通過(guò)什么途徑使系統管理員完成對這樣一個(gè)“黑箱”的配置和管理呢?NAS系統應用程序的設計主要就是要實(shí)現對“黑箱”的配置和管理?;?nbsp;Web(Webbased)的管理是目前在 NAS系統管理中用得最多、最方便的方式之一。本系統實(shí)現的功能如下:
① 硬盤(pán)管理。系統可掛載IDE、USB硬盤(pán),支持VFAT/EXT2/EXT3文件系統,每個(gè)分區能有獨立的文件系統。
② 用戶(hù)和組管理。支持用戶(hù)和組的增加、修改、刪除。一個(gè)用戶(hù)可以是幾個(gè)不同組的成員。
③ 網(wǎng)絡(luò )配置。局域網(wǎng)中如果有DHCP服務(wù)器就無(wú)需設置IP地址,否則,通過(guò)超級終端,在串口控制命令行設置IP、DNS等。
④ 系統時(shí)間設置。系統時(shí)間可以手動(dòng)設置,也可以通過(guò)NTP服務(wù)自動(dòng)同步。
⑤ 網(wǎng)絡(luò )共享管理。包括共享名設置、屬性、共享路徑、有效用戶(hù)設置,是否可寫(xiě)操作等。
本項目基于EP9315實(shí)現了一個(gè)基本的NAS系統,加以完善就可以作為中小型用戶(hù)的存儲系統方案。通過(guò)本項目,便于開(kāi)發(fā)者對ARM9微處理器和嵌入式開(kāi)發(fā)作更深入的實(shí)踐研究,推廣了ARM微處理器更廣泛的應用。
tcp/ip相關(guān)文章:tcp/ip是什么
評論