SMR磁盤學習12---drivemanaged SMR 磁盤總結
之前的SMR磁盤學習的6,7,8,9,10,11,12部分講述了有關drive manage部分的知識,現在我們來把相關的一起總結一下。
SMR磁盤的穩定隨機寫性能和更新在磁盤的應用上顯得十分重要,為了更好地讓SMR取代現存的磁盤並得到廣泛應用,不得不從它們出發進行考慮和設計。
1.傳統磁盤與SWD的tracks排布
對SMR來說,在磁盤的盤片上的磁道以瓦片的排布方式被組織[A],使得它的存儲密度增加,但是寫磁頭定位到一個磁道上比其他標准磁盤顯得很大,也就是說寫磁頭橫跨的磁道數目由標准磁盤的一個變成多個,當在一個磁道上進行寫操作時,可能會影響相鄰磁道上的數據。如圖1

圖1 傳統磁盤與瓦記錄磁盤的結構
對bands進行設計,bands由在同一盤片上的連續tracks組成[B],即一個band包含幾個連續的tracks。磁盤上的所有數據都存儲在bands上,相鄰的bands之間有k(k的大小由寫磁頭的寬度決定)個空tracks,作為兩個bands的安全間隙。Bands的組成不采用同一柱面的tracks,是因為同一柱面的tracks之間的切換,經過盤片間的切換后,磁頭還需要尋找到相應磁道,這樣會增加磁盤系統的開銷,使得其性能降低。
2.維持穩定的隨機寫算法
為了解決SMR隨機寫的問題,David Hall等人開發了一個數據處理算法[C] 即SMR短塊算法(short-block SMR algorithm),該算法涉及到了兩個布局:I-region和E-region;主要的存儲數據安排I-region上, 在I-region中包含額外tracks,這些額外的tracks一部分用作refresh buffer,用來緩沖舊的數據;另一部分作為相鄰兩個I-region的guard tracks,如圖2所示。 E-region用來接收從主機來的寫請求操作,通過對這兩個region分別進行合理的組織安排,可使得SMR能夠維持穩定的隨機寫性能。首先將請求的寫操作暫存在E-region中,給E-region一個合適的清理速率,目的是為E-region接收新的寫操作提供充足的空間,使之持續穩定的接收寫操作,在對E-region執行清理機制操作時,會引發后台的刷新操作,在I-region相關聯的位置開始進行讀操作,old data被讀到I-region的buffer tracks當中;讀操作完成后,把從E-region讀出來的寫操作寫入到I-region的相應位置中,並將old data重寫到原來的位置,在I-region的tracks上寫的方式是順序的,當數據更新完成后,E-region中對應的寫操作將被清除。

圖2
當寫塊大小小於104時使用這種算法的穩定隨機寫性能比標准HDD好,超過了這個值性能就開始下降。
為了降低隨機寫造成的寫操作次數,延長寫塊的長度,又提出了一個貪婪算發:給任意初始狀態和一個邏輯track去更新k,選擇一個使得寫數目最小的作為終態,如果這樣的終態不止一個,選擇最集中的一個。一般說來,這個值接近N/2。
下圖為給定的原始狀態圖,假定有三個狀態,,tracks個數為4,寫磁頭的寬度為2,各個狀態到達每個終態的寫操作次數如圖所示。狀態1指向狀態2,在外側線上的1/2代表從第一個狀態的第一個邏輯track到達終態2需要兩次寫操作,等等。

假設3個狀態
使用貪婪算法,可以將上圖簡化成下圖,以此達到減少平均寫次數提高系統性能的目的。

該算法能夠有效地降低隨機寫的平均次數。
3.SWD的數據更新的實現布局
實現數據更新的布局設計,數據更新有兩種類型update out-of-place,update in-place。
在SMR中很少采用update out-of-place這種模式,update out-of-place采用了兩個region(I-region和E-region),在此之前已經提到,這里不做詳細說明。I-region和E-region構成了一個迂回系統[D],在執行更新操作時,將數據更新到新的地址塊,原始的地址塊變為無效;雖然可以避免寫放大,但是E-region和I-region不得不執行垃圾收集(GC,Garbage Collection)操作來回收無效塊和造成的碎片;由於將更新的數據更新到新的位置,邏輯塊地址到物理塊地址的映射表(LBA-to-PBA mapping table)也因此變得更加復雜。
SMR的更新采用Update in-pace這種模式[E][F],需要額外的預留空間用來緩沖數據,下圖是SMR實現Update in-pace的布局圖。

