一種平衡條帶寫(xiě)的raid-6i/o調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于大數(shù)據(jù)與云存儲(chǔ)領(lǐng)域,設(shè)及一種平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法。
【背景技術(shù)】
[0002] 隨著人們對(duì)于存儲(chǔ)系統(tǒng)的需求不斷增加,W及云計(jì)算的迅猛發(fā)展,獨(dú)立磁盤(pán)冗余 陣列(RAID)由于它的高性能、高可靠性和低成本而受到關(guān)注。近年來(lái),RAID-6被廣泛使用, 是因?yàn)榇笮蛿?shù)據(jù)中屯、的磁盤(pán)失效可能性大大增加,而RAID-6能允許2塊磁盤(pán)同時(shí)失效。
[0003] RAID-6可W在許多糾刪碼技術(shù)上實(shí)現(xiàn),其中最大距離可分碼(MD巧是最普遍的。 根據(jù)校驗(yàn)的分布,MDS編碼可分為水平編碼和垂直編碼。水平編碼有著專(zhuān)口存放數(shù)據(jù)和校 驗(yàn)的磁盤(pán),例如,ReedSolomon巧巧編碼、EVENO孤編碼、畑P編碼等。垂直編碼,如X-Code 編碼、P-Code編碼、切clic編碼等,數(shù)據(jù)和校驗(yàn)是分布在所有磁盤(pán)上的。
[0004] 然而,基于RAID-6的MDS編碼寫(xiě)性能不足,尤其是對(duì)連續(xù)數(shù)據(jù)塊的條帶寫(xiě)性能較 差。主要有W下兩個(gè)原因。
[0005] -,在水平編碼中對(duì)連續(xù)數(shù)據(jù)塊的條帶寫(xiě),該些數(shù)據(jù)塊是一行行按順序?qū)懭氲?。?此,需要修改的行校驗(yàn)的數(shù)量減少,但大量的垂直校驗(yàn)(包括斜校驗(yàn)和反向斜校驗(yàn))需要修 改。該也導(dǎo)致了不均衡的1/0分布;
[0006] 二,在垂直編碼中對(duì)連續(xù)數(shù)據(jù)塊的條帶寫(xiě),則需要修改大量的校驗(yàn)。
[0007] 因此,基于RAID-6的實(shí)現(xiàn)都遇到了關(guān)于條帶寫(xiě)的問(wèn)題,該大大降低了整體性能和 整個(gè)系統(tǒng)的可用性。
[0008] 盡管一些方法專(zhuān)注于提高RAID-6的條帶寫(xiě)性能,但它們?nèi)杂性S多限制。第一,新 的糾刪碼可W減少寫(xiě)操作的開(kāi)銷(xiāo),但它們需要特定數(shù)量的磁盤(pán)才能得W實(shí)現(xiàn)。第二,盡管日 志結(jié)構(gòu)文件系統(tǒng)提供了順序讀取的方式來(lái)減少1/0延遲,但該不能平衡1/0負(fù)載。第S,提 高校驗(yàn)的更新效率在某些情況下會(huì)降低校驗(yàn)修改的開(kāi)銷(xiāo),但1/0操作數(shù)量仍然十分巨大。 第四,持續(xù)執(zhí)行同一行上的寫(xiě)請(qǐng)求(我們稱(chēng)該種方法為行校驗(yàn)共享)可W減少行校驗(yàn)的修 改,但磁盤(pán)陣列仍需要在垂直校驗(yàn)上進(jìn)行大量修改,使得1/0分布不均衡。
[0009] 因此,RAID-6上對(duì)連續(xù)數(shù)據(jù)塊的條帶寫(xiě),需要修改的校驗(yàn)數(shù)量巨大,1/0分布不均 衡,導(dǎo)致條帶寫(xiě)性能較差。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的在于提供一種平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,能夠均衡條帶 寫(xiě),并減少寫(xiě)操作并均衡RAID存儲(chǔ)系統(tǒng)中的磁盤(pán)負(fù)載。
[0011] 為解決上述問(wèn)題,本發(fā)明提供一種平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,包括:
[0012] 分析寫(xiě)請(qǐng)求的輸入輸出分布,重組該些請(qǐng)求,從而通過(guò)校驗(yàn)共享,將相應(yīng)校驗(yàn)的修 改數(shù)量最小化;
[0013] 將輸入輸出碎片和到來(lái)的相同條帶中的寫(xiě)請(qǐng)求被聚合成一個(gè)新的寫(xiě)請(qǐng)求,并將新 的寫(xiě)請(qǐng)求一次性寫(xiě)入磁盤(pán);
[0014] 標(biāo)記下在重組過(guò)程中生成的非法數(shù)據(jù)塊,將非法數(shù)據(jù)塊記錄到內(nèi)存中,將所述非 法數(shù)據(jù)塊進(jìn)行垃圾回收,保存非法數(shù)據(jù)塊的元數(shù)據(jù)信息用于準(zhǔn)備重新分配。
[0015] 進(jìn)一步的,在上述方法中,分析寫(xiě)請(qǐng)求的輸入輸出分布,重組該些請(qǐng)求,從而通過(guò) 校驗(yàn)共享,將相應(yīng)校驗(yàn)的修改數(shù)量最小化包括:
[0016] 對(duì)于連續(xù)數(shù)據(jù)塊的部分條帶寫(xiě),將該些連續(xù)數(shù)據(jù)塊放在一個(gè)平行四邊形中,假設(shè) 平行四邊形的一條邊有1個(gè)塊,另一條邊有d個(gè)塊,1和d為正整數(shù);
[0017] 通過(guò)求取1和d值,使1+d最小,進(jìn)而使得相應(yīng)校驗(yàn)的修改數(shù)量最小化。
[0018] 進(jìn)一步的,在上述方法中,RDP水平編碼的行校驗(yàn)Nh和斜校驗(yàn)Nd的修改數(shù)量如下:
[0019] Nh=d
[0020]
【主權(quán)項(xiàng)】
1. 一種平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,包括: 分析寫(xiě)請(qǐng)求的輸入輸出分布,重組這些請(qǐng)求,從而通過(guò)校驗(yàn)共享,將相應(yīng)校驗(yàn)的修改數(shù) 量最小化; 將輸入輸出碎片和到來(lái)的相同條帶中的寫(xiě)請(qǐng)求被聚合成一個(gè)新的寫(xiě)請(qǐng)求,并將新的寫(xiě) 請(qǐng)求一次性寫(xiě)入磁盤(pán); 標(biāo)記下在重組過(guò)程中生成的非法數(shù)據(jù)塊,將非法數(shù)據(jù)塊記錄到內(nèi)存中,將所述非法數(shù) 據(jù)塊進(jìn)行垃圾回收,保存非法數(shù)據(jù)塊的元數(shù)據(jù)信息用于準(zhǔn)備重新分配。
2. 如權(quán)利要求1所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,分析寫(xiě)請(qǐng)求的 輸入輸出分布,重組這些請(qǐng)求,從而通過(guò)校驗(yàn)共享,將相應(yīng)校驗(yàn)的修改數(shù)量最小化包括: 對(duì)于連續(xù)數(shù)據(jù)塊的部分條帶寫(xiě),將這些連續(xù)數(shù)據(jù)塊放在一個(gè)平行四邊形中,假設(shè)平行 四邊形的一條邊有1個(gè)塊,另一條邊有d個(gè)塊,1和d為正整數(shù); 通過(guò)求取1和d值,使Ι+d最小,進(jìn)而使得相應(yīng)校驗(yàn)的修改數(shù)量最小化。
3. 如權(quán)利要求2所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,RDP水平編碼 的行校驗(yàn)Nh和斜校驗(yàn)N d的修改數(shù)量如下:
其中,i,j分別表示RDP水平編碼矩陣中的行號(hào)和列號(hào),p為質(zhì)數(shù),RDP水平編碼矩陣為 列數(shù)為P+1。
4. 如權(quán)利要求2所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,X-Code垂直 編碼的斜校驗(yàn)和反向斜校驗(yàn)的修改數(shù)量分別為1和d。
5. 如權(quán)利要求2所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,通過(guò)如下公式 求取1和d值,
其中,在一個(gè)條帶中寫(xiě)連續(xù)數(shù)據(jù)塊的數(shù)量。
6. 如權(quán)利要求1所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,將輸入輸出碎 片和到來(lái)的相同條帶中的寫(xiě)請(qǐng)求被聚合成一個(gè)新的寫(xiě)請(qǐng)求,并將新的寫(xiě)請(qǐng)求一次性寫(xiě)入磁 盤(pán)中, 當(dāng)輸入輸出碎片隊(duì)列里輸入輸出碎片的等待時(shí)間超過(guò)了閾值,將輸入輸出碎片隊(duì)列里 的所有輸入輸出碎片強(qiáng)制寫(xiě)入磁盤(pán); 當(dāng)輸入輸出碎片隊(duì)列滿(mǎn)時(shí),最長(zhǎng)等待時(shí)間的輸入輸出碎片被寫(xiě)入磁盤(pán)。
7. 如權(quán)利要求6所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,所述輸入輸出 碎片隊(duì)列存放在RAID控制器上的內(nèi)存中。
8. 如權(quán)利要求6所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,在RAID控制 器的內(nèi)存中使用一個(gè)標(biāo)識(shí)Fs,F(xiàn) sS O表不輸入輸出碎片隊(duì)列里沒(méi)有碎片,為1表不輸入輸出 碎片隊(duì)列里有碎片。
9. 如權(quán)利要求6所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,通過(guò)使用一個(gè) 計(jì)時(shí)器來(lái)記錄每個(gè)輸入輸出碎片的等待時(shí)間。
10. 如權(quán)利要求1所述的平衡條帶寫(xiě)的RAID-6I/0調(diào)度方法,其特征在于,所述保存非 法數(shù)據(jù)塊的元數(shù)據(jù)信息中,將非法數(shù)據(jù)塊的元數(shù)據(jù)信息保存到內(nèi)存中,其中,在內(nèi)存中使用 Ibit來(lái)表示非法數(shù)據(jù)塊的元數(shù)據(jù)信息。
【專(zhuān)利摘要】本發(fā)明提供了一種平衡條帶寫(xiě)的RAID-6I/O調(diào)度方法,通過(guò)分析寫(xiě)請(qǐng)求的輸入輸出分布,重組這些請(qǐng)求,從而通過(guò)校驗(yàn)共享,將相應(yīng)校驗(yàn)的修改數(shù)量最小化,將輸入輸出碎片和到來(lái)的相同條帶中的寫(xiě)請(qǐng)求被聚合成一個(gè)新的寫(xiě)請(qǐng)求,并將新的寫(xiě)請(qǐng)求一次性寫(xiě)入磁盤(pán),標(biāo)記下在重組過(guò)程中生成的非法數(shù)據(jù)塊,將非法數(shù)據(jù)塊記錄到內(nèi)存中,將所述非法數(shù)據(jù)塊進(jìn)行垃圾回收,保存非法數(shù)據(jù)塊的元數(shù)據(jù)信息用于準(zhǔn)備重新分配,可以減少寫(xiě)操作并均衡RAID存儲(chǔ)系統(tǒng)中的磁盤(pán)負(fù)載,本發(fā)明基本思想是在對(duì)相應(yīng)校驗(yàn)有全局了解的基礎(chǔ)上進(jìn)行條帶寫(xiě),通過(guò)重組數(shù)據(jù)塊的分布,來(lái)減少條帶寫(xiě)所需修改校驗(yàn)數(shù)量。
【IPC分類(lèi)】G06F3-06
【公開(kāi)號(hào)】CN104866244
【申請(qǐng)?zhí)枴緾N201510291854
【發(fā)明人】李頡, 吳晨濤, 過(guò)敏意, 何緒斌, 蔣妍冰, 章雍哲
【申請(qǐng)人】上海交通大學(xué)
【公開(kāi)日】2015年8月26日
【申請(qǐng)日】2015年5月31日