色www,五月婷婷深爱五月,午夜国产一级片,色噜噜综合,国产大胸无码视频,清纯美女被操黄网站在线观看,波多野结衣av高清一区二区三区

高性能iSCSI設(shè)計(jì)分析

時(shí)間:2024-09-29 05:20:52 碩士畢業(yè)論文 我要投稿
  • 相關(guān)推薦

高性能iSCSI設(shè)計(jì)分析

引言
  
  iSCSI是由Cisco和IBM共同發(fā)起的,并于2003年2月11日, 被IETF( Internet EngineeringTask Force, 互聯(lián)網(wǎng)工程任務(wù)組) 通過的新的網(wǎng)絡(luò)存儲(chǔ)標(biāo)準(zhǔn)[4]。它是一種在Internet協(xié)議網(wǎng)絡(luò)上, 特別是在以太網(wǎng)上進(jìn)行數(shù)據(jù)塊傳輸?shù)臉?biāo)準(zhǔn)。是一個(gè)供硬件設(shè)備使用的可以在IP協(xié)議上層運(yùn)行的SCSI指令集。簡(jiǎn)單地說, iSCSI 可以實(shí)現(xiàn)在IP 網(wǎng)絡(luò)上運(yùn)行SCSI 協(xié)議, 使其能夠在諸如高速千兆以太網(wǎng)上進(jìn)行路由選擇。而整個(gè)過程在用戶看來,使用遠(yuǎn)端的存儲(chǔ)設(shè)備就像訪問本地的SCSI 設(shè)備一樣簡(jiǎn)單。iSCSI協(xié)議利用現(xiàn)有的TCP/IP 網(wǎng)絡(luò)傳輸SCSI協(xié)議命令和數(shù)據(jù),價(jià)格較低,傳輸距離也不受限制,但協(xié)議開銷較大。主要是因?yàn)镃PU在處理TCP/IP這層協(xié)議的開銷較大,占用了較多的系統(tǒng)資源和CPU時(shí)鐘。為此許多學(xué)者提出了很多改進(jìn)措施,例如TOE(TCP/IP offload engine)技術(shù),它使用硬件來承擔(dān)TCP/IP等網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包處理的絕大部分工作,將主機(jī)CPU從繁重的網(wǎng)絡(luò)協(xié)議處理工作中解放出來,同時(shí)也大大提高了處理的效率。采用具有TOE的網(wǎng)卡實(shí)現(xiàn)iSCSl協(xié)議,主機(jī)CPU和軟件部分就只需要完成iSCSl協(xié)議數(shù)據(jù)單元的封裝、解封裝,下層的處理工作由網(wǎng)卡完成。但是對(duì)于處理大量的小數(shù)據(jù)塊來說這種技術(shù)又會(huì)成為系統(tǒng)瓶頸。因此本文設(shè)計(jì)一種基于UDP數(shù)據(jù)傳輸?shù)母咝阅躨SCSI軟件來提高數(shù)據(jù)的處理和傳輸率,即采用基于UDP的數(shù)據(jù)傳輸,數(shù)據(jù)的傳輸與命令、狀態(tài)的傳輸分離來提高數(shù)據(jù)傳輸率,同時(shí)減輕了CUP處理繁瑣的TCP數(shù)據(jù)包的負(fù)擔(dān)。
  
  1 基于 UDP 數(shù)據(jù)傳輸?shù)膇SCSI 模型
  
  iSCSI 協(xié)議棧的傳輸層使用的是TCP,而TCP 協(xié)議在數(shù)據(jù)處理方面比較保守,在傳輸大量的數(shù)據(jù)時(shí),勢(shì)必占用過多的CUP 時(shí)鐘。如果完全用UDP 代替,又達(dá)不到可靠的要求,本文結(jié)合TCP 與UDP 作為iSCSI 協(xié)議棧的并行傳輸層。其結(jié)構(gòu)模型。TCP 主要是用來建立可靠的連接和傳輸讀寫命令及狀態(tài),保障命令被執(zhí)行完,如果出錯(cuò)則要求重傳命令。UDP 的作用是在iSCSI 進(jìn)入全功能階段后傳輸大量數(shù)據(jù)。并且iSCSI 層在數(shù)據(jù)方面設(shè)計(jì)了數(shù)據(jù)序號(hào)機(jī)制和錯(cuò)誤恢復(fù)機(jī)制來加強(qiáng)數(shù)據(jù)的可靠傳輸。
  
  1.1 iSCSI 數(shù)據(jù)序號(hào)機(jī)制
  在iSCSI中一條命令的執(zhí)行可能涉及到多個(gè)PDU,如數(shù)據(jù)(DATA)PDU和準(zhǔn)備傳輸(R2T)PDU,iSCSI規(guī)定用一個(gè)DataSN參數(shù)來同步這些PDU。這個(gè)參數(shù)是基于命令范圍內(nèi)的,對(duì)于輸入命令(iSCSI中方向是以客戶端為參照物的),如讀命令,目標(biāo)器將數(shù)據(jù)分成多個(gè)DATA-INPDU,DataSN由0開始,從第一個(gè)DATA-IN PDU向后依次遞增。一旦發(fā)現(xiàn)數(shù)據(jù)序號(hào)出錯(cuò)則要求重傳所缺序號(hào)的數(shù)據(jù)才能給與確認(rèn)和續(xù)傳之后的數(shù)據(jù)。
  對(duì)于寫命令,客戶端要將待輸出的數(shù)據(jù)分成多個(gè)DATA-OUT PDU 傳往目標(biāo)器DataSN也是從每個(gè)R2T 的第一個(gè)DATA-OUT PDU 起以0 開始,以后每個(gè)DATA-OUT 遞增1,這時(shí)的DATA PDU 是針對(duì)R2T 而言。
  對(duì)于雙向命令如讀-寫命令,則是采用上面的兩種方向結(jié)合方式,這里不再舉例。Data和R2T PDU 不像命令和狀態(tài)都有一個(gè)明確的確認(rèn)信息,在iSCSI 中DATA-OUT 和R2T 對(duì)端都不會(huì)給予任何確認(rèn)信息,但對(duì)DATA-IN PDU 啟動(dòng)器可以通過一種叫(總是由目標(biāo)器發(fā)出)SNACK 命令給予確認(rèn)。通過DataSN 和R2TSN 以及SNACK(序列號(hào)確認(rèn))可以使啟動(dòng)器和目標(biāo)器很容易的檢測(cè)出丟失的數(shù)據(jù)PDU。
  
  1.2 iSCSI 錯(cuò)誤恢復(fù)機(jī)制
  iSCSI的恢復(fù)模型規(guī)定了啟動(dòng)器端每個(gè)支持錯(cuò)誤恢復(fù)的connection都必須實(shí)現(xiàn)下面的功能:
  -使用NOP-OUT命令來獲取目標(biāo)器的序列機(jī)制息。
  -能夠進(jìn)行命令重傳。
  -支持R2T的恢復(fù)。
  -能夠使用SNACK要求目標(biāo)器重傳狀態(tài)、Data或R2T PDU。
  -確認(rèn)已接收的數(shù)據(jù)。
  -重新分配命令忠貞。
  -在session恢復(fù)時(shí)必須徹底終結(jié)老的session。
  同樣這個(gè)恢復(fù)模型也為目標(biāo)器規(guī)定了一些必須實(shí)現(xiàn)的功能:
  -使用NOP-IN探測(cè)啟動(dòng)器的序列信息。
  -可以使用R2T要求啟動(dòng)啟動(dòng)器重傳數(shù)據(jù)。
  -支持SNACK功能。
  -可以要求啟動(dòng)器對(duì)自己發(fā)送的Data序列予以確認(rèn)。
  -支持命令忠貞的再分配。
  -終結(jié)session。
  iSCSI錯(cuò)誤恢復(fù)機(jī)制從高到低依次是0級(jí)(會(huì)話恢復(fù)), 1級(jí)(冗余恢復(fù)),2級(jí)(連接恢復(fù))三層。一般的實(shí)現(xiàn)是1級(jí)或2級(jí),本文實(shí)驗(yàn)使用的是0級(jí),使得數(shù)據(jù)可靠性更高。由于iSCSI有以上2種機(jī)制,即使采用UDP包進(jìn)行數(shù)據(jù)傳輸也會(huì)保證數(shù)據(jù)正確可靠的傳輸,再參照可看出,TCP層和iSCSI層在數(shù)據(jù)可靠性保證方面從語(yǔ)義上來說是重復(fù)的,而且TCP能保證命令順利完成,否則會(huì)要求重發(fā)命令或重新建立連接,所以本改進(jìn)協(xié)議使用UDP也能保證數(shù)據(jù)可靠。
  
  2 高性能 iSCSI 讀寫處理設(shè)計(jì)
  
  啟動(dòng)設(shè)備通過登錄建立與目標(biāo)設(shè)備的會(huì)話(session),登錄成功后目標(biāo)設(shè)備賦予啟動(dòng)設(shè)備會(huì)話號(hào)(sessionID)。其中登錄過程中在建立TCP連接的時(shí)候,給每個(gè)連接一個(gè)CID(connection ID),對(duì)于每個(gè)TCP連接我們配套添加UDP套接字接口來進(jìn)行數(shù)據(jù)的傳輸,一旦一個(gè)連接出錯(cuò)(如TCP連接錯(cuò)誤,傳輸異常等),為了保證命令的連接忠貞,可以為該命令分配一個(gè)新的連接及相應(yīng)的UDP套接字接口。連接成功后,雙方再通過協(xié)商確定各種參數(shù),然后會(huì)話進(jìn)入iSCSI全功能階段,可以發(fā)命令對(duì)設(shè)備進(jìn)行讀寫操作了,下面來分析新iSCSI的讀寫過程設(shè)計(jì)。
  
  2.1 iSCSI 讀處理
  內(nèi)進(jìn)數(shù)據(jù)的讀處理設(shè)計(jì)過程如,此圖是啟動(dòng)器協(xié)議棧執(zhí)行SCSI讀操作所處理內(nèi)進(jìn)數(shù)據(jù)PDU(數(shù)據(jù)從目標(biāo)器流向啟動(dòng)器為內(nèi)進(jìn)數(shù)據(jù),否則為外出數(shù)據(jù))的過程。一個(gè)iSCSI PDU的默認(rèn)大8Kb,可能被包含在多個(gè)UDP包中,當(dāng)NIC收到這些包時(shí),通過DMA(Direct MemoryAccess)把它們放到NIC(Network Interface Control)緩沖區(qū)然后中斷CUP,設(shè)備驅(qū)動(dòng)棧使用Rx接收線程和UDP控制塊來執(zhí)行UDP/IP處理,即去掉Eth/UDP/IP頭部。前5步就是處理UDP/IP及其下層。第6-10步處理相關(guān)的iSCSI層,首先iSCSI層從套接字讀iSCSI頭部到內(nèi)部臨時(shí)緩沖區(qū)。iSCSI頭部是由48字節(jié)的基本頭部,CRC校驗(yàn)和,以及一些可選的附加頭部組成。第7步計(jì)算CRC,然后與附加在頭部上的CRC進(jìn)行比較,如果相符,則iSCSI層去掉頭部并把內(nèi)進(jìn)的iSCSI PDU作為數(shù)據(jù)PDU處理。第8步,在頭部中包含一個(gè)標(biāo)識(shí)值,根據(jù)它能把數(shù)據(jù)PDU放在SCSI緩沖中正確的位置;基于PDU的長(zhǎng)度以及相對(duì)偏移,iSCSI層創(chuàng)建一個(gè)指向SCSI緩沖區(qū)的聚集鏈表。然后iSCSI層把聚集鏈表傳給套接字接口(從UDP包復(fù)制iSCSI PDU負(fù)載到SCSI緩沖區(qū)),第10步驗(yàn)證整個(gè)PDU數(shù)據(jù)負(fù)載CRC校驗(yàn)和。
  
  2.2 iSCSI 寫處理
  顯示的是啟動(dòng)器對(duì)目標(biāo)器執(zhí)行SCSI寫外出數(shù)據(jù)PDU的處理流程。啟動(dòng)器端的iSCSI層必須在一個(gè)SCSI緩沖區(qū)中保留指向下一次寫到目標(biāo)端的數(shù)據(jù)PDU的指針。一旦收到從目標(biāo)端傳來的流控制(如R2T)PDU,iSCSI層立即傳輸數(shù)據(jù)PDU。首先構(gòu)造iSCSI頭部并計(jì)算頭部的CRC值,把CRC值附加在頭部上(1)。然后iSCSI層創(chuàng)建聚集鏈表來描述這個(gè)頭部、頭部的的CRC以及iSCSI PDU負(fù)載,接著計(jì)算負(fù)載數(shù)據(jù)的CRC值并把它添加到聚集鏈表中(2)。最后數(shù)據(jù)通過內(nèi)核接口到UDP/IP棧再傳到目標(biāo)器。對(duì)于UDP/IP棧的實(shí)現(xiàn)問題,數(shù)據(jù)要么直接從SCSI緩沖區(qū)到NIC要么經(jīng)過復(fù)制到一個(gè)臨時(shí)套接字緩沖區(qū)(3,4,5)。UDP/IP棧加上自己的鏈接頭部和負(fù)載描述符來分別指向包頭和UDP負(fù)載(6,7)。最后協(xié)議棧發(fā)送信號(hào)給NIC,通過DMA把數(shù)據(jù)發(fā)送出去(8)。
  
  3 實(shí)驗(yàn)結(jié)果分析
  
  本實(shí)驗(yàn)是由2臺(tái)主機(jī)構(gòu)建iSCSI啟動(dòng)器和目標(biāo)器模塊,啟動(dòng)端是自主開發(fā)的支持UDP數(shù)據(jù)傳輸?shù)膇SCSI模塊加載到windows XP內(nèi)核中所構(gòu)成,目標(biāo)端是修改的linux下的HNU的修改版(支持UDP數(shù)據(jù)),再在中間加上千兆以太網(wǎng)交換機(jī)連接構(gòu)成實(shí)驗(yàn)環(huán)境。首先啟動(dòng)兩模塊,把目標(biāo)端的磁盤映射成啟動(dòng)端的虛擬磁盤。然后啟動(dòng)器端機(jī)器隨機(jī)讀寫不同大小的數(shù)據(jù)塊。
  并通過對(duì)傳統(tǒng)的iSCSI做對(duì)比實(shí)驗(yàn),讀寫結(jié)果的實(shí)驗(yàn)數(shù)據(jù)所示。實(shí)驗(yàn)結(jié)果表明高性能iSCSI能提高大概20%~30%的讀吞吐率,20%~25%的寫吞吐率。從可看出所讀寫的數(shù)據(jù)塊越小效果越明顯,這是因?yàn)榇髷?shù)據(jù)塊進(jìn)行分片和重組所需時(shí)間較多,塊越小使用UDP效果更明顯。顯示的是CUP利用率的對(duì)比圖,其結(jié)果表明,在訪問的數(shù)據(jù)塊大于512kB時(shí),改進(jìn)的iSCSI對(duì)CPU的利用率比傳統(tǒng)的低10%~15%。實(shí)驗(yàn)充分證明了使用UDP數(shù)據(jù)傳輸?shù)膇SCSI的優(yōu)越性。
  
  4 結(jié)論
  
  本文給出了基于UDP數(shù)據(jù)傳輸?shù)膇SCSI,它能大幅提高數(shù)據(jù)處理和傳輸?shù)男,減輕了CUP的負(fù)擔(dān)。但是也存在不少問題,一旦數(shù)據(jù)異常過多就需要重啟iSCSI會(huì)話,重新建立連接,將花費(fèi)更多的額外時(shí)間。如果跨越網(wǎng)絡(luò)數(shù)較多的話,由于數(shù)據(jù)出錯(cuò)概率相對(duì)較大,不適于使用基于UDP數(shù)據(jù)傳輸?shù)膇SCSI軟件,需要后續(xù)改進(jìn)完善。