Physical Space Layout for In-place Update SMR
圖的左側是SMR的RAZ結構,相鄰的RAZ track之間有k個空tracks(k的值由寫磁頭的大小決定),即把RAZ做成類似標准HDD的樣式,不存在寫放大問題。用於緩沖元數據。RAZ實現的兩種策略分別為:①將非易失RAM(NVROM)附加到SMR作為一個專用RAZ②在SMR中,用單獨的一個個bands組成專用region作為RAZ。在執行數據更新操作時,從mapping表中找到相關聯的物理地址,把老數據讀到緩沖區,再將老數據與新數據合並,最后在相應物理地址上寫新數據,刷新老的數據。與update in-place 模式的不同之處是不需要GC(Garbage Collection)操作,mapping表相對較為簡單。
4.Mapping表的改進
通過前面的介紹,我們可知update in-place模式在提高SMR的性能方面優越於update out-of-place模式,但是update in-place實現需要預留額外的空間,因此為了達到空間與性能平衡,對mapping進行改進設計。
邏輯塊地址到物理塊地址的映射表(LBA-to-PBA mapping table)的改進。邏輯塊地址(LBA,Logical Block Address)到物理塊地址(PBA,Physical Block Address)映射的設計也是SMR的重要部分。
通過前面的介紹,我們可知update in-place模式在提高SMR的性能方面優越於update out-of-place模式,因此對mapping的改進設計也是基於update in-place模式。
假設普通磁盤和SMRs的tracks 組織方式一樣,每個band包含4個tracks,寫磁頭的寬度為2,band之間有一個空track作為安全隔離帶,采用的映射機制依舊為傳統的標准磁盤的映射機制,則有[1-100]對應第一個track,[101-200]對應第二個track, [201-300]對應第三個track等等。SMR磁盤的利用率為4/(4+1)=0.8,實際磁盤空間用SG表示,在SMR上執行一次更新可能會招致額外的讀和寫。如圖所示(one band),更新a 會招致2次讀,3次寫,即寫放大問題,寫放大計算用WAR (Write Amplification Ratio)表示,SG和WAR的計算如下(N代表磁盤的band包含的tracks數目,W為寫磁頭的寬度,i的取值為0-(N-1)[G]。


如果改變tracks的使用順序使得減少寫放大問題變得可行,於是,就可以對邏輯塊地址到物理塊地址的映射表(LBA-to-PBA mapping table)進行改進,來實現tracks使用順序的改變。
於是就有3種不同的方案。
第一種方案,當SMR使用容量低於25%時,數據依次存儲在磁盤的每個band的第一個或第四個track上;隨着磁盤的使用容量增加,低於50%是將增加的數據依次存儲在磁盤的每個band的第四個或第一個track;當磁盤使用容量增加低於75%時,增加的數據依次存儲到磁盤的每個band的第二個track;隨着磁盤使用容量的繼續增加,增加的數據存儲到第三個track。表現在映射表中為:將磁盤上每個band上的tracks進行分組(即first track,second track,third track,fourth track),首先連續映射全部的fourth track或者first track,其次連續映射first track或fourth track,接着連續映射second track,最后映射third track。該方案記作R(4123)或R(1423)
第二種方案,當SMR使用容量低於50%時,數據依次存儲在磁盤的每個band的第一個和第四個track上(即存儲完第一個band的第一和第四tracks,再存儲第二個band的第一和第四tracks,依次類推);當磁盤使用容量增加低於75%時,增加的數據依次存儲到磁盤的每個band的第二個track;隨着磁盤使用容量的繼續增加,增加的數據存儲到第三個track。表現在映射表中為:將磁盤上每個band上的tracks進行分組(即first track and fourth track,second track,third track),首先將每個band的第一和第四track依次排列進行連續映射,其次連續映射second track,最后映射third track。該方案記作14R(23)
第三種方案,當SMR使用容量低於75%時,數據依次存儲在磁盤的每個band的第一個、第二和第四個track上(即存儲完第一個band的第一、第二和第四tracks,再存儲第二個band的第一、第二和第四tracks,依次類推);隨着磁盤使用容量的繼續增加,增加的數據存儲到第三個track。表現在映射表中為:將磁盤上每個band上的tracks進行分組(即first track and fourth track,second track,third track),首先將每個band的第一、第二和第四track依次排列進行連續映射,其次連續映射second track,最后映射third track。該方案記作124R(3)
這樣三種mapping方案,當磁盤使用容量低於50%方案一和方案二使得磁盤性能較好,整體來看第一種方案最好。
5.Band compaction的布局及改進算法
Band的清理機制,對於bands的清理機制的基本布局有兩種[E][F]。第一種布局:每個band都附有一個循環日志,通過從日志的尾部到日志的頭部移動實時數據來回收自由空間;第二種布局:通過壓縮一個或幾個完整的bands,將數據存放到少數幾個空的band,並將壓縮的bands清空釋放出來。

循環日志結構在band在中的組織安排如下圖所示。循環日志包含日志頭部和日志尾部日志頭部和日志尾部之間有個安全隔離帶,由k個空tracks組成(k由寫磁頭的寬度決定)為了防止在頭部進行寫操作破壞尾部數據。

Layout in a Band with Circular Log
為了使band的清理機制的效率更高,系統開銷降低,使得系統的響應能力得到提高提出了一種數據分類算法[J]。
該算法基於清理機制的第二種布局提出來的,band的清理機制會產生數據的移動,為了降低執行band清理操作導致的數據移動,主要將數據分成三類[J][K],即free blocks, cold blocks, hot blocks。這樣分類的原因是:cold blocks與hot blocks相比,選擇精簡壓縮hot blocks越少,數據移動的量越少(壓縮hot blocks的意義很小,這里不考慮對hot blocks的壓縮); cold blacks與 free blocks相比,cold blacks選擇壓縮的權重小於free blocks時進行壓縮產生的數據移動量會減少。由此產生了cold-weight算法,算法推倒如下:
首先,%free + %cold + %hot = 1
當分別給hot blocks和cold blocks一個whot ,wcold則有:
%free + (wcold × %cold) + (whot × %hot)
將%hot替換掉,可以得到:
%free + (wcold × %cold) + (whot × (1 - %free - %cold))
最右面的式子展開
%free + (wcold × %cold) + whot - (whot × %free) - (whot ×%cold)
由以上分析將whot視作常量對待,忽略不計,合並相同的項。
%free × (1 - whot) + %cold× (wcold - whot)
除以(1 - whot)
%free + %cold × (wcold - whot)/(1 - whot )
將whot視作0,該公式變為:%free + %cold ×wcold
於是Cold-weight算法為當執行band compaction前,由公式計算出的每個band的值,選出所規定數目的幾個值最大的bands,進行清理壓縮。
假設有三個數據段,如圖,每次只清理壓縮一個數據段,此時free blocks和cold blocks的權重相同(cold blocks沒設權重),由公式可知選擇的壓縮的數據段為第一個數據段,不是期望的結果。

如果將cold blocks的權重設為0.5,如下圖所示。有公式計算可得,選擇清理壓縮的數據段是第三個數據段,是期望的結果。

因此該算法可以減少數據移動,使得band壓縮效率更高,同時也提高了系統的響應能力。
6.SMR技術的實現
SMR 有三種類型:Drive-Managed SMR(驅動器管理)、Host Aware SMR(主機感知)和Host Managed(主機管理)。如下圖所示。

目前,SMR 提供容量提升高達25% ,在制作工藝和材料上,沒有大的變化。磁盤的tracks划分成bands, bands和zones對應起來,磁盤上存在持續緩存,SMR的磁道被要求順序地寫入。如圖是SMR磁盤的結構圖,最外層磁盤的小區域為持續緩存,用於隨機寫操作。guard regions將相鄰的band隔離開,阻止在一個band上進行數據的寫操作時破壞相鄰band的數據。
SMR的更新模式為update in-place,通過對SMR產品的測試我們發現,persistent cache的類型是普通磁盤的類型,每個band的大小大約為25M到40M;SMR磁盤的映射方式是靜態映射;SMR磁盤的zone采用的是水平的結構。當SMR的容量為5TB時Persistent cache的大小是20GB,當SMR的容量為8TB時Persistent cache的大小是25GB;

這一部分只是寫了drive manage的SMR磁盤的內容,想要看更加完整的可以看SMR磁盤學習1和SMR磁盤學習2,這兩部分對整個SMR的磁盤研究現狀做了一個比較好的概括!淡然主要包括drive manage SMR和host manage SMR部分,host aware部分在其他的SMR學習里面講了的,但是不多。
參考文獻:
[A] Aghayev and P. Desnoyers, “Skylight-a window on shingled disk operation,” in Proceedings of the 13th USENIX Conference on File and Storage Technologies. USENIX, Feb. 2015, pp. 135–149.
[B]Amer, D. D. E. Long, E. L. Miller, J.-F. Paris, and T. Schwarz, “Design issues for a shingled write disk system,” in 26th IEEE Symposium on Mass Storage Systems and Technology, 2010
[C]. Hall, J. H. Marcos, and J. D. Coker, “Data handling algorithms for autonomous shingled magnetic recording hdds,” Magnetics, IEEE
Transactions on, vol. 48, no. 5, pp. 1777–1781, 2012.
[D]Y. Cassuto, M. A. Sanvido, C. Guyot, D. R. Hall, and Z. Z. Bandic, “Indirection systems for shingled-recording disk drives,” in 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST). IEEE, 2010, pp. 1–14.
[E] Amer, D. D. E. Long, E. L. Miller, J.-F. Paris, and T. Schwarz, “Design issues for a shingled write disk system,” in 26th IEEE Symposium on Mass Storage Systems and Technology, 2010.
[F]Ahmed Amer, JoAnne Holliday ,Darrell D.E. Long and Ethan L. Miller, “Data Management and Layout for Shingled Magnetic Recording” ,IEEE Transactions on Magnetics,2011
[J]W. He and D. H. Du, “Novel address mappings for shingled write disks,”in Proceedings of the 6th USENIX conference on Hot Topics in Storage and File Systems. USENIX Association, 2014, pp. 5–5.
[H]Stephanie N. Jones, Ahmed Amer, Ethan L. Miller,Darrell D. E. Long, Rekha Pitchumani, Christina R. Strong “Classifying Data to Reduce Long Term Data Movement in Shingled Write Disks”, in IEEE Symposium on Mass Storage Systems and Technology, 2015
[I]J.-W. Hsieh, T.-W. Kuo, and L.-P. Chang, “Efficient identification of hot data for flash memory storage systems,” in ACM Transactions onStorage, February 2006.
