国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種單控存儲的緩存管理方法及裝置與流程

      文檔序號:11154883閱讀:236來源:國知局
      一種單控存儲的緩存管理方法及裝置與制造工藝

      本發(fā)明涉及存儲技術(shù)領(lǐng)域,特別是涉及一種單控存儲的緩存管理方法及裝置。



      背景技術(shù):

      計算機(jī)發(fā)展過程中,CPU速度一直隨著摩爾定律發(fā)展,但作為主要存儲設(shè)備的磁盤系統(tǒng),訪問速度卻增長緩慢。因此,CPU和磁盤之間的性能差距就越來越大。目前常見的解決方案是通過增加服務(wù)器數(shù)量,從而增加存儲部件的數(shù)量來解決IO問題,但這種方法會造成計算資源的浪費(fèi);即使通過簡單地增加磁盤設(shè)備的數(shù)量來提高存儲系統(tǒng)性能,也會有更多的磁盤存儲空間被浪費(fèi);此外,其他電力成本、機(jī)房和環(huán)境成本也隨著服務(wù)器或磁盤設(shè)備數(shù)量的增加而不斷上升。

      不同的存儲介質(zhì)性能差別巨大,對于普通機(jī)械磁盤的訪問更多的是在等待。系統(tǒng)對內(nèi)存的訪問速度是普通機(jī)械硬盤的50000倍。因此,如果主機(jī)端對存儲的訪問都能在內(nèi)存獲取,存儲的性能將大大增加。由此,緩存的主要作用是保證主機(jī)端期望訪問的數(shù)據(jù)盡可能多的在緩存中,也即高緩存命中率。分級存儲的概念在計算機(jī)系統(tǒng)中得到了普遍采用,緩存層主要擔(dān)負(fù)兩方面的工作,一方面是將之前訪問過的數(shù)據(jù)緩存下來,根據(jù)數(shù)據(jù)訪問的時間局部性原理,這些數(shù)據(jù)在短期內(nèi)可能會被再次訪問,因此可以直接從緩存層讀出,而不用再次訪問主存介質(zhì)。另一方面,緩存層還需要對應(yīng)用即將訪問的數(shù)據(jù)做預(yù)測,并將預(yù)測的內(nèi)容提早讀入緩存介質(zhì)中。在預(yù)測正確的情況下,后續(xù)的訪問可以直接在緩存介質(zhì)中命中,也同樣避免了訪問速度較慢的主存介質(zhì)。

      在存儲細(xì)分市場中,單控產(chǎn)品2015年出貨額為16億元,占整個存儲市場規(guī)模的12.3%,2015/2014增長率為25.2%,高于存儲整體市場14.9%的平均增長率。由此可以看出單控存儲市場是占有巨大市場份額和潛力的,因此提高單控產(chǎn)品的性能,顯得尤為迫切和重要。因此,為單控存儲系統(tǒng)添加緩存管理模塊顯得尤為重要。

      單控存儲產(chǎn)品沒有緩存管理模塊,而機(jī)械硬盤讀寫性能有限導(dǎo)致讀寫性能、存儲性能較低的問題。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的目的是提供一種單控存儲的緩存管理方法及裝置,以實(shí)現(xiàn)提高存儲性能。

      為解決上述技術(shù)問題,本發(fā)明提供一種單控存儲的緩存管理裝置,該裝置包括:

      數(shù)據(jù)讀寫模塊,用于對讀寫請求和IO緩存讀寫進(jìn)行處理,向內(nèi)存通信模塊提供讀寫接口;

      管理配置模塊,用于對控制器的參數(shù)進(jìn)行初始化配置,并對塊設(shè)備的備份模式進(jìn)行初始化配置;

      預(yù)讀模塊,用于對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀。

      優(yōu)選的,所述裝置還包括:

      臟頁刷寫模塊,用于采用刷寫線程對塊設(shè)備發(fā)送寫請求,對臟頁進(jìn)行刷寫。

      優(yōu)選的,所述裝置還包括:

      內(nèi)存回收模塊,用于對IO緩存的數(shù)據(jù)結(jié)構(gòu)的緩存頁進(jìn)行回收。

      優(yōu)選的,IO緩存的數(shù)據(jù)結(jié)構(gòu)采用基數(shù)結(jié)構(gòu)。

      本發(fā)明還提供一種單控存儲的緩存管理方法,用于上述單控存儲的緩存管理裝置,該方法包括:

      數(shù)據(jù)讀寫模塊對讀寫請求和IO緩存讀寫進(jìn)行處理,向內(nèi)存通信模塊提供讀寫接口;

      管理配置模塊對控制器的參數(shù)進(jìn)行初始化配置,并對塊設(shè)備的備份模式進(jìn)行初始化配置;

      預(yù)讀模塊對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀。

      優(yōu)選的,預(yù)讀模塊對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀之后,還包括:

      臟頁刷寫模塊采用刷寫線程對塊設(shè)備發(fā)送寫請求,對臟頁進(jìn)行刷寫。

      優(yōu)選的,臟頁刷寫模塊采用刷寫線程對塊設(shè)備發(fā)送寫請求,對臟頁進(jìn)行刷寫之后,還包括:

      內(nèi)存回收模塊對IO緩存的數(shù)據(jù)結(jié)構(gòu)的緩存頁進(jìn)行回收。

      優(yōu)選的,IO緩存的數(shù)據(jù)結(jié)構(gòu)采用基數(shù)結(jié)構(gòu)。

      本發(fā)明所提供的一種單控存儲的緩存管理方法及裝置,數(shù)據(jù)讀寫模塊,用于對讀寫請求和IO緩存讀寫進(jìn)行處理,向內(nèi)存通信模塊提供讀寫接口;管理配置模塊,用于對控制器的參數(shù)進(jìn)行初始化配置,并對塊設(shè)備的備份模式進(jìn)行初始化配置;預(yù)讀模塊,用于對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀??梢?,針對單控存儲產(chǎn)品沒有緩存管理模塊,而機(jī)械硬盤讀寫性能有限導(dǎo)致讀寫性能、存儲性能較低的問題,提出本緩存管理方法和裝置,具有緩存功能,使讀寫更多在內(nèi)存中進(jìn)行,提高了讀寫效率和存儲的性能,并且采用預(yù)讀機(jī)制,提高緩存命中率,對于緩存管理,包含了接口部分、配置機(jī)制、預(yù)讀機(jī)制,適用于單控存儲產(chǎn)品的緩存管理,與直接將數(shù)據(jù)寫到磁盤相比,提高了提高讀寫效率和存儲性能。

      附圖說明

      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

      圖1為本發(fā)明所提供的一種單控存儲的緩存管理裝置的結(jié)構(gòu)示意圖;

      圖2為基樹高度為1的緩存結(jié)構(gòu)體示意圖;

      圖3為基樹高度為2的緩存結(jié)構(gòu)體示意圖;

      圖4為本發(fā)明所提供的一種單控存儲的緩存管理方法的流程圖。

      具體實(shí)施方式

      本發(fā)明的核心是提供一種單控存儲的緩存管理方法及裝置,以實(shí)現(xiàn)提高存儲性能。

      為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      請參考圖1,圖1為本發(fā)明所提供的一種單控存儲的緩存管理裝置的結(jié)構(gòu)示意圖,該裝置包括:

      數(shù)據(jù)讀寫模塊101,用于對讀寫請求和IO緩存讀寫進(jìn)行處理,向內(nèi)存通信模塊提供讀寫接口;

      管理配置模塊102,用于對控制器的參數(shù)進(jìn)行初始化配置,并對塊設(shè)備的備份模式進(jìn)行初始化配置;

      預(yù)讀模塊103,用于對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀。

      可見,針對單控存儲產(chǎn)品沒有緩存管理模塊,而機(jī)械硬盤讀寫性能有限導(dǎo)致讀寫性能、存儲性能較低的問題,提出本緩存管理裝置,具有緩存功能,使讀寫更多在內(nèi)存中進(jìn)行,提高了讀寫效率和存儲的性能,并且采用預(yù)讀機(jī)制,提高緩存命中率,對于緩存管理,包含了接口部分、配置機(jī)制、預(yù)讀機(jī)制,適用于單控存儲產(chǎn)品的緩存管理,與直接將數(shù)據(jù)寫到磁盤相比,提高了提高讀寫效率和存儲性能。

      基于上述裝置,進(jìn)一步的,所述裝置還包括:

      臟頁刷寫模塊,用于采用刷寫線程對塊設(shè)備發(fā)送寫請求,對臟頁進(jìn)行刷寫。

      進(jìn)一步的,所述裝置還包括:

      內(nèi)存回收模塊,用于對IO緩存的數(shù)據(jù)結(jié)構(gòu)的緩存頁進(jìn)行回收。

      其中,IO緩存的數(shù)據(jù)結(jié)構(gòu)采用基數(shù)結(jié)構(gòu)。

      詳細(xì)的,本發(fā)明中,針對單控存儲的特點(diǎn),緩存保存的數(shù)據(jù)結(jié)構(gòu)采用基數(shù)結(jié)構(gòu)。由根節(jié)點(diǎn)radix_tree_root和普通節(jié)點(diǎn)radix_tree_node組成,塊設(shè)備結(jié)構(gòu)blklu_info_s包含了一個icm_address_space結(jié)構(gòu),而icm_address_space又通過包含一個基樹根節(jié)點(diǎn)指向了一個基樹結(jié)構(gòu)來按頁保存文件緩存?;鶚涓?jié)點(diǎn)保存樹的高度height、申請頁內(nèi)存的標(biāo)記gfp_mask和最頂端的普通節(jié)點(diǎn)rnode。

      數(shù)據(jù)是緩存模塊的中心,IO緩存數(shù)據(jù)使用基樹來組織,緩存數(shù)據(jù)的基本單元是頁和“塊”,位于基樹的葉子節(jié)點(diǎn)。來自上層的數(shù)據(jù)讀寫傳入?yún)?shù)為起始位置pos和讀寫大小len,都是字節(jié)為單位,查找時首先轉(zhuǎn)換為頁索引index,然后對index每N位分段,對于節(jié)點(diǎn)的子節(jié)點(diǎn)數(shù)為64的基數(shù)N=6,index的最低N位的段數(shù)值為基樹最下層節(jié)點(diǎn)的子節(jié)點(diǎn)指針?biāo)饕?,以此上推直到最高層,基?shù)根節(jié)點(diǎn)保存了基樹的當(dāng)前樹高h(yuǎn)eight。對于index位寬32的情況,最大可表示到16TB。

      詳細(xì)的,本發(fā)明的緩存管理裝置包括五個部分:數(shù)據(jù)讀寫模塊、管理配置模塊、預(yù)讀模塊、臟頁刷寫模塊、內(nèi)存回收模塊。

      其中,數(shù)據(jù)讀寫模塊負(fù)責(zé)處理讀寫請求和IO緩存讀寫,向SCSI-TARGET和內(nèi)部通信模塊提供讀寫接口和功能。

      讀流程是指所要讀取數(shù)據(jù)的塊設(shè)備(raid/lv)在本地控制器上激活,所有對塊設(shè)備的直接讀寫都通過控制器進(jìn)行。

      其中,管理配置模塊向系統(tǒng)配置者提供模塊參數(shù)設(shè)置、監(jiān)控和異常事件處理。

      在緩存功能加載后使用前需要進(jìn)行幾項(xiàng)初始化配置,包括:設(shè)置控制器ID;添加控制器信息(控制器ID,地址(IP));設(shè)置控制器間通信連接的超時時間;設(shè)置本地LU的備份模式(啟用/取消)。

      在系統(tǒng)使用過程中需要添加塊設(shè)備LU、設(shè)置LU、設(shè)置LU讀寫策略等。

      其中,預(yù)讀模塊提供預(yù)讀功能,預(yù)讀功能支持并發(fā)順序讀的自動檢測和預(yù)讀,每個順序流使用“預(yù)讀窗”來表示預(yù)讀大小,當(dāng)讀請求使用完預(yù)讀的大部分?jǐn)?shù)據(jù)后移動預(yù)讀窗啟動異步預(yù)讀。

      其中,塊設(shè)備LU通用寫策略有直寫、寫回、寫鏡像(或者稱寫備份),這三種寫方式都是先將數(shù)據(jù)保存到IO緩存中再區(qū)別處理:對于直寫方式,會對剛寫的數(shù)據(jù)范圍向LU發(fā)起寫請求并等待完成;對于寫回方式,由刷寫線程發(fā)起寫請求或者由于臟頁比例過大由寫者發(fā)起但不等待寫完成;對于寫備份方式,刷寫者和寫回方式相同,區(qū)別是每個頁寫完成后需向鏡像端發(fā)起釋放/刪除命令。本裝置中只采用寫回的方式對臟頁進(jìn)行刷寫。

      其中,內(nèi)存回收模塊提供IO緩存相關(guān)的數(shù)據(jù)結(jié)構(gòu)的申請、釋放和緩存頁回收功能。

      如圖2和圖3所示,為本裝置采用的保存緩存的數(shù)據(jù)結(jié)構(gòu)?;鶚浣Y(jié)構(gòu)的葉子節(jié)點(diǎn)為struct icm_page_s結(jié)構(gòu),icm_page_s仿照內(nèi)核struct page結(jié)構(gòu)包含flags,index等字段,還包括指向struct page的指針。

      index成員字段表示了該頁在基樹中的位置(索引,單位為頁),根據(jù)index查找到對應(yīng)頁的方法是:從最低位算起,每6位就是對應(yīng)層的偏移量,即index的b5到b0的6位表示的值是該頁在基樹最底層的子節(jié)點(diǎn)上的64個槽位(子節(jié)點(diǎn)指針)中的索引,b11~b6表示倒數(shù)第二層節(jié)點(diǎn)上的64個槽位中的索引。

      反過來說,對于index為32位的unsigned long類型,如果層高為7,則b31~b30表示最頂層(第7層)的節(jié)點(diǎn)的64個槽位中的索引,b29~b24表示第6層節(jié)點(diǎn)上的64個槽位中的位置,如此類推直到第一層查找到對應(yīng)的葉子節(jié)點(diǎn)即page結(jié)構(gòu)。

      基樹的高度隨著page頁數(shù)增加而擴(kuò)展,對于高度為h的情況,葉子節(jié)點(diǎn)數(shù)最大為2^(6*h)-1,對于32位頁索引值index,最大的線性保存頁數(shù)為2^32-1個,即16TB數(shù)據(jù),就目前的塊設(shè)備大小來說滿足需求。

      對于頁高速緩存的操作主要有:查找頁、添加頁、刪除頁、更新頁。這些操作都圍繞對應(yīng)的基樹進(jìn)行,應(yīng)注意使用合適的鎖防止并發(fā)沖突。當(dāng)添加頁時若當(dāng)前基樹高度不夠則需擴(kuò)展樹高,擴(kuò)展樹高逐層增高,增加一層的方法是新分配一個普通節(jié)點(diǎn),將當(dāng)前樹的最高層普通節(jié)點(diǎn)移動到新普通節(jié)點(diǎn)的第一個子節(jié)點(diǎn)槽位,而將新普通節(jié)點(diǎn)作為新的最高層普通節(jié)點(diǎn)。

      請參考圖4,圖4為本發(fā)明所提供的一種單控存儲的緩存管理方法的流程圖,該方法用于上述單控存儲的緩存管理裝置,該方法包括:

      S11:數(shù)據(jù)讀寫模塊對讀寫請求和IO緩存讀寫進(jìn)行處理,向內(nèi)存通信模塊提供讀寫接口;

      S12:管理配置模塊對控制器的參數(shù)進(jìn)行初始化配置,并對塊設(shè)備的備份模式進(jìn)行初始化配置;

      S13:預(yù)讀模塊對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀。

      可見,針對單控存儲產(chǎn)品沒有緩存管理模塊,而機(jī)械硬盤讀寫性能有限導(dǎo)致讀寫性能、存儲性能較低的問題,提出本緩存管理方法,具有緩存功能,使讀寫更多在內(nèi)存中進(jìn)行,提高了讀寫效率和存儲的性能,并且采用預(yù)讀機(jī)制,提高緩存命中率,對于緩存管理,包含了接口部分、配置機(jī)制、預(yù)讀機(jī)制,適用于單控存儲產(chǎn)品的緩存管理,與直接將數(shù)據(jù)寫到磁盤相比,提高了提高讀寫效率和存儲性能。

      基于上述方法,進(jìn)一步的,預(yù)讀模塊對要讀寫的數(shù)據(jù)進(jìn)行檢測和預(yù)讀之后,還包括:臟頁刷寫模塊采用刷寫線程對塊設(shè)備發(fā)送寫請求,對臟頁進(jìn)行刷寫。

      進(jìn)一步的,臟頁刷寫模塊采用刷寫線程對塊設(shè)備發(fā)送寫請求,對臟頁進(jìn)行刷寫之后,還包括:內(nèi)存回收模塊對IO緩存的數(shù)據(jù)結(jié)構(gòu)的緩存頁進(jìn)行回收。

      其中,IO緩存的數(shù)據(jù)結(jié)構(gòu)采用基數(shù)結(jié)構(gòu)。

      不同的存儲介質(zhì)性能差別巨大,對于普通機(jī)械磁盤的訪問更多的是在等待。系統(tǒng)對內(nèi)存的訪問速度是普通機(jī)械硬盤的50000倍。因此,如果主機(jī)端對存儲的訪問都能在內(nèi)存獲取,存儲的性能將大大增加。由此,緩存的主要作用是保證主機(jī)端期望訪問的數(shù)據(jù)盡可能多的在緩存中,也即高緩存命中率。

      針對現(xiàn)在單控產(chǎn)品仍將數(shù)據(jù)直接寫到磁盤的現(xiàn)狀,本發(fā)明提出一種適用于單控存儲產(chǎn)品的緩存管理方法及裝置,用于提高讀寫效率、存儲性能。在單控存儲系統(tǒng)添加緩存管理方法及裝置,本緩存管理方法和裝置包含如下幾個部分:接口部分、預(yù)讀機(jī)制、寫回機(jī)制、內(nèi)存回收包含接口部分、預(yù)讀機(jī)制、寫回機(jī)制、內(nèi)存回收,與直接將數(shù)據(jù)寫到磁盤相比,提高了提高讀寫效率和存儲性能。

      以上對本發(fā)明所提供的一種單控存儲的緩存管理方法及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1