• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SoPC和NFS的虛擬SATA硬盤*

      2016-08-03 10:19:15郭燕妮
      火力與指揮控制 2016年4期

      何 杰,郭燕妮,張 博,張 剛

      (太原理工大學(xué)信息工程學(xué)院,太原 030024)

      基于SoPC和NFS的虛擬SATA硬盤*

      何杰,郭燕妮,張博,張剛

      (太原理工大學(xué)信息工程學(xué)院,太原030024)

      摘要:大數(shù)據(jù)背景下,網(wǎng)絡(luò)文件系統(tǒng)NFS作為一種成熟的分布式文件系統(tǒng),為數(shù)據(jù)存儲、管理提供了良好解決方案;SoPC是基于軟硬件協(xié)同設(shè)計的片上可編程系統(tǒng),應(yīng)用前景十分廣泛。系統(tǒng)以SATA硬盤為存儲介質(zhì)實現(xiàn)了一個基于SoPC的完整網(wǎng)絡(luò)存儲結(jié)構(gòu)。重點介紹了如何在FPGA內(nèi)嵌MicroBlaze處理器上設(shè)計實現(xiàn)NFS服務(wù)組件、文件系統(tǒng)軟件,以及如何設(shè)計實現(xiàn)SATA硬盤控制硬件IP核。經(jīng)Xilinx的XUPV5_LX110T開發(fā)平臺調(diào)試驗證,SoPC網(wǎng)絡(luò)存儲軟硬件系統(tǒng)工作正常,可以用作云存儲的虛擬資源節(jié)點。

      關(guān)鍵詞:網(wǎng)絡(luò)文件系統(tǒng),SATA硬盤,F(xiàn)PGA,PetaLinux

      0 引言

      大數(shù)據(jù)時代,云存儲呈現(xiàn)越來越強大的生命力。云計算是網(wǎng)絡(luò)上基于虛擬資源的并行處理[1-2],對于云存儲系統(tǒng),虛擬資源是通過IP地址訪問的存儲介質(zhì),即網(wǎng)絡(luò)硬盤。網(wǎng)絡(luò)硬盤可以部署在互聯(lián)網(wǎng)上,利用現(xiàn)有Hadoop軟件[3],可以極低成本搭建一個超大容量、極高速度的個人云存儲系統(tǒng)。2012年Marvell公司推出了第一款基于SoPC的SATA硬盤接口芯片,但是它僅支持PCIe 2.0接口,不支持網(wǎng)絡(luò)連接。目前已有針對老式ATA接口[4]設(shè)計的網(wǎng)絡(luò)硬盤,但ATA接口已經(jīng)淘汰,而針對先進的SATA接口[5]網(wǎng)絡(luò)硬盤設(shè)計還屬商業(yè)機密,沒有相關(guān)的文獻報道,同時現(xiàn)有具有網(wǎng)絡(luò)接入能力的SATA硬盤使用的是FTP(File Transfer Protocol)文件傳輸協(xié)議[6],只能實現(xiàn)文件上傳、下載等操作,不能實現(xiàn)文件在線打開、編輯等功能。

      1 系統(tǒng)設(shè)計

      1.1系統(tǒng)簡介

      以FPGA內(nèi)嵌的MicroBlaze處理器為核心搭建系統(tǒng),包括NFS服務(wù)組件、文件系統(tǒng)、SATA控制器、以太網(wǎng)控制器和DDR控制器5個主要部分,如圖1所示。

      圖1 系統(tǒng)框圖

      NFS服務(wù)組件實現(xiàn)收發(fā) RPC請求以及RpcBind、Mountd和Nfsd等服務(wù)器端核心功能;文件系統(tǒng)負責(zé)文件打開、讀、寫、重命名,刪除等命令操作和尋址磁盤分區(qū)的存儲介質(zhì);硬盤控制器通過驅(qū)動程序與文件系統(tǒng)耦合,根據(jù)文件系統(tǒng)生成的命令和尋址參數(shù)實現(xiàn)讀、寫訪問操作;以太網(wǎng)控制器實現(xiàn)網(wǎng)絡(luò)傳輸;DDR控制器提供數(shù)據(jù)緩存。

      系統(tǒng)軟硬件劃分為可編程系統(tǒng)PS和可編程邏輯PL兩個部分,其中PS包括NFS服務(wù)組件和文件系統(tǒng),PL由SATA硬盤控制器、以太網(wǎng)控制器和DDR2控制器組成,軟硬件之間通過MicroBlaze耦合,Xilinx公司提供專門的工具EDK(Embedded Development Kit)實現(xiàn)軟硬件協(xié)同設(shè)計。硬件描述語言設(shè)計的IP核掛載到PLB總線上,作為MicroBlaze的設(shè)備并編寫相應(yīng)的設(shè)備驅(qū)動程序。移植操作系統(tǒng)PetaLinux到MicroBlaze,在操作系統(tǒng)上設(shè)計獨立的NFS服務(wù)組件和文件系統(tǒng)應(yīng)用程序。XUPV5_LX110T開發(fā)平臺具有可配置的以太網(wǎng)和DDR控制器,可配置使用。

      1.2NFS服務(wù)組件

      基于RPC中間件的NFS支持Socket編程,一次遠程過程調(diào)用從RPC請求開始,到接收到RPC應(yīng)答結(jié)束,如圖2所示。

      圖2 RPC處理過程

      RPC消息解包模塊負責(zé)處理RPC消息包頭,解析出RPC請求參數(shù)三元組:程序號,版本號和過程號;RPCBind、Mountd和Nfsd 3個基本組件負責(zé)處理具體的RPC請求;RPC消息封包模塊將處理結(jié)果封裝成RPC應(yīng)答消息包并通過網(wǎng)絡(luò)發(fā)送模塊發(fā)送。Socket編程采用混合多端口的異步方法,按照TCP協(xié)議創(chuàng)建rpcbind、mountd和Nfsd的網(wǎng)絡(luò)套接字;指定rpcbind為知名端口111,其他為隨機端口。封解RPC消息包模塊按照PRC格式解析或封裝RPC消息,獲得請求參數(shù)或發(fā)送處理結(jié)果。NFS服務(wù)器的3個核心基本組件都有特定功能:RPCBind主要實現(xiàn)查詢服務(wù)主機時間、查詢服務(wù)IP地址、設(shè)置取或消服務(wù)端三元組等5個過程;Mountd掛載或卸載共享目錄、添加輸出目錄和查詢共享目錄等6個文件名操作;Nfsd主要實現(xiàn)read、write、create和remove等18個物理訪問操作。

      1.3文件系統(tǒng)

      參考linux_kernel的文件系統(tǒng)部分源代碼,在分析虛擬文件系統(tǒng)VFS以及邏輯文件系統(tǒng)EXT2的基礎(chǔ)上,按照EXT2文件系統(tǒng)結(jié)構(gòu)特點,用文件系統(tǒng)管理磁盤數(shù)據(jù)資源,設(shè)計具有松耦合特性的資源管理器,為上層應(yīng)用提供文件操作基本數(shù)據(jù)服務(wù)。提取出文件的打開、關(guān)閉、讀、寫、創(chuàng)建等基本操作,按照通用的文件標(biāo)準(zhǔn)接口,用不同功能的資源管理器模塊重新描述文件操作流程,各流程通過訪問磁盤資源管理器,完成文件的基本操作。設(shè)計文件系統(tǒng)主控制器控制文件操作流程步驟,完成對磁盤文件的高效訪問管理。文件系統(tǒng)結(jié)構(gòu)如圖3所示。

      圖3 文件系統(tǒng)結(jié)構(gòu)框圖

      1.4SATA硬盤控制器

      在SATA控制器與SATA硬盤之間通過SATA接口通信,接口協(xié)議為SATA協(xié)議,本文實現(xiàn)的是傳輸速率為3.0 Gbps的SATA2.0協(xié)議,其結(jié)構(gòu)分為物理層、鏈路層、傳輸層和命令層四層,如下頁圖4所示。

      RX和TX分別與硬盤的差分收發(fā)信號線相接,文件系統(tǒng)接口通過驅(qū)動程序和文件系統(tǒng)相連。接收數(shù)據(jù)時,在物理層將碼流串/并轉(zhuǎn)換,8B10B解碼后送到鏈路層,鏈路層解幀和解擾后提取出幀信息結(jié)構(gòu)(Frame Information Structures,F(xiàn)IS)及CRC值并判斷傳輸是否有錯,同時將FIS提交傳輸層解析,得到操作狀態(tài)或數(shù)據(jù)發(fā)送到命令層,命令層通過文件系統(tǒng)接口傳送給處理器。發(fā)送過程是接收的逆過程,命令層將外部命令、參數(shù)、數(shù)據(jù)等轉(zhuǎn)換成SATA協(xié)議格式后交給傳輸層形成FIS消息,鏈路層將FIS和CRC值加擾后封裝成幀送到物理層發(fā)送。

      圖4 SATA硬盤控制器結(jié)構(gòu)

      2 系統(tǒng)搭建

      系統(tǒng)搭建在EDK平臺上實現(xiàn),步驟如下:①新建一個基于XUPV5_LX110T開發(fā)平臺的EDK工程,選擇配置需要使用的資源,如DDR2_SDRAM。②在EDK工程下將本文設(shè)計SATA控制器IP核掛載到PLB總線上。③在PetaLinux中開發(fā)設(shè)備驅(qū)動程序和NFS服務(wù)組件、文件系統(tǒng)應(yīng)用程序。④將EDK工程拷貝到PetaLinux中交叉編譯生成image. bin文件。⑤在EDK下將image.bin文件下載到DDR2_SDRAM中,最后啟動操作系統(tǒng)及應(yīng)用程序。

      圖5是EDK下PLB總線接口界面,圖中展示了所有掛載在PLB總線下的設(shè)備,其中DDR2_SDRAM、Hard_Ethernet_MAC、RS232_Uart_1 是XUPV5_LX110T開發(fā)平臺可以選擇配置的資源,sata_controler_0是所設(shè)計SATA硬盤控制器,其他為工程自動生成。圖中沒有展開顯示的Addresses欄是設(shè)備地址欄,在這兒可以給每個設(shè)備分配地址空間,本設(shè)計分配的 sata_controler_0地址為0xcb200000-0xcb20ffff。

      圖5 PLB總線接口

      3 設(shè)計驗證

      3.1SATA IP核的驗證

      SATA硬盤控制器性能的好壞直接影響NFS服務(wù)器的穩(wěn)定性。運用Xilinx公司的在線調(diào)試工具ChipScope測試SATA控制器IP核,圖6是完成一次讀操作后,接收到的硬盤應(yīng)答幀。圖中SOF_det、EOF_det分別表示檢測到幀頭、幀尾,rxdata0和Rx-FISData分別是來自物理層和解擾后的數(shù)據(jù)。由圖6易知幀數(shù)據(jù)的第一個雙字為0X01500034,第一個字節(jié)是幀類型標(biāo)志號,0X34說明接收到的是應(yīng)答幀,第三個字節(jié)是狀態(tài)寄存器,0X50說明讀操作無錯且硬盤已準(zhǔn)備好接受下一個命令,其他各個字節(jié)也分別代表映射寄存器組中各個寄存器的值。

      圖6 SATA硬盤控制器測試結(jié)果

      3.2系統(tǒng)驗證

      NFS服務(wù)器IP地址是192.168.0.10,SATA硬盤容量為80 GB。在CentOS6.4操作系統(tǒng)下通過標(biāo)準(zhǔn)NFS客服端訪問本文設(shè)計的NFS服務(wù)器,經(jīng)測試服務(wù)器能夠完整無誤地實現(xiàn)文件的上傳、下載、刪除,新建、重命名等基本操作。一個上傳文件的操作結(jié)果顯示在圖7中,NFS服務(wù)器共享目錄掛載路徑為/ tmp/nfs,從圖看出其操作界面和本地操作完全一樣。

      圖7 上傳操作結(jié)果

      4 結(jié)論

      本文采用軟硬件協(xié)同的設(shè)計方法,基于Xilinx 的FPGA設(shè)計了一可用作云存儲節(jié)點的虛擬化SATA硬盤,并驗證了它的功能。通過反復(fù)調(diào)試與調(diào)整,系統(tǒng)能夠成功掛載共享文件系統(tǒng),進行基本文件操作且穩(wěn)定性良好。下一步將增加多用戶掛載功能,同時將一個SATA硬盤擴展為多個SATA盤組,從而形成云存儲系統(tǒng)。

      參考文獻:

      [1]李軍,勞鳳丹,鄒仁明.校園網(wǎng)云盤系統(tǒng)構(gòu)建研究[J].通信學(xué)報,2013,34(Z2):133-137.

      [2]戴劍偉,王剛.指揮信息系統(tǒng)云架構(gòu)[J].火力與指揮控制,2013,38(2):76-78.

      [3]田秀霞,周耀君,畢忠勤,等.基于Hadoop架構(gòu)的分布式計算和存儲技術(shù)及其應(yīng)用[J].上海電力學(xué)院學(xué)報,2011,27(1):70-74.

      [4]張威.FPGA中個人云存儲系統(tǒng)的設(shè)計與研究[D].太原:太原理工大學(xué),2014.

      [5]陳才.基于FPGA的SATA主機端控制器的設(shè)計[D].武漢:華中科技大學(xué),2011.

      [6]孫韓林,金躍輝,高雪松,等.FTP協(xié)議的測試及分析[J].計算機工程,2008,34(23):133-135.

      [7]王超,劉偉,張得聰.基于SATA的嵌入式直接存儲系統(tǒng)[J].計算機工程,2012,38(12):232-235.

      [8]劉榮勝.一種基于異步回調(diào)機制的NFS服務(wù)端設(shè)計與實現(xiàn)[J].蘇州市職業(yè)大學(xué)學(xué)報,2013(1):41-43.

      [9]葉軍,朱華生.嵌入式Linux NFS方式下應(yīng)用程序的實現(xiàn)[J].微計算機信息,2007,23(32):73-75.

      [10]譚會生,張昌凡.EDA技術(shù)及應(yīng)用[M].2版.西安:西安電子科技大學(xué)出版社,2004.

      [11] Xilinx Coporation.Virtex-5FPGA RocketIO GTP Transceiver User Guide[R].San Jose:Xilinx,2008.

      [12]楊佳朋,張剛,郝敏.基于RocketIO的SATA物理層實現(xiàn)[J].電視技術(shù),2013,37(3):70-72.

      [13]包懷忠.EXT2文件系統(tǒng)分析[J].計算機工程與設(shè)計,2005,26(4):1022-1024.

      中圖分類號:TP333

      文獻標(biāo)識碼:A

      文章編號:1002-0640(2016)04-0174-03

      收稿日期:2015-03-13修回日期:2015-04-15

      *基金項目:太原理工大學(xué)校青年基金(2012L091)

      作者簡介:何杰(1988-),男,湖南漢壽人,碩士研究生。研究方向:SoC集成電路設(shè)計。

      Virtual SATA Disk Based on SoPC and NFS

      HE Jie,GUO Yan-ni,ZHANG Bo,ZHANG Gang
      (College of Information Engineering,Taiyuan University of Technology,Taiyuan 030024,China)

      Abstract:NFS,network file system,is a mature distributed file system.It provides a solution to data storage and management in the era of big data.SoPC,a programmable on-chip system,is based on hardware and software co-design.It has a wide application prospect.The system adopts SATA as its storage media to implement a network storage architecture based on SoPC.It focuses on how to implement NFS server component and file system on the MicroBlaze processor embedded in FPGA. Also,the implementation of the IP core of SATA hard disk control is the focal point.The design is debugged on the platform of XUPV5_LX110T of Xilinx.The result certifies that SoPC network storage system works well and it can be used as the virtual resource node of cloud storage.

      Key words:network file system,SATA hard disk,F(xiàn)PGA,PetaLinux

      双牌县| 大庆市| 遂宁市| 兰考县| 迭部县| 淳安县| 平泉县| 常山县| 疏附县| 治多县| 玉林市| 宝鸡市| 多伦县| 宜良县| 东阿县| 靖安县| 芷江| 永吉县| 昆明市| 鸡东县| 墨脱县| 乌拉特中旗| 绿春县| 乌什县| 育儿| 尚义县| 陵川县| 邵东县| 敖汉旗| 鸡西市| 宣化县| 奉化市| 武清区| 望城县| 保山市| 靖江市| 静乐县| 抚松县| 洛阳市| 常山县| 门源|