欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種磁盤在線重構(gòu)方法

文檔序號:6439290閱讀:631來源:國知局
專利名稱:一種磁盤在線重構(gòu)方法
技術(shù)領(lǐng)域
本發(fā)明涉及獨立冗余磁盤陣列(RAID)系統(tǒng)領(lǐng)域,特別是涉及一種磁盤在線重構(gòu)方法。
背景技術(shù)
隨著計算機(jī)數(shù)據(jù)處理能力的不斷增強(qiáng),硬盤的讀取速度已無法滿足大量數(shù)據(jù)讀取的需要,因而出現(xiàn)了獨立冗余磁盤陣列技術(shù),其以成本低、功耗小、傳輸速率高、實現(xiàn)簡單等優(yōu)點,在網(wǎng)絡(luò)服務(wù)器等設(shè)備中得到廣泛應(yīng)用。
RAID技術(shù)的優(yōu)點之一就是能夠在磁盤損壞時進(jìn)行在線磁盤重構(gòu)。目前主流的磁盤重構(gòu)方法如下構(gòu)造N個進(jìn)程,N-1個進(jìn)程對應(yīng)N-1個仍然正常工作的磁盤,一個進(jìn)程對應(yīng)于熱備盤。
與正常工作的磁盤相連的進(jìn)程進(jìn)行如下的處理步驟1、找到該磁盤上地址最低的分條單元;步驟2、若緩沖區(qū)(buffer)有足夠的空間接收數(shù)據(jù),則對該分條單元發(fā)出一個低優(yōu)先級的讀請求,讀至緩沖區(qū)內(nèi)(跳過已重構(gòu)完畢的分條);步驟3、等待讀操作完成,如果緩沖區(qū)管理器(buffer manager)中有緩沖區(qū)能接受該數(shù)據(jù),將該數(shù)據(jù)送至緩沖區(qū)管理器的緩沖區(qū)中進(jìn)行異或,并返回步驟1,否則等待,直到所有的分條單元都被讀完。
與熱備盤相連的進(jìn)程進(jìn)行如下處理步驟4、若緩沖區(qū)管理器中有已進(jìn)行完所有分條單元異或的緩沖區(qū),取出,進(jìn)入下一步,否則等待;步驟5、對熱備盤發(fā)出一個低優(yōu)先級的寫請求,將取來的緩沖區(qū)中的數(shù)據(jù)寫至熱備盤上,返回步驟4,等待寫完成,直到失敗磁盤所有數(shù)據(jù)都得到重構(gòu)。
目前主流的Raid技術(shù)中均含有對邏輯單元(LUN,Logical Unit Number)的劃分,Raid的分條深度,即在一個單盤上可以連續(xù)讀寫的數(shù)據(jù)數(shù)量,依LUN的大小而指定,所以各LUN的分條深度互有不同。
從上面流程可知,在面向磁盤的重構(gòu)算法中,由于不同磁盤上的用戶隨機(jī)到達(dá),有可能某些進(jìn)程讀取的數(shù)據(jù)塊比其它進(jìn)程多,緩存管理進(jìn)程必須管理這些信息直到系統(tǒng)中最慢進(jìn)程提交數(shù)據(jù)上來。這樣各個進(jìn)程對緩存的需求隨時變化,沒有一個固定值,但是系統(tǒng)的緩存是有限的,因而必須限制各個進(jìn)程的緩存需求量。而重構(gòu)過程中,是按分條單元地址由低到高順序進(jìn)行的,因此緩沖區(qū)管理器中申請緩沖區(qū)的大小很難確定。而如果緩沖區(qū)的大小不固定,則會增加緩存的申請釋放過程,影響系統(tǒng)性能。對此,目前通常的做法是使緩沖區(qū)管理器中的緩沖區(qū)大小依最大的分條單元而定。這樣雖然統(tǒng)一了緩沖區(qū)的大小,但可能造成內(nèi)存的浪費。特別是當(dāng)分條深度差別較大時,比如按照不同應(yīng)用,一個邏輯單元的分條深度可能相差上千倍,那么如果按最大的分條深度統(tǒng)一申請的緩存大小,將長時間占用buffer manager中的大塊緩存,從而造成內(nèi)存資源的極大浪費。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種基于磁盤邏輯單元在線重構(gòu)中的緩存管理方法。使通過該方法能夠在保證較少的buffer manager內(nèi)存申請釋放次數(shù)的同時,降低內(nèi)存的浪費。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的一種磁盤邏輯單元在線重構(gòu)中的緩存管理方法,包括以下步驟a)預(yù)先將獨立冗余磁盤陣列中分條深度大小相近的邏輯單元劃分成至少一個以上的組;b)磁盤重構(gòu)過程開始,按RAID中分條深度最大的LUN申請一塊緩存作為專有緩存,按組進(jìn)行重構(gòu),重構(gòu)進(jìn)行到某一組時,按該組中分條深度最大的LUN申請一塊緩存作為自由緩存,預(yù)留緩存的申請與自由緩存的相同。
較佳的使該方法步驟a)所劃分的每個組中所有LUN的分條深度大小之和相近。
該方法進(jìn)一步包括設(shè)定一個閾值,如果RAID中分條深度最大的LUN與分條深度最小的LUN的比值小于該閾值,則令步驟a)中的分組個數(shù)為1,否則,令步驟a)中的分組個數(shù)為3至5之間。
該方法所述閾值為2或3。
通過上述方案可以看出,針對傳統(tǒng)面向磁盤的重構(gòu)算法的缺點,本發(fā)明增加了對LUN的區(qū)分,這樣buffer manager的buffer大小可以根據(jù)LUN組的變更進(jìn)行調(diào)整,從而實現(xiàn)內(nèi)存的較低浪費和內(nèi)存的較少次申請釋放過程。


