新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 智能網絡磁盤IND軟件設計與實現

        智能網絡磁盤IND軟件設計與實現

        作者: 時間:2006-10-13 來源:網絡 收藏

        摘 要:提出一種新型的存儲技術,適用于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所示。軟件負責接受請求、請求調度、數據分布管理及數據定位等功能;VFS為虛擬文件系統,為不同的邏輯文件系統提供統一的接口;ROMFS和Ext2為邏輯文件系統。塊設備驅動程序為不同的塊設備提供一個統一的接口,并負責塊設備數據緩存功能;ATA接口驅動程序提供標準的AT總線接口驅動程序;TCP/IP協議和802.3協議組成一個協議棧,使設備可用于以太網,數據可經過Internet傳送;網絡設備經過8019AS芯片連接,為此提供了RTL8019AS芯片驅動程序。


        軟件模塊響應用戶的讀請求和寫請求,按照先來先服務策略調度請求,統一管理數據在磁盤上的分布視圖。每當有連接請求時,軟件模塊就要生成一個輕量級進程,響應連接請求,并根據請求的元數據,決定文件的存儲和讀取集合。客戶與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嵌入式開發板上實現了智能網絡磁盤。客戶端在訪問智能網絡磁盤時,速度還有待進一步提高。這可以從改善網絡環境,提高網卡的速度著手,對客戶端請求的調度策略也可以作為一個方面的研究,其他的功能模塊還需要繼續添加。相信智能網絡磁盤對企業來說是一個好的解決存儲設備問題的方案。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 澎湖县| 绥滨县| 庄浪县| 富顺县| 凭祥市| 巴南区| 诸城市| 罗城| 洪雅县| 杭锦旗| 西充县| 惠水县| 临江市| 宜良县| 田林县| 富阳市| 湖南省| 秦皇岛市| 湖北省| 天等县| 洪江市| 双峰县| 凉城县| 玛纳斯县| 松阳县| 宁南县| 长顺县| 黑河市| 双城市| 舞阳县| 通榆县| 合江县| 苏尼特左旗| 济源市| 四子王旗| 微山县| 连南| 广德县| 色达县| 扶绥县| 双峰县|