新四季網

一種Linux系統的SCSITarget模式的數據I/O寫入方法

2023-09-27 06:43:15

專利名稱:一種Linux系統的SCSI Target模式的數據I/O寫入方法
技術領域:
本發明涉及一種磁碟數據讀寫方法,特別是一種Linux文件系統下的使用SCSI存儲設備的數據寫入方法。
背景技術:
傳統的Linux文件系統的標準I/O接口是基於數據拷貝操作的,即I/O操作會導致數據在作業系統的內核地址空間的緩衝區和應用程式用戶層地址空間定義的緩衝區之間進行拷貝。在這種機制中,磁碟驅動採用了 DMA方式,可以將數據直接從磁碟讀到頁緩存中,或者將數據從頁緩存直接寫回到磁碟上,而不能直接在應用程式地址空間和磁碟之間進行數據傳輸,這樣數據在傳輸過程中需要在應用程式地址空間和頁緩存之間進行多次數據拷貝操作,最大的好處就是可以減少磁碟I/O的操作,因為如果所請求的數據已經存放 在作業系統的高速緩衝存儲器中,那麼就不需要再進行實際的物理磁碟I/O操作。但是數據傳輸過程中的數據拷貝操作卻導致了極大的CPU開銷,從而限制了系統進行數據傳輸的性能。這個方法實現了內核態的Direct I/O方法,不僅避免了內存的拷貝,降低了 CPU的開銷,而且提高了系統的I/o性能。Direct I/O Target模式的接口,為主機提供虛擬SCSI設備,在傳統的Target驅動中,對主機發出的I/O的請求,直接調用標準的文件系統接口,讀寫數據,導致整個Direct I/O Target接口的I/O性能無法得到提高。原因在於主機的每次I/O請求的數據大小是隨機的,而Direct I/O則要求每次數據必須按照文件系統block對齊,這樣就無法利用內核態Direct I/O帶來的優點。而DCR作為一種嵌入式系統,性能則受到限制。

發明內容
本發明的目的是發明一種高效的Linux系統的Target模式的數據I/O方法。本發明適用於Linux系統,所述Linux系統使用Target模式驅動SCSI磁碟設備,其特徵在於提供一個在Target模式驅動和文件系統之間緩衝區,所述緩衝區由每個4KB長的Page組成的雙向循環鍊表,鍊表長度的值是1024到2048,所述的緩衝區內還設有偏移指針,數據首先被寫入緩衝區,當緩衝區內的新數據累積到4KB的長度的整數倍的時候,調用文件系統的Direct I/O接口,把數據寫入磁碟。所述的新數據寫入緩衝區的時候,最後一個寫長度如果無法對齊,就按照對齊的長度寫入,再調用truncate文件系統內核接口,把數據長度調整成正確的值。每個鍊表中包括多個Page,鍊表順序循環使用,在每次flush緩衝區的時候,把填滿的Page寫入文件系統。本發明的數據寫入方法,通過I/O緩衝區的設置和規則設計,實現了 SCSI I/O數據塊的對齊,結合文件系統的Direct 1/0,提高了系統的性能。