中國(guó)碩士論文網(wǎng)提供大量免費(fèi)碩士畢業(yè)論文,如有業(yè)務(wù)需求請(qǐng)咨詢網(wǎng)站客服人員!
  
  [參考文獻(xiàn)] (References)
  [1] 任勁,謝長(zhǎng)生,iSCSI 協(xié)議性能分析[J].計(jì)算機(jī)工程與科學(xué),2006, 28(6):16-18
  [2] 陳大恒,閆立偉,陳南等,基于Windows 內(nèi)核模式的iSCSI 啟動(dòng)器設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2007,28(9):2161-2164
  [3] 胡風(fēng)華.基于以太網(wǎng)的存儲(chǔ)系統(tǒng)研究[D].北京:中國(guó)科學(xué)院計(jì)算技術(shù)研究所,2005
  [4] Satran J,Meth K,Sapuntzakis C,et a1.Internet small computer systems interface(iSCSI)[EB/OL].NetworkWorking Group,2004-04
  [5] Tan Huailiang,Tang Weixin,Sun Jianhua. An I/O Acceleration Technology for Networkcomputing: i-TRM[C].Proc of the 2012 International Conference on computer Science and Software Engineering.
  [6] NianminYao, Shaozhen Wang,Jianming Zhao.Optimization of Flow Control Mechanism in iSCSI[C].Proc of 2012 IEEE Computer Society .Washington.DC: IEEE Computer Press, 2012: 140-145

【高性能iSCSI設(shè)計(jì)分析】相關(guān)文章:

新型高性能鋰電池充電器的設(shè)計(jì)方案03-19

移動(dòng)RichMedia技術(shù)分析與設(shè)計(jì)03-07

基于VHDL的DDS的設(shè)計(jì)與分析03-07

論高性能混凝土質(zhì)量的控制03-26

高性能Windows圖形開發(fā)庫(kù)WinG03-28

我國(guó)設(shè)計(jì)素描教學(xué)現(xiàn)狀分析03-28

企業(yè)職稱申報(bào)分析及設(shè)計(jì)03-16

勸導(dǎo)技術(shù)及其設(shè)計(jì)評(píng)估的分析03-03

試論高性能砼施工技術(shù)淺析03-18