<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 智能網(wǎng)絡(luò)磁盤(pán)IND軟件設(shè)計(jì)與實(shí)現(xiàn)

          智能網(wǎng)絡(luò)磁盤(pán)IND軟件設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2006-10-13 來(lái)源:網(wǎng)絡(luò) 收藏

          摘 要:提出一種新型的存儲(chǔ)技術(shù),適用于TCP/IP通信。該技術(shù)可有效地解決存儲(chǔ)設(shè)備單點(diǎn)失效問(wèn)題,提高了數(shù)據(jù)吞吐率,易于擴(kuò)展容量。結(jié)合嵌八式技術(shù)的發(fā)展,詳細(xì)討論的數(shù)據(jù)訪問(wèn)模塊的結(jié)構(gòu)和關(guān)鍵技術(shù),并通過(guò)在S3C44BOX開(kāi)發(fā)板上移植uCIinux操作系統(tǒng)和開(kāi)發(fā)應(yīng)用,網(wǎng)絡(luò)磁盤(pán)的數(shù)據(jù)訪問(wèn)功能。
          關(guān)鍵詞:網(wǎng)絡(luò)磁盤(pán) ARM S3C44BOX uClinux

          引 言
          在過(guò)去的20年里,存儲(chǔ)系統(tǒng)的發(fā)展速度一直較慢。盡管IDE技術(shù)、SCSI技術(shù)的發(fā)展提供了更有效的數(shù)據(jù)傳輸、更快的磁盤(pán)驅(qū)動(dòng)和更大的磁盤(pán)容量,但是存儲(chǔ)系統(tǒng)仍然是作為服務(wù)器的附屬設(shè)備,沒(méi)有擺脫服務(wù)器/存儲(chǔ)系統(tǒng)的模式,服務(wù)器單點(diǎn)失效及瓶頸問(wèn)題依然存在。吉比特以太網(wǎng)和Fibre Channel技術(shù)的出現(xiàn),使服務(wù)器和存儲(chǔ)系統(tǒng)作為對(duì)等的實(shí)體存在于網(wǎng)絡(luò)上成為可能,存儲(chǔ)系統(tǒng)不再依附于服務(wù)器,服務(wù)器的失效不會(huì)導(dǎo)致對(duì)存儲(chǔ)系統(tǒng)上數(shù)據(jù)訪問(wèn)的失效。

          所謂的智能網(wǎng)絡(luò)磁盤(pán)1ND(Intelligent NetworkDisk),不是直接連在個(gè)人計(jì)算機(jī)上,而是通過(guò)網(wǎng)絡(luò)接口連接在網(wǎng)絡(luò)上,用戶(hù)可通過(guò)文件屬性來(lái)訪問(wèn)文件數(shù)據(jù)。智能網(wǎng)絡(luò)磁盤(pán)向用戶(hù)提供統(tǒng)一的接口,利用元數(shù)據(jù)為用戶(hù)提供面向集合的數(shù)據(jù)視圖。在物理上,同一集合的數(shù)據(jù)可能分布在不同的智能網(wǎng)絡(luò)磁盤(pán)上。存儲(chǔ)時(shí)根據(jù)元數(shù)據(jù)決定數(shù)據(jù)的存儲(chǔ)位置;響應(yīng)數(shù)據(jù)訪問(wèn)請(qǐng)求根據(jù)所存儲(chǔ)的元數(shù)據(jù)定位數(shù)據(jù)的具體存儲(chǔ)位置,然后向用戶(hù)發(fā)送數(shù)據(jù)。智能網(wǎng)絡(luò)磁盤(pán)可以分為系統(tǒng)和應(yīng)用軟件兩大部分;系統(tǒng)軟件包括TCP/IP協(xié)議棧、文件系統(tǒng)、驅(qū)動(dòng)程序等幾個(gè)部分。應(yīng)用軟件包括數(shù)據(jù)訪問(wèn)模塊、數(shù)據(jù)定位模塊、元數(shù)據(jù)管理模塊及數(shù)據(jù)緩存模塊等。數(shù)據(jù)訪問(wèn)模塊經(jīng)過(guò)虛擬文件系統(tǒng)訪問(wèn)存儲(chǔ)在存儲(chǔ)介質(zhì)上的數(shù)據(jù);數(shù)據(jù)定位模塊根據(jù)元數(shù)據(jù)定位數(shù)據(jù)具體的存放位置;元數(shù)據(jù)管理模塊負(fù)責(zé)元數(shù)據(jù)的有效性;數(shù)據(jù)緩存模塊提供訪問(wèn)數(shù)據(jù)的緩存機(jī)制。企業(yè)通過(guò)使用智能網(wǎng)絡(luò)磁盤(pán),既可以提高企業(yè)內(nèi)部公共數(shù)據(jù)存儲(chǔ)空間,方便數(shù)據(jù)共享和管理,又可以減少為了增加存儲(chǔ)空間而增加服務(wù)器所花費(fèi)的代價(jià);另一方面,企業(yè)可以減少每臺(tái)個(gè)人計(jì)算機(jī)的存儲(chǔ)空間,加大智能網(wǎng)絡(luò)磁盤(pán)的空間或數(shù)量,從整體上降低企業(yè)為存儲(chǔ)所花費(fèi)的代價(jià)。

          下面詳細(xì)介紹智能網(wǎng)絡(luò)磁盤(pán)的數(shù)據(jù)訪問(wèn)模塊及系統(tǒng)軟件部分。

          1 硬件
          智能網(wǎng)絡(luò)磁盤(pán)硬件的核心是Samsung公司的S3C44BOX微處理器。S3C44BOX微處理器主頻為66 MHz,采用ARM7TDMI內(nèi)核,支持16位的Thumb指令集和32位的ARM指令集;支持8個(gè)32 MB的存儲(chǔ)體地址空間。為了降低成本,SaC44BOX提供了豐富的片上設(shè)備,包括8 KB Cache、SRAM、LCD控制器、2通道UART、4通道DMA、系統(tǒng)管理器(片選邏輯、FP/EDO/SDRAM控制器)、帶PWM功能的5通道定時(shí)器、1個(gè)內(nèi)部定時(shí)器、I/O端口、RTC、8通道10位ADC、12C總線接口、12S總線接口、同步SIO接口和PLL倍頻器。在片外為S3C44BOX微處理器增加了2 MB F1ash、8 MB SDRAM、1個(gè)IDE接口和1個(gè)RTL8019AS以太網(wǎng)通信芯片。Flash主要用于存放BootLoader程序、uClinux內(nèi)核映像、ROMFS文件系統(tǒng)和應(yīng)用程序。智能網(wǎng)絡(luò)磁盤(pán)采用IDE接口硬盤(pán)作為存儲(chǔ)介質(zhì)。普通IDE接口硬盤(pán)數(shù)據(jù)傳輸速率為133 Mbps,遠(yuǎn)遠(yuǎn)比磁帶機(jī)快,有利于數(shù)據(jù)傳輸;固態(tài)存儲(chǔ)器盡管存儲(chǔ)速度快,但其昂貴的價(jià)格使其在目前仍不適于海量數(shù)據(jù)存儲(chǔ)。S3C44BOX開(kāi)發(fā)板的原理框圖如圖1所示。

          S3C44BOX微處理器提供25位的地址總線Addr0~Addr24,提供16位的數(shù)據(jù)總線data0~datal5,因此SaC44BOX支持的最大存儲(chǔ)體空間為32 MB。IDE硬盤(pán)與內(nèi)存之間按照DMA方式進(jìn)行數(shù)據(jù)傳送,而以太網(wǎng)卡與內(nèi)存之間采用中斷方式進(jìn)行數(shù)據(jù)傳送。對(duì)于S3C44BOX微處理器,SDRAM安排于第6個(gè)或第7個(gè)bank,地址分別OxOc000000或OxOc800000開(kāi)始。ATA接口位于第2個(gè)bank內(nèi),而以太網(wǎng)接口位于第1個(gè)bank內(nèi)。

          2 軟件
          智能網(wǎng)絡(luò)磁盤(pán)系統(tǒng)軟件功能模塊如圖2所示。軟件負(fù)責(zé)接受請(qǐng)求、請(qǐng)求調(diào)度、數(shù)據(jù)分布管理及數(shù)據(jù)定位等功能;VFS為虛擬文件系統(tǒng),為不同的邏輯文件系統(tǒng)提供統(tǒng)一的接口;ROMFS和Ext2為邏輯文件系統(tǒng)。塊設(shè)備驅(qū)動(dòng)程序?yàn)椴煌膲K設(shè)備提供一個(gè)統(tǒng)一的接口,并負(fù)責(zé)塊設(shè)備數(shù)據(jù)緩存功能;ATA接口驅(qū)動(dòng)程序提供標(biāo)準(zhǔn)的AT總線接口驅(qū)動(dòng)程序;TCP/IP協(xié)議和802.3協(xié)議組成一個(gè)協(xié)議棧,使設(shè)備可用于以太網(wǎng),數(shù)據(jù)可經(jīng)過(guò)Internet傳送;網(wǎng)絡(luò)設(shè)備經(jīng)過(guò)8019AS芯片連接,為此提供了RTL8019AS芯片驅(qū)動(dòng)程序。


          軟件模塊響應(yīng)用戶(hù)的讀請(qǐng)求和寫(xiě)請(qǐng)求,按照先來(lái)先服務(wù)策略調(diào)度請(qǐng)求,統(tǒng)一管理數(shù)據(jù)在磁盤(pán)上的分布視圖。每當(dāng)有連接請(qǐng)求時(shí),軟件模塊就要生成一個(gè)輕量級(jí)進(jìn)程,響應(yīng)連接請(qǐng)求,并根據(jù)請(qǐng)求的元數(shù)據(jù),決定文件的存儲(chǔ)和讀取集合??蛻?hù)與IND智能網(wǎng)絡(luò)磁盤(pán)之間采用無(wú)狀態(tài)連接,以減小客戶(hù)與網(wǎng)絡(luò)磁盤(pán)之間連接的復(fù)雜性。當(dāng)打開(kāi)一個(gè)網(wǎng)絡(luò)磁盤(pán)文件時(shí),數(shù)據(jù)以一個(gè)臨時(shí)文件的形式存放在本地系統(tǒng)上,以后的操作都是對(duì)本地的臨時(shí)文件進(jìn)行操作,打開(kāi)完畢后,網(wǎng)絡(luò)磁盤(pán)上相應(yīng)的文件對(duì)象自動(dòng)關(guān)閉,響應(yīng)進(jìn)程死亡。在關(guān)閉文件的時(shí)候,如果文件被修改過(guò),則寫(xiě)回網(wǎng)絡(luò)磁盤(pán),并且刪除掉本地的臨時(shí)文件;如果文件沒(méi)有經(jīng)過(guò)修改'則不用進(jìn)行回寫(xiě)操作,只在本地刪除掉臨時(shí)文件即可。一般情況下,打開(kāi)文件時(shí)要建立一次連接,而關(guān)閉文件時(shí)可能要建立一次連接,也可能不要。目錄是一種特殊的文件,按照普通文件進(jìn)行處理。

          目前,系統(tǒng)只支持兩種文件系統(tǒng)ROMFS和Ext2。ROMFS是一個(gè)小型的ROM文件系統(tǒng),只能讀不能寫(xiě)。它包含了需要在uClinux上運(yùn)行的應(yīng)用程序,在uClinux操作系統(tǒng)編譯期間被包含進(jìn)uClinux二進(jìn)制代碼中。Ext2文件系統(tǒng)安裝于ROMFS文件系統(tǒng)的/var目錄上。系統(tǒng)運(yùn)行以后,ROMFS文件系統(tǒng)和ext2文件系統(tǒng)在內(nèi)存中的邏輯關(guān)系如圖3所示。帶“*”號(hào)的為Ext2文件系統(tǒng)對(duì)象,不帶“*”的為ROMFS文件系統(tǒng)對(duì)象。


          網(wǎng)絡(luò)通信采用TCP/IP協(xié)議和802.3協(xié)議。以太網(wǎng)已從一個(gè)共享的、低速的拓?fù)浣Y(jié)構(gòu)發(fā)展成為一種高性能的吉比特交換傳輸技術(shù),采用以太網(wǎng)技術(shù)有利于網(wǎng)絡(luò)磁盤(pán)向吉比特以太網(wǎng)上移植。TCP/IP協(xié)議是一種開(kāi)放式的網(wǎng)絡(luò)互聯(lián)協(xié)議,兼容性強(qiáng),普及程度高,數(shù)據(jù)可以通過(guò)Intemet傳輸。

          3 智能網(wǎng)絡(luò)磁盤(pán)系統(tǒng)軟件的
          智能網(wǎng)絡(luò)磁盤(pán)采用uClinux作為操作系統(tǒng)。uClinux是專(zhuān)為不帶MMU的CPU而設(shè)計(jì)的嵌人式Linux操作系統(tǒng),具有以下優(yōu)點(diǎn):第一,其源碼在GNU公共許可證下是開(kāi)放的,任何人都可以自由使用和研究;第二,uClinux采用模塊化設(shè)計(jì),具有很強(qiáng)的可裁減性,用戶(hù)可以根據(jù)自己的需要增加或裁減功能模塊;第三,uClinux功能強(qiáng)大,支持多任務(wù)操作、TCP/IP協(xié)議棧、多種文件系統(tǒng)等功能;第四,uClinux可移植性強(qiáng),已經(jīng)成功地移植到各種CPU平臺(tái)上.像S3C44BOX、Motorola MC68000、MCF5206和MCF5207ColdFire等;第五,uClintlx還有1個(gè)與之相兼容的小型C語(yǔ)言庫(kù)uClihc,它與GNUC語(yǔ)言庫(kù)glibc兼容,方便用戶(hù)開(kāi)發(fā)應(yīng)用程序。目前,uClinux支持3個(gè)Linux內(nèi)核版本,分別為2.O.x、2.4.x和2.6.x,本設(shè)計(jì)采用的是2.4.xLinux內(nèi)核。該內(nèi)核與IEEE POSIX標(biāo)準(zhǔn)兼容,使得大部分開(kāi)源代碼不經(jīng)過(guò)修改,只需要簡(jiǎn)單編譯一下就可以移植到目標(biāo)平臺(tái)上。

          在實(shí)現(xiàn)智能網(wǎng)絡(luò)磁盤(pán)時(shí),先開(kāi)發(fā)了基于S3C44BOX微處理器的系統(tǒng)電路板,然后將uClinux操作系統(tǒng)移植到本電路板上,最后編寫(xiě)IND軟件。下面主要介紹uClinux操作系統(tǒng)的移植過(guò)程和uClinux操作系統(tǒng)的引導(dǎo)過(guò)程。

          在移植uClinux操作系統(tǒng)時(shí),先要得到一個(gè)完整的uClinux操作系統(tǒng)源碼,既可以從網(wǎng)站上下載一個(gè)完整的uClinux光盤(pán),也可以從網(wǎng)站上下載必要的源碼,如Linux內(nèi)核、uClinux補(bǔ)丁程序、uClibc和所需的應(yīng)用程序源碼。我們下載的是uClinuX_dist一20041215.tar光盤(pán),其中包含對(duì)s3C44BOX的支持。其次是要建立交叉編譯開(kāi)發(fā)環(huán)境。針對(duì)電路板所產(chǎn)生的部分配置內(nèi)容如下:
          #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

          從以上內(nèi)容可以看出,F(xiàn)lash位于S3C44BOX的第0個(gè)Bank,地址從Ox00000000到0x00200000,容量為2MB。SDRAM位于第6個(gè)Bank,地址從Oxoc000000到0xOc800000,容量為8 MB。S3C44BOX工作頻率為60 MHz,串口采用S3C44BOx片上的一個(gè)UART,并在該串口上支持控制臺(tái)功能,使得uClinux的啟動(dòng)輸出信息可以在超級(jí)終端上顯示出來(lái)。其他的配置包括TCP/IP網(wǎng)絡(luò),10/100 Mbps以太網(wǎng)絡(luò)、IDE和ext2文件系統(tǒng)等內(nèi)容。配置完的uClinux操作系統(tǒng)帶有進(jìn)程調(diào)度模塊、內(nèi)存管理模塊、ATA接口驅(qū)動(dòng)程序、文件系統(tǒng)、TCP/1P協(xié)議棧、網(wǎng)卡驅(qū)動(dòng)等功能。

          uClinux配置完成以后即可對(duì)uClinux編譯,產(chǎn)生兩個(gè)文件:一個(gè)是非壓縮的uClinux操作系統(tǒng)二進(jìn)制代碼uCllnux_bootram.bin,其在SDRAM中工作的起始地址為0xoc008000;另一個(gè)是壓縮的uclinux操作系統(tǒng)二進(jìn)制代碼uClinux_bootrom.bin,通過(guò)JTAG線纜燒寫(xiě)到Flash中,由bootloader程序?qū)⑵浼虞d到SDRAM中執(zhí)行。在系統(tǒng)啟動(dòng)的時(shí)候uCIinux_bootrom.bin要先進(jìn)行解壓縮,存放到SDRAM中,然后跳轉(zhuǎn)到uClinux操作系統(tǒng)的入口處執(zhí)行。內(nèi)核在啟動(dòng)時(shí)要檢查機(jī)器的CPU類(lèi)型和體系結(jié)構(gòu)、初始化CPU、建立RAM頁(yè)表和中斷矢量表、加載設(shè)備驅(qū)動(dòng)程序。這一切完成之后,uClinux創(chuàng)建最初的init進(jìn)程,安裝根文件系統(tǒng)ROMFS和ext2磁盤(pán)文件系統(tǒng)。最后,操作系統(tǒng)將自動(dòng)執(zhí)行IND軟件,等待接收客戶(hù)端請(qǐng)求。

          uClinux操作系統(tǒng)的引導(dǎo)通過(guò)B00tlDader程序完成。從本質(zhì)上講,它不屬于操作系統(tǒng)內(nèi)核,針對(duì)不同的CPU體系結(jié)構(gòu),不具有可移植性。本設(shè)計(jì)所編寫(xiě)的Bootloader程序在系統(tǒng)啟動(dòng)時(shí)完成以下幾項(xiàng)工作:
          ①將存放在Flash中壓縮的操作系統(tǒng)內(nèi)核進(jìn)行解壓縮,然后復(fù)制到從0xoc008000處開(kāi)始的SDRAM中;
          ②改寫(xiě)系統(tǒng)的內(nèi)存地址鏡像,將RAM的起始地址映射為O;
          ③設(shè)置CPU的sp寄存器,并將內(nèi)核的BSS段清零;
          ④設(shè)置CPU的pc寄存器,使其值指向內(nèi)核的起始地址。

          4 性能分析
          智能網(wǎng)絡(luò)磁盤(pán)的性能受到系統(tǒng)各個(gè)方面的制約,像IND軟件的進(jìn)程調(diào)度策略、局域網(wǎng)的帶寬、ATA總線的帶寬、文件系統(tǒng)的緩存機(jī)制和客戶(hù)端的緩存機(jī)制。這里分析文件系統(tǒng)的緩存機(jī)制及系統(tǒng)數(shù)據(jù)吞吐率,以此對(duì)智能網(wǎng)絡(luò)磁盤(pán)的性能作個(gè)初步的衡量。

          虛擬文件系統(tǒng)和塊設(shè)備驅(qū)動(dòng)程序普遍采用高速緩存技術(shù),將最近最常使用的數(shù)據(jù)保存在內(nèi)存中,提高數(shù)據(jù)在內(nèi)存中的命中率。文件系統(tǒng)的目錄項(xiàng)對(duì)象、索引節(jié)點(diǎn)對(duì)象、文件對(duì)象及vfsmount對(duì)象都存在獨(dú)立的高速緩存區(qū)中,當(dāng)請(qǐng)求的對(duì)象在高速緩存區(qū)中,且有效時(shí),就直接從高速緩存區(qū)中取出數(shù)據(jù)發(fā)送給客戶(hù);如果所請(qǐng)求的數(shù)據(jù)不存在,則在高速緩存區(qū)中取出一個(gè)空閑的對(duì)象作為新對(duì)象的描述符,這樣可以減少為創(chuàng)建新對(duì)象而分配內(nèi)存所花費(fèi)的時(shí)間,提高系統(tǒng)的效率。對(duì)于索引節(jié)點(diǎn)對(duì)象、目錄項(xiàng)對(duì)象及vfsmount對(duì)象,為了提高它們的查找效率,這些對(duì)象都存在于它們各自的Hash表中。對(duì)于塊設(shè)備驅(qū)動(dòng)程序使用高速緩存區(qū),可以降低頻繁地讀取存儲(chǔ)設(shè)備的次數(shù)。對(duì)客戶(hù)端目錄文件的讀取要采用一定的預(yù)取機(jī)制,因?yàn)閷?duì)目錄文件的打開(kāi)比較頻繁,每打開(kāi)一個(gè)目錄,都要建立一次連接,因此,采可行的預(yù)取機(jī)制可以有效地減少建立連接的次數(shù)。

          系統(tǒng)性能測(cè)試采用BenchMark軟件。硬件測(cè)試平臺(tái)由智能網(wǎng)絡(luò)磁盤(pán)、l00MB交換機(jī)和24臺(tái)客戶(hù)機(jī)組成。測(cè)試文件大小為1 MB,客戶(hù)機(jī)隨機(jī)地向智能網(wǎng)絡(luò)磁盤(pán)發(fā)送讀請(qǐng)求,測(cè)試結(jié)果如圖4所示。吞吐率表示多用戶(hù)請(qǐng)求時(shí)單位時(shí)間內(nèi)通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)總量。


          從測(cè)試結(jié)果可以得出,當(dāng)客戶(hù)數(shù)逐漸增多時(shí),每個(gè)客戶(hù)所得到的平均帶寬逐漸漸少。當(dāng)客戶(hù)增加到24個(gè)時(shí),每個(gè)客戶(hù)可得到大約O.3 Mbps的帶寬,可以滿(mǎn)足文件遠(yuǎn)程訪問(wèn)請(qǐng)求。


          結(jié) 語(yǔ)
          本文首先介紹了智能網(wǎng)絡(luò)磁盤(pán)的硬件開(kāi)發(fā)環(huán)境,然后詳細(xì)介紹了智能網(wǎng)絡(luò)磁盤(pán)的軟件模塊及關(guān)鍵技術(shù),最后在S3C4480X嵌入式開(kāi)發(fā)板上實(shí)現(xiàn)了智能網(wǎng)絡(luò)磁盤(pán)??蛻?hù)端在訪問(wèn)智能網(wǎng)絡(luò)磁盤(pán)時(shí),速度還有待進(jìn)一步提高。這可以從改善網(wǎng)絡(luò)環(huán)境,提高網(wǎng)卡的速度著手,對(duì)客戶(hù)端請(qǐng)求的調(diào)度策略也可以作為一個(gè)方面的研究,其他的功能模塊還需要繼續(xù)添加。相信智能網(wǎng)絡(luò)磁盤(pán)對(duì)企業(yè)來(lái)說(shuō)是一個(gè)好的解決存儲(chǔ)設(shè)備問(wèn)題的方案。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();