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