圖1為本發(fā)明實施例的實現(xiàn)示意圖。
具體實施例方式
下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
通常RAID重構(gòu)緩存包括三部分專有緩存、預(yù)留緩存、自由緩存。專有緩存在重構(gòu)過程中專用于讀取磁盤數(shù)據(jù);自由緩存用于保存待異或數(shù)據(jù);預(yù)留緩存屬于自由緩存的一部分,主要用于當(dāng)出現(xiàn)強(qiáng)制重構(gòu),即用戶寫請求的分條正處于重構(gòu)狀態(tài)時,專有緩存若無法提交自由緩存進(jìn)行異或操作,則專有緩存提交預(yù)留緩存完成異或操作。
針對前面所述的發(fā)明目的,本發(fā)明采用如下策略先將分條深度較接近的LUN分為一組,然后按組進(jìn)行重構(gòu),當(dāng)重構(gòu)到某一組時,按該組中最大的分條深度申請自由緩存和預(yù)留緩存,待該組重構(gòu)完成后再將其釋放,而用于磁盤數(shù)據(jù)預(yù)讀取的專有緩存則按整個RAID中最大分條深度的LUN申請,申請之后,除非重構(gòu)結(jié)束,專有緩存不被釋放。這樣通過將LUN分組,從而既減少緩存資源占用,又保證了盡量少的緩存申請釋放次數(shù)。
在實際操作過程中,還要考慮到如果RAID中各LUN分條深度相差不大,則沒必要對其分組。
因此,首先給定一個閾值M。并假設(shè)N=MAX_Memery_Requied/MIN_Memery_Requied。這里Memery_Requied為每個LUN重構(gòu)時所需的緩存大??;MAX_Memery_Requied為該RAID中LUN的最大值;MIN_Memery_Requied為其中的最小值。
有如下兩種情況1、N小于M,此時由于分條深度之間差距較小,可不對其分組,而是統(tǒng)一申請一塊緩存池,專有緩存、自由緩存和預(yù)留緩存,都可按該RAID中LUN的最大分條深度統(tǒng)一申請。當(dāng)然也可以認(rèn)為將整個RAID是分成了一組。這樣既降低了內(nèi)存管理難度,也減少了內(nèi)存釋放的頻度。比如有LUN1~LUN5,其最大分條單元深度為45個Sectors,那么所需的重構(gòu)緩存不會超過1MB,此時LUN1~LUN5完全可以固定申請一塊緩存池,統(tǒng)一使用。
2、N大于M,此時分條深度差異較大。則需按上述方法分組進(jìn)行磁盤重構(gòu)。
閾值M,一般在2~3之間。其具體值,可根據(jù)該RAID組的應(yīng)用場合,并結(jié)合系統(tǒng)配置,合理設(shè)置M。比如對于多媒體應(yīng)用,由于一個分條單元大小較大,一般在512K~4M之間,則M可設(shè)置略大,如3。
參見圖1所示,以RAID5為例來說明基于LUN的在線重構(gòu)方法。
一般情況下,LUN之間的分條深度差異不很均勻。如圖1中的情況,則可先確定一個允許差值δ,比較RAID組中所有LUN的分條深度,將滿足|LUNi-LUNj|≤δ的LUN集中起來,根據(jù)分組情況,分別申請緩存,供其重構(gòu)使用。
比如若設(shè)δ=50扇區(qū)(Sectors),則將LUN1~LUN5分成了三個組,組1LUN1、LUN3;組2LUN2、LUN4;組3LUN5。在重構(gòu)過程中,專有緩存大小恒定為800個Sectors;自由緩存或預(yù)留緩存則隨著重構(gòu)的進(jìn)行,依次取為250個Sectors、350個Sectors、800個Sectors。重構(gòu)時,按照LUN1與LUN3第一組、LUN2與LUN4第二組、LUN5第三組順序依次重構(gòu),重構(gòu)完成一組LUN,重新申請自由緩存。
具體步驟是步驟1申請專有緩存的大小為800個Sectors。
步驟2讀取LUN1中的數(shù)據(jù)到專有緩存,申請自由緩存的大小為250個Sectors,將LUN1的數(shù)據(jù)提交到自由緩存,進(jìn)行異或操作,完成后將數(shù)據(jù)發(fā)送至熱備盤。此時保留該自由緩存,繼續(xù)按以上步驟對LUN3進(jìn)行重構(gòu),即讀取LUN3中的數(shù)據(jù)到專有緩存,將LUN3的數(shù)據(jù)提交到自由緩存,待LUN3的所有分條單元的數(shù)據(jù)進(jìn)行完異或后,將數(shù)據(jù)發(fā)送至熱備盤,從而完成了組1的重構(gòu)。
這樣,組1重構(gòu)完成后,釋放該自由緩存;重新申請自由緩存大小為350個Sectors,對組2的LUN2、LUN4按上述步驟一次進(jìn)行重構(gòu),完成后,釋放該自由緩存;再申請自由緩存的大小為800個Sectors,對組3的LUN5進(jìn)行重構(gòu)。
當(dāng)出現(xiàn)強(qiáng)制重構(gòu)時,若無法將數(shù)據(jù)從專有緩存提交自由緩存進(jìn)行異或操作,則提交預(yù)留緩存完成異或操作,其步驟及緩存申請辦法與自由緩存相同。
這里的δ,以使分組數(shù)目在3~5之間為好,太大太小都起不到分組歸類的目的。且分組時,最好能使每個分組中所有LUN大小之和相近,這樣重構(gòu)的每個分組大小相近,若主機(jī)每個分組的訪問頻率相近的情況下,每個分組的重構(gòu)時間相近,不至使某個分組重構(gòu)時間過長,某個分組的重構(gòu)時間又過短。由于某個LUN重構(gòu)時,主機(jī)對該LUN的訪問效率總會受到影響,減少某個LUN所在分組的重構(gòu)時間,對提高主機(jī)對該LUN的訪問效率是有好處的。
如果RAID系統(tǒng)各LUN的分條深度相差恰好較為均勻,比如同樣是圖1結(jié)構(gòu)的RAID系統(tǒng),而LUN的分條深度從LUN1到LUN5恰好依次為100、200、300、400、500個Sectors,此時很難確定一個合適的δ大小,因此可以根據(jù)上述各分組中LUN大小之和相近的原則,將LUN1到LUN3劃為一組,LUN4為一組,最后LUN5為一組。重構(gòu)過程與上述相同。
另外,對于另一種情況,比如仍以圖1結(jié)構(gòu)的RAID為例。如果LUN1至LUN5依次為100、210、300、410、500,雖然此時按設(shè)定一個差值δ的方法可以分組,但無法滿足各組中LUN大小之和相近原則,此時可同樣將LUN1到LUN3劃為一組,LUN4為一組,最后LUN5為一組。
總之,分組原則既要使分組數(shù)目不能太多,通常在3~5之間,以保證緩存較少的申請釋放次數(shù),又要使各分組中LUN大小之和相近。這樣可根據(jù)實際情況,綜合考慮上述兩原則來確定較佳的分組方案。當(dāng)然,在具體實施方式
中并不僅限于上述分組方法。即保證較少的緩存申請釋放次數(shù),又實現(xiàn)內(nèi)存的較低浪費的其他分組方法也可達(dá)到本發(fā)明的目的。
權(quán)利要求
1.一種磁盤在線重構(gòu)方法,其特征在于,包括以下步驟a)預(yù)先將獨立冗余磁盤陣列(RAID)中分條深度大小相近的邏輯單元(LUN)劃分成至少一個以上的組;b)磁盤重構(gòu)過程開始,按RAID中分條深度最大的LUN申請一塊緩存作為專有緩存,按組進(jìn)行重構(gòu),重構(gòu)進(jìn)行到某一組時,按該組中分條深度最大的LUN申請一塊緩存作為自由緩存,預(yù)留緩存的申請與自由緩存的相同。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a)所劃分的每個組中所有LUN的分條深度大小之和相近。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括設(shè)定一個閾值,如果RAID中分條深度最大的LUN與分條深度最小的LUN的比值小于該閾值,則令步驟a)中的分組個數(shù)為1,否則,令步驟a)中的分組個數(shù)為3至5之間。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述閾值為2或3。
全文摘要
本發(fā)明公開了一種磁盤在線重構(gòu)方法,包括以下步驟預(yù)先將獨立冗余磁盤陣列(RAID)中的分條深度大小相近的邏輯單元(LUN)劃分成至少一個以上的組;磁盤重構(gòu)過程開始,按RAID中分條深度最大的LUN申請一塊緩存作為專有緩存,按組進(jìn)行重構(gòu),重構(gòu)進(jìn)行到某一組時,按該組中分條深度最大的LUN申請一塊緩存作為自由緩存,預(yù)留緩存的申請與自由緩存的相同。通過本發(fā)明方案能夠在保證較少的緩沖區(qū)管理器內(nèi)存申請釋放次數(shù)的同時,降低內(nèi)存的浪費。
文檔編號G06F12/00GK1519726SQ0310246
公開日2004年8月11日 申請日期2003年1月24日 優(yōu)先權(quán)日2003年1月24日
發(fā)明者張巍, 張國彬, 任雷鳴, 陳紹元, 鄭珉, 胡鵬, 羅傳藻, 張 巍 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
马山县| 曲麻莱县| 大安市| 正安县| 龙陵县| 噶尔县| 镇安县| 泰顺县| 昌乐县| 瑞安市| 安宁市| 龙门县| 江陵县| 澄城县| 拜泉县| 昌吉市| 青浦区| 望江县| 曲沃县| 普定县| 元江| 滦平县| 任丘市| 尉犁县| 静乐县| 盘山县| 时尚| 东莞市| 彭泽县| 城市| 巴林右旗| 鄯善县| 惠东县| 曲靖市| 托里县| 凉城县| 锦州市| 东乌珠穆沁旗| 湛江市| 上高县| 高清|