一種磁盤陣列日志數據旋轉分布和同步方法
【技術領域】
[0001]本發(fā)明屬于信息技術、磁盤存儲技術領域,具體涉及一種磁盤陣列日志數據旋轉分布和同步方法。
【背景技術】
[0002]數據中心存儲系統(tǒng)的評測指標通常由性能、可靠性與能耗三者組成。磁盤陣列是目前數據中心存儲系統(tǒng)的主要物理表現形式。典型的磁盤結構RAIDlO體現了高性能與高可靠性,但由于時刻開啟著所有磁盤,能耗較高。日志數據旋轉分布方法RoLo(Yue Y,Tian L,Jiang H,et al.RoLo:A Rotated Logging Storage Architecture for Enterprise DataCenters[C]//201Internat1nal Conference on Distributed Computing SystemsIEEEComputer Society, 2010: 293-304.)在RAIDlO的基礎上,通過輪流將某個鏡像磁盤作為值日日志磁盤方法,降低了能耗。同時為了提高系統(tǒng)的可靠性,在切換日志磁盤的時候,將值日日志磁盤所對應的主磁盤上未同步的數據與值日日志磁盤上的數據進行同步。
[0003]在R0Lo中,當值日日志磁盤的剩余帶寬不足以完成數據同步時,同步操作與日志操作在值日日志磁盤上的寫寫競爭使得值日日志磁盤成為系統(tǒng)的瓶頸,從而影響系統(tǒng)的整體性能。
【發(fā)明內容】
[0004]本發(fā)明的主要目的在于提出一種磁盤陣列日志數據旋轉分布和同步方法(DeRoLo),以及采用該方法的磁盤結構,與RoLo相比,以犧牲一小部分能耗為代價,利用分散式延遲同步方法,有效提高系統(tǒng)的整體性能。
[0005]本發(fā)明采用的技術方案如下:
[0006]—種磁盤陣列日志數據旋轉分布方法,包括如下步驟:
[0007]I)將磁盤分為若干主磁盤以及與該若干主磁盤對應的若干鏡像磁盤,在一段時間內僅將某一個鏡像磁盤作為值日日志磁盤,該值日日志磁盤處于活動狀態(tài),其他鏡像磁盤處于待機狀態(tài);
[0008]2)將寫請求的數據同時寫到主磁盤與值日日志磁盤,當值日日志磁盤的剩余可用空間小于預定義的閾值時,將值日日志磁盤旋轉到下一個鏡像磁盤,即將下一個鏡像磁盤作為值日日志磁盤,并且該下一個鏡像磁盤從待機狀態(tài)切換到活動狀態(tài),而上一個鏡像磁盤從活動狀態(tài)切換到待機狀態(tài)。
[0009]進一步地,步驟2)在上一個值日日志磁盤切換到下一個值日日志磁盤時,對上一次值日日志磁盤中與其對應主磁盤中不一致的數據進行同步操作;當同步操作完成時,關閉上一個值日日志磁盤。
[0010]進一步地,對于已同步的數據,將舊的日志空間回收,從而形成無限循環(huán)的邏輯日志空間資源池。
[0011 ] 一種日志數據旋轉分布的磁盤陣列,包括若干主磁盤以及與該若干主磁盤對應的若干鏡像磁盤,在一段時間內僅某一個鏡像磁盤作為值日日志磁盤,該值日日志磁盤處于活動狀態(tài),其他鏡像磁盤處于待機狀態(tài);在寫請求時,將數據同時寫到主磁盤與值日日志磁盤,當值日日志磁盤的剩余可用空間小于預定義的閾值時,將值日日志磁盤旋轉到下一個鏡像磁盤,即將下一個鏡像磁盤作為值日日志磁盤,該下一個鏡像磁盤從待機狀態(tài)切換到活動狀態(tài),上一個鏡像磁盤從活動狀態(tài)切換到待機狀態(tài)。
[0012]進一步地,在上一個值日日志磁盤切換到下一個值日日志磁盤時,對上一次值日日志磁盤中與其對應主磁盤中不一致的數據進行同步操作;當同步操作完成時,關閉上一個值日日志磁盤。
[0013]進一步地,對于已同步的數據,將舊的日志空間回收,從而形成無限循環(huán)的邏輯日志空間資源池。
[0014]本發(fā)明的關鍵點在于:
[0015]I)實時檢測值日日志磁盤的數據量,一旦發(fā)現超過閾值,將切換值日日志磁盤;
[0016]2)對主磁盤與鏡像磁盤上不一致的數據進行分散式同步,同步的時機選擇在切換值日日志磁盤時,同步上一個值日日志磁盤的數據,避免同步I/O與日志I/O的寫寫競爭。
[0017]本發(fā)明相比于RoLo,以犧牲2%?10%的能耗提升了IX?4X的性能。當數據請求比較密集時,可以采用本發(fā)明以降低請求的平均響應時間。
【附圖說明】
[0018]圖1是日志數據旋轉方法邏輯模型示意圖。
[0019]圖2是日志數據旋轉動態(tài)過程示意圖。
[0020]圖3是分散式同步過程示意圖。
【具體實施方式】
[0021]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面通過具體實施例和附圖,對本發(fā)明做進一步說明。
[0022]本發(fā)明主要包括以下兩個方面:
[0023]I)日志數據旋轉分布方法
[0024]與RAIDlO—樣,把一半磁盤作為主磁盤,另一半磁盤作為鏡像磁盤。與RAIDlO不同的是,在一段時間內,只將某一個鏡像磁盤作為值日日志磁盤,每次只開啟值日日志磁盤,而將其他鏡像磁盤切換到待機狀態(tài)以實現節(jié)能。寫請求會同時寫到兩個磁盤,其中一份數據是以標準RAIDlO的方式及時寫到主磁盤,另一份數據是以順序寫的方式寫到值日日志磁盤。當值日日志磁盤的剩余可用空間小于預定義的閾值時,將日志磁盤旋轉到下一個鏡像磁盤。即下一個鏡像磁盤作為值日日志磁盤,從待機狀態(tài)切換到活動狀態(tài),而上一個鏡像磁盤從活動狀態(tài)切換到待機狀態(tài)。該方法只需開啟一個鏡像磁盤,可節(jié)省接近50 %的能耗。日志數據旋轉分布方法的邏輯模型與日志數據旋轉動態(tài)過程分別如圖1和圖2所示。
[0025]圖1中,主磁盤P包括,鏡像磁盤M包括,并示意了空閑存儲空間、已使用存儲空間、值日日志空間、非值日日志空間。圖2是本發(fā)明方法(稱為DeRoLo)的日志數據旋轉動態(tài)過程示意圖,其中的(a)圖示意了DeRoLo在沒有同步時的時間序列,下面的(b)、(c)、(d)圖為日志磁盤從Mo旋轉到Mi,以及日志磁盤從Mi旋轉到M2的示意圖。
[0026]2)分散式同步方法
[0027]在上一個值日日志磁盤切換到下一個值日日志磁盤的時刻,對上一次值日日志磁盤中與其對應主磁盤中不一致的數據進行同步操作。當同步操作完成時,關閉上一個值日日志磁盤。即在切換值日日志磁盤的時候,不是立