本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除方法和裝置。
背景技術(shù):
分布式存儲(chǔ)系統(tǒng)是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)服務(wù)器上,利用多機(jī)的并行處理能力,提高穩(wěn)定性和線性擴(kuò)展能力的一種形式。它相對(duì)于以往的集中存儲(chǔ)系統(tǒng),更加注重并發(fā)處理、避免單點(diǎn)故障和性能瓶頸。
分布式存儲(chǔ)系統(tǒng)對(duì)外是單一的IO接口,對(duì)內(nèi)會(huì)包括分散的存儲(chǔ)節(jié)點(diǎn)、節(jié)點(diǎn)間的通訊線路和各節(jié)點(diǎn)協(xié)同工作的管控機(jī)制。數(shù)據(jù)的存儲(chǔ)格式雖然多樣,但是原則都是增加其冗余性,典型的如RAID。通過(guò)對(duì)各個(gè)節(jié)點(diǎn)上直連的存儲(chǔ)進(jìn)行切片。外部數(shù)據(jù)在存儲(chǔ)時(shí)會(huì)分散到各個(gè)節(jié)點(diǎn)的各個(gè)存儲(chǔ)上,同時(shí)會(huì)依據(jù)數(shù)學(xué)公式計(jì)算出冗余性的校驗(yàn)數(shù)據(jù)parity,parity也會(huì)分散在各個(gè)節(jié)點(diǎn)。這樣,針對(duì)寫(xiě)請(qǐng)求,系統(tǒng)能夠充分利用多節(jié)點(diǎn)、多磁盤(pán)同時(shí)寫(xiě)入的優(yōu)勢(shì),縮短寫(xiě)入所需要的時(shí)間。針對(duì)讀請(qǐng)求,可以并發(fā)讀取,并且如果部分原始數(shù)據(jù)無(wú)法訪問(wèn)(物理介質(zhì)損壞或者所在節(jié)點(diǎn)不可訪問(wèn)),系統(tǒng)可以利用冗余數(shù)據(jù)來(lái)得到并修復(fù)原始數(shù)據(jù)。
當(dāng)損壞的物理介質(zhì)被更換或者掉線的節(jié)點(diǎn)重新上線之后,系統(tǒng)再將需要更新的數(shù)據(jù)重新寫(xiě)到其物理介質(zhì)上,保證存儲(chǔ)數(shù)據(jù)的正確性,也保證用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的一致性。這個(gè)寫(xiě)入的過(guò)程叫做重構(gòu)。
實(shí)際經(jīng)常發(fā)生的情況是網(wǎng)絡(luò)故障或者維護(hù)行為造成的節(jié)點(diǎn)短暫離線。節(jié)點(diǎn)上線后該節(jié)點(diǎn)上就會(huì)集中大量的重構(gòu)IO。過(guò)量的IO請(qǐng)求會(huì)造成底層磁盤(pán)的負(fù)載加大,拖慢其處理速度,延長(zhǎng)請(qǐng)求的響應(yīng)時(shí)間,也會(huì)造成系統(tǒng)自身資源,尤其是緩沖區(qū)的浪費(fèi)。因?yàn)橄到y(tǒng)緩沖區(qū)是有限制的,被單個(gè)節(jié)點(diǎn)拖慢后,其他節(jié)點(diǎn)雖然空閑,但是沒(méi)法執(zhí)行進(jìn)一步的處理。如此,原本的高并發(fā)就被串行化了,極大削弱了分布式系統(tǒng)的并發(fā)能力。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除方法和裝置,能夠?qū)χ貥?gòu)過(guò)程進(jìn)行管控,保證分布式系統(tǒng)的并發(fā)處理能力。
為了達(dá)到上述目的,本發(fā)明提供了如下技術(shù)方案:
一種分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除方法,分布式存儲(chǔ)系統(tǒng)中的一節(jié)點(diǎn)上線后觸發(fā)針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的所有存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,該方法用于執(zhí)行針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的任一存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,包括:
步驟A、下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn);
步驟B、檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件,如果發(fā)生重構(gòu)熱點(diǎn)事件,則執(zhí)行步驟C,否則,返回執(zhí)行步驟A;
步驟C、按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程,如果需要結(jié)束重構(gòu)過(guò)程,則執(zhí)行步驟D,否則,返回執(zhí)行步驟A。
步驟D、結(jié)束針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程。
一種分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除裝置,分布式存儲(chǔ)系統(tǒng)中的一節(jié)點(diǎn)上線后觸發(fā)針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的所有存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,該裝置用于執(zhí)行針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的任一存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,包括:下發(fā)單元、檢測(cè)單元、處理單元;
所述下發(fā)單元,用于下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn);
所述檢測(cè)單元,用于下發(fā)單元下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn)后,檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件;
所述處理單元,用于如果檢測(cè)單元檢測(cè)確定未發(fā)生重構(gòu)熱點(diǎn)事件,則指示下發(fā)單元繼續(xù)下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn);如果檢測(cè)單元檢測(cè)確定發(fā)生重構(gòu)熱點(diǎn)事件,則按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程,若需要結(jié)束重構(gòu)過(guò)程,則結(jié)束針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,若不需要結(jié)束重構(gòu)過(guò)程,則指示下發(fā)單元繼續(xù)下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn)。
由上面的技術(shù)方案可知,本發(fā)明中,在執(zhí)行重構(gòu)的過(guò)程中,每次下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的一個(gè)重構(gòu)IO到該節(jié)點(diǎn)后,就檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件,當(dāng)發(fā)生重構(gòu)熱點(diǎn)事件,按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程,從而可以結(jié)束部分重構(gòu)過(guò)程,同時(shí)保留另一部分重構(gòu)過(guò)程繼續(xù)正常執(zhí)行,實(shí)現(xiàn)對(duì)重構(gòu)過(guò)程進(jìn)行管控,保證分布式系統(tǒng)的并發(fā)處理能力。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除方法流程圖;
圖2是本發(fā)明實(shí)施例分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖并據(jù)實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
在分布式存儲(chǔ)系統(tǒng)中,當(dāng)因損壞的物理介質(zhì)被更換或節(jié)點(diǎn)掉線再上線的時(shí)段內(nèi),如果用戶寫(xiě)入新的數(shù)據(jù),則會(huì)造成該節(jié)點(diǎn)中的部分存儲(chǔ)區(qū)域上所存的原始的用戶數(shù)據(jù)或者系統(tǒng)生成的冗余校驗(yàn)數(shù)據(jù)需要更新。當(dāng)節(jié)點(diǎn)重新上線后,為保證存儲(chǔ)數(shù)據(jù)的正確性,保證用戶數(shù)據(jù)和校驗(yàn)數(shù)據(jù)的一致性,需要針對(duì)該節(jié)點(diǎn)中的需要進(jìn)行數(shù)據(jù)更新的所有存儲(chǔ)區(qū)域啟動(dòng)重構(gòu)過(guò)程,其中,對(duì)于每個(gè)需要進(jìn)行數(shù)據(jù)更新的存儲(chǔ)區(qū)域,均啟動(dòng)一個(gè)對(duì)應(yīng)的重構(gòu)過(guò)程(也即重構(gòu)進(jìn)程)。
為了避免多個(gè)重構(gòu)過(guò)程因爭(zhēng)奪資源而導(dǎo)致分布式系統(tǒng)的并發(fā)能力的削弱,本發(fā)明中,在每個(gè)重構(gòu)過(guò)程中引入重構(gòu)熱點(diǎn)事件的概念,當(dāng)重構(gòu)速度過(guò)慢,和,磁盤(pán)響應(yīng)時(shí)間(wait)值過(guò)大時(shí),確定發(fā)生重構(gòu)熱點(diǎn)事件。
一般情況下,在一個(gè)重構(gòu)過(guò)程中檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),其它重構(gòu)過(guò)程檢測(cè)到重構(gòu)熱點(diǎn)事件的概率也很大,如果此時(shí)都結(jié)束重構(gòu)過(guò)程,并都在此后選擇其他時(shí)間進(jìn)行重構(gòu)的話,則還會(huì)造成擁塞。因此,本發(fā)明中,在檢測(cè)確定發(fā)生重構(gòu)熱點(diǎn)事件時(shí),按照預(yù)設(shè)算法確定是繼續(xù)執(zhí)行重構(gòu)過(guò)程或暫時(shí)結(jié)束重構(gòu)過(guò)程,從而可以避免同時(shí)結(jié)束過(guò)多重構(gòu)過(guò)程。
參見(jiàn)圖1,圖1是本發(fā)明實(shí)施例分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除方法流程圖,其特征在于,分布式存儲(chǔ)系統(tǒng)中的一節(jié)點(diǎn)上線后觸發(fā)針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的所有存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,該方法用于執(zhí)行針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的任一存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,包括:
步驟101、下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn);
步驟102、檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件,如果發(fā)生重構(gòu)熱點(diǎn)事件,則執(zhí)行步驟103,否則,返回執(zhí)行步驟101;
步驟103、按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程,如果需要結(jié)束重構(gòu)過(guò)程,則執(zhí)行步驟104,否則,返回執(zhí)行步驟101。
步驟104、結(jié)束針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程。
結(jié)束針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程之后,還可以等待一段時(shí)間后,再次重啟重構(gòu)過(guò)程,也即再次執(zhí)行上述下發(fā)重構(gòu)步驟101-104,而且再次重啟的重構(gòu)過(guò)程只針對(duì)尚未下發(fā)的指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO即可,因此,本實(shí)施例還包括以下步驟105:
步驟105、在預(yù)設(shè)時(shí)長(zhǎng)后,基于尚未下發(fā)的指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO,重啟針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程。
在實(shí)際應(yīng)用中,過(guò)量的IO請(qǐng)求會(huì)導(dǎo)致底層磁盤(pán)的負(fù)載加大,拖慢其處理速度,延長(zhǎng)請(qǐng)求的響應(yīng)時(shí)間,此時(shí)該存儲(chǔ)區(qū)域的重構(gòu)速度必然會(huì)變慢,而該存儲(chǔ)區(qū)域所屬磁盤(pán)的響應(yīng)時(shí)間(wait)值也會(huì)變大,因此,將該存儲(chǔ)區(qū)域的重構(gòu)速度和/或該存儲(chǔ)區(qū)域所屬磁盤(pán)的wait值作為衡量是否出現(xiàn)重構(gòu)熱點(diǎn)事件的衡量因素。
檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件的方法至少有以下三種:
1)計(jì)算該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)速度,如果該存儲(chǔ)區(qū)域的重構(gòu)速度低于預(yù)設(shè)重構(gòu)速度,則確定發(fā)生重構(gòu)熱點(diǎn)事件,否則,確定未發(fā)生重構(gòu)熱點(diǎn)事件;
2)獲取該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域所屬磁盤(pán)的wait值,如果該磁盤(pán)wait值大于預(yù)設(shè)響應(yīng)時(shí)間閾值,則確定發(fā)生重構(gòu)熱點(diǎn)事件,否則,確定未發(fā)生重構(gòu)熱點(diǎn)事件;
3)計(jì)算該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)速度,并獲取該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域所屬磁盤(pán)的響應(yīng)時(shí)間wait值,如果該存儲(chǔ)區(qū)域的重構(gòu)速度低于預(yù)設(shè)重構(gòu)速度且該磁盤(pán)wait值大于預(yù)設(shè)響應(yīng)時(shí)間閾值,則確定發(fā)生重構(gòu)熱點(diǎn)事件,否則,確定未發(fā)生重構(gòu)熱點(diǎn)事件。
其中,
上述存儲(chǔ)區(qū)域的重構(gòu)速度,也即該存儲(chǔ)區(qū)域的寫(xiě)入速度,可以使用最近一段時(shí)間內(nèi)下發(fā)到該存儲(chǔ)區(qū)域的重構(gòu)IO的平均寫(xiě)入速度衡量,也可以使用最近一次下發(fā)到該存儲(chǔ)區(qū)域的重構(gòu)IO的寫(xiě)入速度衡量。
上述磁盤(pán)的wait值,根據(jù)操作系統(tǒng)不同,獲取手段也不相同,但是均可以使用命令獲得,例如,在linux環(huán)境下可以通過(guò)iostat(1)命令獲得。wait值越大,表明IO等待磁盤(pán)處理的時(shí)間越長(zhǎng),表明磁盤(pán)越繁忙。
在本實(shí)施例中,按照檢測(cè)到重構(gòu)熱點(diǎn)事件的次數(shù)越多,結(jié)束重構(gòu)過(guò)程的幾率越大的原則設(shè)計(jì)判斷是否需要結(jié)束重構(gòu)過(guò)程的算法。
在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)首次檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),需要將該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域ID除以第一預(yù)設(shè)值(例如16)的余數(shù)設(shè)置為第一衡量值x,同時(shí)還獲取檢測(cè)到重構(gòu)熱點(diǎn)事件的時(shí)間T,將T除以第一預(yù)設(shè)值的余數(shù)作為第二衡量值y。
將上述第一衡量值x和第二衡量值y用于判斷是否需要結(jié)束重構(gòu)過(guò)程的算法中,其中第一衡量值x隨檢測(cè)到重構(gòu)熱點(diǎn)事件的次數(shù)變化而變化。
具體地,按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程包括:
如果不是首次檢測(cè)到重構(gòu)熱點(diǎn)事件,則將x賦值為x與第二預(yù)設(shè)值(例如2)的商;
比較x與y的大小,如果x小于y,則確定需要結(jié)束重構(gòu)過(guò)程,否則,確定不需要結(jié)束重構(gòu)過(guò)程。
這里,第二預(yù)設(shè)值為大于1的自然數(shù)。
在實(shí)際實(shí)現(xiàn)中,當(dāng)連續(xù)多次未檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),說(shuō)明節(jié)點(diǎn)在此段時(shí)間內(nèi)的節(jié)點(diǎn)底層磁盤(pán)負(fù)載不大,此后如果再次檢測(cè)到重構(gòu)熱點(diǎn)事件,可以將該次重構(gòu)熱點(diǎn)事件視為首次發(fā)生重構(gòu)熱點(diǎn)事件,從而降低此時(shí)結(jié)束重構(gòu)過(guò)程的概率。
為此,本發(fā)明中以重構(gòu)沖突次數(shù)標(biāo)記檢測(cè)到重構(gòu)熱點(diǎn)事件的次數(shù),以重構(gòu)未沖突次數(shù)標(biāo)記未檢測(cè)到重構(gòu)熱點(diǎn)事件的次數(shù),在初始情況下,可以將重構(gòu)沖突次數(shù)和重構(gòu)未沖突次數(shù)初始化為0。
在執(zhí)行重構(gòu)的過(guò)程中,在檢測(cè)確定發(fā)生重構(gòu)熱點(diǎn)事件之后,可以將重構(gòu)沖突次數(shù)增1,將重構(gòu)未沖突次數(shù)清零。而在檢測(cè)確定未發(fā)生重構(gòu)熱點(diǎn)事件之后,可以將重構(gòu)未沖突次數(shù)增1,如果重構(gòu)未沖突次數(shù)大于第三預(yù)設(shè)值(例如4),則將重構(gòu)沖突次數(shù)清零。相應(yīng)地,判斷是否為首次檢測(cè)到重構(gòu)熱點(diǎn)事件的方法具體為:如果重構(gòu)沖突次數(shù)為1,則確定是首次檢測(cè)到重構(gòu)熱點(diǎn)事件,否則,確定不是首次檢測(cè)到重構(gòu)熱點(diǎn)事件。可以看出,當(dāng)連續(xù)多次未檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),如果再次檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),重構(gòu)沖突次數(shù)為0,之后執(zhí)行增1操作后變?yōu)?,因此視為首次檢測(cè)到重構(gòu)熱點(diǎn)事件。
以上對(duì)本發(fā)明分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除方法進(jìn)行了詳細(xì)說(shuō)明,本發(fā)明還提供了一種分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除裝置,以下結(jié)合圖2進(jìn)行詳細(xì)說(shuō)明。
參見(jiàn)圖2,圖2是本發(fā)明實(shí)施例分布式存儲(chǔ)系統(tǒng)中重構(gòu)熱點(diǎn)消除裝置的結(jié)構(gòu)示意圖,其中,分布式存儲(chǔ)系統(tǒng)中的一節(jié)點(diǎn)上線后觸發(fā)針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的所有存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,該裝置用于執(zhí)行針對(duì)該節(jié)點(diǎn)中需要進(jìn)行數(shù)據(jù)更新的任一存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,包括:下發(fā)單元201、檢測(cè)單元202、處理單元203;其中,
下發(fā)單元201,用于下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn);
檢測(cè)單元202,用于下發(fā)單元201下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn)后,檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件;
處理單元203,用于如果檢測(cè)單元202檢測(cè)確定未發(fā)生重構(gòu)熱點(diǎn)事件,則指示下發(fā)單元201繼續(xù)下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn);如果檢測(cè)單元202檢測(cè)確定發(fā)生重構(gòu)熱點(diǎn)事件,則按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程,若需要結(jié)束重構(gòu)過(guò)程,則結(jié)束針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程,若不需要結(jié)束重構(gòu)過(guò)程,則指示下發(fā)單元201繼續(xù)下發(fā)指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO到該節(jié)點(diǎn)。
圖2所示裝置中,
所述處理單元203,結(jié)束針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程之后,進(jìn)一步用于:在預(yù)設(shè)時(shí)長(zhǎng)后,基于尚未下發(fā)的指向該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)IO,重啟針對(duì)該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)過(guò)程。
圖2所示裝置中,
所述檢測(cè)單元202,檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件時(shí),用于:計(jì)算該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)速度,如果該存儲(chǔ)區(qū)域的重構(gòu)速度低于預(yù)設(shè)重構(gòu)速度,則確定發(fā)生重構(gòu)熱點(diǎn)事件,否則,確定未發(fā)生重構(gòu)熱點(diǎn)事件;
或者,
所述檢測(cè)單元202,檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件時(shí),用于:獲取該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域所屬磁盤(pán)的響應(yīng)時(shí)間wait值,如果該磁盤(pán)wait值大于預(yù)設(shè)響應(yīng)時(shí)間閾值,則確定發(fā)生重構(gòu)熱點(diǎn)事件,否則,確定未發(fā)生重構(gòu)熱點(diǎn)事件;
或者,
所述檢測(cè)單元202,檢測(cè)是否發(fā)生重構(gòu)熱點(diǎn)事件時(shí),用于:計(jì)算該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域的重構(gòu)速度,并獲取該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域所屬磁盤(pán)的響應(yīng)時(shí)間wait值,如果該存儲(chǔ)區(qū)域的重構(gòu)速度低于預(yù)設(shè)重構(gòu)速度且該磁盤(pán)wait值大于預(yù)設(shè)響應(yīng)時(shí)間閾值,則確定發(fā)生重構(gòu)熱點(diǎn)事件,否則,確定未發(fā)生重構(gòu)熱點(diǎn)事件。
圖2所示裝置中,
所述處理單元203,在檢測(cè)單元202首次檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),進(jìn)一步將該節(jié)點(diǎn)中該存儲(chǔ)區(qū)域ID除以第一預(yù)設(shè)值的余數(shù)設(shè)置為第一衡量值x,同時(shí)還獲取檢測(cè)到重構(gòu)熱點(diǎn)事件的時(shí)間T,將T除以第一預(yù)設(shè)值的余數(shù)作為第二衡量值y;
所述處理單元203,按照預(yù)設(shè)算法確定是否需要結(jié)束重構(gòu)過(guò)程包括:
如果不是首次檢測(cè)到重構(gòu)熱點(diǎn)事件,則將x賦值為x與第二預(yù)設(shè)值的商;
比較x與y的大小,如果x小于y,則確定需要結(jié)束重構(gòu)過(guò)程,否則,確定不需要結(jié)束重構(gòu)過(guò)程。
圖2所示裝置中,
所述處理單元203,在檢測(cè)單元202檢測(cè)確定發(fā)生重構(gòu)熱點(diǎn)事件之后,進(jìn)一步用于:將重構(gòu)沖突次數(shù)增1,將重構(gòu)未沖突次數(shù)清零;
所述處理單元203,在檢測(cè)單元202檢測(cè)確定未發(fā)生重構(gòu)熱點(diǎn)事件之后,進(jìn)一步用于:將重構(gòu)未沖突次數(shù)增1,如果重構(gòu)未沖突次數(shù)大于第三預(yù)設(shè)值,則將重構(gòu)沖突次數(shù)清零;
所述處理單元203,判斷是否為首次檢測(cè)到重構(gòu)熱點(diǎn)事件時(shí),用于:如果重構(gòu)沖突次數(shù)為1,則確定是首次檢測(cè)到重構(gòu)熱點(diǎn)事件,否則,確定不是首次檢測(cè)到重構(gòu)熱點(diǎn)事件。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。