一種RAID系統的製作方法
2023-05-01 23:18:31
本發明涉及伺服器技術領域,特別是涉及一種RAID系統。
背景技術:
隨著網絡的不斷發展,電子設備之間的數據傳輸也隨之越來越複雜和繁重。
涉及到數據拷貝的操作每個字節都需要CPU的參與,這使得CPU開銷非常大,對系統性能的影響非常大。隨著網絡帶寬的不斷提升,這種內存數據之間的拷貝操作也就越來越成為系統性能的瓶頸所在。RAID(獨立冗餘磁碟陣列)是一個複雜的系統,在Linux平臺中,軟RAID以塊設備(/dev/md*)的形式提供用戶讀寫和管理接口,在對RAID進行讀操作時,需要從塊設備緩衝區中將要讀取的數據拷貝到相應的用戶緩衝區,在進行RAID寫操作時需要通過拷貝操作更新塊設備緩衝區的內容,傳統的RAID操作是利用數據內存的拷貝實現數據的傳輸的。這使得數據傳輸的效率較低,佔用了大量的內存空間。
因此,如何提高數據傳輸的效率,節省內存空間,是本領域技術人員目前需要解決的技術問題。
技術實現要素:
本發明的目的是提供一種RAID系統,可以提高數據傳輸的效率,節省內存空間。
為解決上述技術問題,本發明提供了如下技術方案:
一種RAID系統,包括:交互模塊、緩存模塊、映射管理模塊和磁碟模塊;
其中,所述交互模塊用於與外界伺服器進行數據交互;
緩存模塊,與所述交互模塊連接,用於存儲相應的交互數據;
映射管理模塊,用於對所述緩存模塊中的交互數據進行映射傳輸管理;
磁碟模塊,用於與所述緩存模塊進行數據映射傳輸。
優選地,所述緩存模塊包括:
緩存單元,用於存儲所述交互數據;
聚散列表單元,用於存放各所述交互數據對應的映射聚散列表。
優選地,所述交互模塊為SCSI接口模塊,用於通過DMA將外界伺服器發出的交互數據存放至所述緩存模塊。
優選地,還包括:IO調度模塊,所述IO調度模塊設置在所述映射管理模塊和所述磁碟模塊之間,用於對所述磁碟模塊進行IO調度。
優選地,還包括:啟動器,用於響應用戶操作,啟動所述RAID系統的運行。
與現有技術相比,上述技術方案具有以下優點:
本發明所提供的一種RAID系統,包括:交互模塊、緩存模塊、映射管理模塊和磁碟模塊;其中,交互模塊用於與外界伺服器進行數據交互;緩存模塊,與交互模塊連接,用於存儲相應的交互數據;映射管理模塊,用於對緩存模塊中的交互數據進行映射傳輸管理;磁碟模塊,用於與緩存模塊進行數據映射傳輸。在本技術方案中,當外界的伺服器和該RAID系統中的磁碟模塊進行數據交互時,當伺服器寫入數據時,緩存模塊對該寫入數據進行緩存,此時並不直接將緩存的寫入數據複製至磁碟模塊,而是由映射管理模塊控制緩存模塊將寫入數據以映射的方式將寫入數據的信息傳輸至磁碟模塊,從而實現數據在RAID內的零拷貝,從而提高數據傳輸的效率,節省內存空間。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明一種具體實施方式所提供的RAID系統結構示意圖。
具體實施方式
本發明的核心是提供一種RAID系統,可以提高數據傳輸的效率,節省內存空間。
為了使本發明的上述目的、特徵和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施方式做詳細的說明。
在以下描述中闡述了具體細節以便於充分理解本發明。但是本發明能夠以多種不同於在此描述的其它方式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣。因此本發明不受下面公開的具體實施的限制。
請參考圖1,圖1為本發明一種具體實施方式所提供的RAID系統結構示意圖。
本發明的一種具體實施方式提供了一種RAID系統,包括:交互模塊1、緩存模塊2、映射管理模塊3、磁碟模塊4;其中,交互模塊1用於與外界伺服器進行數據交互;緩存模塊2,與交互模塊1連接,用於存儲相應的交互數據;映射管理模塊3,用於對緩存模塊2中的交互數據進行映射傳輸管理;磁碟模塊4,用於與緩存模塊2進行數據映射傳輸。
在本實施方式中,當外界的伺服器和該RAID系統中的磁碟模塊進行數據交互時,當伺服器寫入數據時,緩存模塊對該寫入數據進行緩存,此時並不直接將緩存的寫入數據複製至磁碟模塊,而是由映射管理模塊控制緩存模塊將寫入數據以映射的方式將寫入數據的信息傳輸至磁碟模塊,從而實現數據在RAID內的零拷貝,從而提高數據傳輸的效率,節省內存空間。
在本發明的一種實施方式中,優選緩存模塊包括:緩存單元,用於存儲交互數據;聚散列表單元,用於存放各交互數據對應的映射聚散列表。交互模塊為SCSI接口模塊,用於通過DMA將外界伺服器發出的交互數據存放至緩存模塊。該系統還包括:IO調度模塊,IO調度模塊設置在映射管理模塊和磁碟模塊之間,用於對磁碟模塊進行IO調度。啟動器,用於響應用戶操作,啟動RAID系統的運行。
在本實施方式中,利用了PCI設備的DMA的聚散緩衝區來實現數據在RAID內的零拷貝。通過創建一個全局的緩衝區即本實施方式中的緩存單元,並利用聚散列表來描述緩衝區內,SCSI接口模塊通過DMA(直接內存存取)將數據放到緩衝區,聚散列表存放的是緩衝區中數據的對應關係,聚散列表可以看做是緩衝區中數據的指針。在RAID內的各模塊之間進行傳遞的是描述緩衝區數據的聚散列表,而不是實際的數據,不涉及內存拷貝操作,讀寫操作所請求的數據最後可以通過mmap傳遞到用戶空間,中間不涉及數據拷貝操作,即實現了零拷貝。在很大程度上提高了數據的傳輸效率,而且零拷貝方式還減少了數據在不同緩衝區中的副本數量,節省了內存空間。IO調取模塊的設置,使得RAID直接進行IO調度。
綜上所述,本發明所提供的RAID系統,通過零拷貝的方式實現RAID核心模塊之間數據的傳輸,提高了數據傳輸的效率,節省內存空間。
以上對本發明所提供的一種RAID系統進行了詳細介紹。本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想。應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。