圖I模塊層次模型 圖2多個緩衝區填充的結構關係 圖3緩衝區的流程圖。
具體實施例方式以下將參照附圖對本發明的實施例進行描述
如圖I所示,本發明應用於Linux系統,這個系統中使用Target模式驅動SCSI磁碟設備。整個系統模塊層次的模型結構有4個層次,包括Targe t模塊100、緩衝區速緩存CachelOl、文件系統 Filesysteml02、磁碟 Diskl03。所述的Target模塊100是最終的數據存儲介質,數據先通過Target模塊100進行處理,然後通過緩衝區緩存CachelOl,經文件系統FileSystem再寫入磁碟。整個流程中具有一個數據處理方法,這個方法就是一個數據I/O方法,系統效率由此體現。所述的Cache模塊101是用來存放數據的緩存和對齊,有提高性能的作用。所述的Filesystem模塊102是管理磁碟上的文件,對文件進行讀寫、增加、刪除等操作。所述的Disk模塊103是用來存放數據的磁碟。如圖2所示,本發明的方法是提供一個在Target模式驅動和文件系統之間緩衝區,所述緩衝區由每個4KB長的Page組成的雙向循環鍊表,鍊表長度的值為1024到2048,所述的緩衝區內還設有偏移指針,數據首先被寫入緩衝區,當緩衝區內的新數據累積到4KB的長度的整數倍的時候,調用文件系統的D ir ec t I /O接口,把數據寫入磁碟。如圖2所示的緩衝區結構,包括四個Page多個緩衝區的Page可以循環順序使用,設置一個填充標記dirty和一個清空標記clean,當數據填滿一個Page的時候,就將這個Page改為dirty標記,在這個示意圖中,步驟104的Pagel和步驟105的Page2已經被寫滿,也就是標記了 dirty,步驟106的Page3隻被填滿了一部分,然後下一個寫命令的數據就可以繼續寫入;步驟107是完全空閒的Page4,可以被未來的寫命令使用。在每次Flush緩衝區的時候,將標記為dirty的Page的數據寫入磁碟。等操作完成以後,該Page再次被標識為clean進行下一次的使用。如圖3所示的緩衝區使用流程圖,步驟SI收到主機寫命令以後,步驟S2判斷是否為文件結束標誌,如果是的話就執行步驟S3寫入dirty,步驟S4是修改文件長度,然後就完成了數據寫入。如果步驟S2判斷文件沒有結束,就執行步驟S5取得空閒的Page,步驟S6表示接受主機的數據到空閒的Page並標記為dirty,如果是普通的寫命令,只要在緩衝區的鍊表裡找到空閒的Page,將數據接受到空閒的Page中,並把Page設置為dirty標記,步驟S7判斷鍊表裡的標記為dirty的Page是否超過了閥值,如果超過的話就執行步驟S8,把標記為dirty的Page寫入文件系統,步驟S9是寫入完成後,就將dirty標記的Page置為clean標記,可以再次使用。本發明的方法設計並實現了 SCSI Target模式的I/O緩存方法,使得主機寫來的隨機數據在緩存中累計,到一定的block對齊長度時,再調用內核Direct I/O接口,寫入數據。使得整個數據流程不需要使用CPU參與拷貝,極大地提高了系統的性能和效率。對於FC(光線卡)Target接口也同樣適 用。
權利要求
1.一種Linux系統的SCSI Target模式的數據I/O寫入方法,適用於Linux系統,所述Linux系統使用Target模式驅動SCSI磁碟設備,其特徵在於包括 提供一個在Target模式驅動和文件系統之間的緩衝區,所述的緩衝區是由每個長度為4KB的Page組成的雙向循環鍊表,鍊表長度範圍是1024到2048,所述的緩衝區內還設有偏移指針,數據首先被寫入緩衝區,當緩衝區內的新數據累積到4KB的長度的整數倍的時候,再調用文件系統的Direct I/O接口,把數據寫入磁碟。
2.根據權利要求I所述的一種Linux系統的SCSITarget模式的數據I/O寫入方法,其特徵在於所述的新數據寫入緩衝區的時候,如果最後一個寫長度無法對齊,就按照對齊的長度寫入,再調用truncate模塊,調整數據長度到正確的值。
3.根據權利要求I所述的一種Linux系統的SCSITarget模式的數據I/O寫入方法,其特徵在於所述的每個鍊表中包括多個Page,鍊表順序可以循環使用,在每次flush緩衝區的時候,把填滿的Page寫入文件系統。
全文摘要
本發明描述了在Linux系統下使用SCSI存儲設備的數據I/O寫入方法。該方法提供了一個在Target模式驅動和文件系統之間的緩衝區,緩衝區是由每個長度為4KB的Page組成的雙向循環鍊表,鍊表的長度範圍為1024~2048,緩衝區內設有偏移指針,數據首先被寫入緩衝區,當緩衝區內的新數據達到規定長度的整數倍的時候,就調用文件系統的DirectI/O接口,直接把數據寫入磁碟。當新數據寫入緩衝區的時候,如果最後一個寫長度無法對齊,就按照對齊的長度寫入,再調用truncate文件系統內核接口,調整數據的長度到正確的值。本發明通過I/O緩衝區的設置和規則設計,實現了SCSI中I/O數據塊的對齊,結合了文件系統的DirectI/O,從而提高了系統的性能。
文檔編號G06F3/06GK102681795SQ201210131288
公開日2012年9月19日 申請日期2012年5月2日 優先權日2012年5月2日
發明者張慶敏, 張衡, 胡剛, 謝海威 申請人:無錫眾志和達存儲技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