SMR描述
SMR(Shingled Magnetic Recording)疊瓦式磁記錄盤是一種采用新型磁存儲技術的高容量磁盤。SMR盤將盤片上的數據磁道部分重疊,就像屋頂上的瓦片一樣,這種技術被稱為疊瓦式磁記錄技術。該技術在制造工藝方面的變動非常微小,但卻可以大幅提高磁盤存儲密度。
在數據量飛速增長的當今世界,SMR技術可以有效降低單位容量的磁盤存儲成本,是未來高密度磁盤存儲技術的發展潮流。
盡管SMR盤的讀行為和普通磁盤相同,但它的寫行為有了巨大的變化:不再支持隨機寫和原地更新寫。這是由於SMR盤上新寫入的磁道會覆蓋與之重疊的所有磁道,從而摧毀其上的數據。換言之,相較傳統磁盤而言,SMR盤不再支持隨機寫,只能進行順序追加寫。寫入方式的限制給欲使用SMR盤的存儲系統帶來了巨大的挑戰。
SMR盤的技術原理
大數據時代的數據量呈指數級增長,預計每兩年就會翻一番。硬盤作為一種經濟高效的存儲介質,在當今的存儲數字世界中依然起着中流砥柱的作用。
硬盤驅動器的存儲面密度(每單位面積存儲的位數)受到物理定律的限制,目前硬盤使用的PMR垂直磁記錄(Perpendicular Magnetic Recording)技術即將達到其存儲密度極限。業界迫切希望引入新的技術來克服限制,繼續穩步提升容量。
SMR盤是領先的下一代磁盤技術。 SMR盤在制造工藝方面的變動非常微小,因為它保持現有磁頭和介質技術不變,它通過將磁道像屋頂上的瓦片那樣重疊在一起來實現其存儲面密度的增長。
具體來說,硬盤盤片被划分為同心圓狀的磁道,磁道與磁道之間具有一定間隔,起到保護作用。硬盤的磁頭位於盤片記錄介質的上方,包含用於寫入的寫磁頭和用於讀取的讀磁頭,二者是獨立的部件。在磁盤上想要寫入數據,需要寫磁頭施加較強的磁場來改變盤片上的記錄,這就進一步要求寫磁頭足夠大以產生所需的寫入磁場強度。因此,如果磁道沒有任何重疊,磁盤上每英寸能容納的磁道數量由寫磁頭的寬度所決定。
傳統硬盤與SMR盤磁記錄方式的對比示意圖
疊瓦式寫入則利用了磁盤讀取所需要的磁場強度低於寫入所需要的磁場強度的事實。換言之,磁盤讀取所需的磁道寬度可以小於寫入所需的軌道寬度,讀磁頭的寬度可以小於寫磁頭寬度。SMR盤上數據的寫入是通過部分重疊前一條磁道寫入的,同時留出了足夠的空間給較窄的讀磁頭讀取前一條磁道的數據。疊瓦式寫入的結果就是留給讀用的窄磁道,以及最后用於寫入的較寬的寫磁道,寫入將會覆蓋若干個讀磁道的寬度。
和傳統磁盤相比,SMR盤通過疊瓦式寫入在相同的面積內容納了更多的磁道,從而提高了存儲面密度,進而降低了磁盤單位存儲容量的成本。
SMR磁盤將磁道划分為若干個帶(Band),即由連續磁道所構成的可連續寫入區域,每個區域構成一個需要順序寫入的基本單元。Band是SMR盤上的物理概念,其對應的邏輯概念是“區域”(zone),是上層軟件所能看到的SMR盤的順序寫區域。一個zone的大小通常在256 MB量級。由於SMR盤仍然確保可以從磁道的未重疊部分讀取數據,zone內的數據讀取依舊可以隨機進行。
SMR盤在生產制造時就划分好了分區,通過在zone之間出留出較大的間隔來標識zone的起始位置。此外,硬盤廠商在SMR盤上一小塊區域內,通過采用傳統硬盤非重疊的磁道組織方式,犧牲了部分存儲密度以換取在這些zone內隨機寫入的能力。這部分zone被稱為“傳統區”(Conventional Zone),為上層應用的隨機寫提供了一個落腳點。
在傳統硬盤上,存儲在磁盤上的用戶數據由文件系統來管理,文件系統假定磁盤提供的塊接口中,塊是獨立可更新的單元。但是,由於疊瓦式寫入導致隨機寫和原地更新寫不再受支持,SMR盤需要全新的數據管理解決方案。尋找一種方法來高效地存儲、檢索和管理SMR盤中這些大塊順序寫區域中的數據,而不會導致太多空間浪費是非常具有挑戰性的。
SMR盤的分類
SMR盤采用疊瓦式記錄通過將一個zone內的磁道按序部分重疊,獲得了更高的存儲面密度、更大的磁盤容量、更低的單位容量價格。在獲得這一好處的同時,SMR盤也對上層應用提出了一些限制,包括SMR盤在zone內只能順序寫,不支持隨機寫,SMR盤的空間回收以一個Zone的大小(例如256MB)為粒度。
SMR盤對寫入的約束可在硬件側由硬盤本身來管理,亦可在主機側由軟件來進行。前者被稱為“驅動器自管理的SMR盤”(Drive Managed SMR disk),以下簡稱DM SMR盤。后者則將SMR內部的組織結構通過新增接口向上層軟件暴露。
制定SCSI協議的T10國際組織和制定ATA協議的T13國際組織都針對SMR盤對SCSI和ATA協議進行了相應的拓展。
-
T10組織引入了ZBC(Zoned Block Commands),定義了SMR盤相關的術語和行為,成為SAS接口SMR盤所必須遵守的規范。
-
T13組織引入了ZAC(Zoned-device ATA Commands),與ZBC類似,是SATA接口SMR盤所必須遵守的標准。
ZBC和ZAC標准將SMR盤抽象成為一組Zone的集合,其中的Zone由一段連續的LBA構成。ZBC與ZAC標准中均定義了SMR盤中可以存在的三種類型的Zone:
-
傳統Zone(Conventional Zone簡寫為C-Zone)
-
首選順序寫入Zone(Sequential-Preferred Zone簡寫為SP-Zone)
-
強制順序寫入Zone(Sequential-Required Zone簡寫為SR-Zone)
對C-Zone而言,和傳統硬盤一樣,它具有完全的隨機寫能力,對其中寫入IO的邏輯塊地址(LBA)的順序不做任何限制。C-Zone所占的大小一般不超過SMR盤容量的1%。
SP-Zone也不對寫入順序做強制性限制,但是,和C-Zone不同的是,SP-Zone位於SMR盤的順序寫入區域,最適合順序寫。SP-Zone引入了寫指針(Write Pointer,以下簡稱WP)的概念,該指針等於該Zone內的最大LBA,應用程序應該首選在SP-Zone內的寫指針處寫入數據。盡管該硬盤本身在也能夠處理非寫指針處的寫入(隨機寫),但這是有代價的,會引起后續的數據遷移、垃圾回收等。
對於每個Zone,SR-Zone也暴露了寫指針WP的位置,但硬盤設備將拒絕寫入除寫指針指向的LBA以外的任何位置,也就是SR-Zone內必須以寫指針當前所在位置為起點,進行順序追加寫。
當SR-Zone寫滿之后,則需通過Reset Write Pointer操作將該WP重置到該Zone開頭,即清空該Zone以回收空間,從頭開始寫入。SP-Zone和SR-Zone被統稱為寫指針區(Write Pointer Zone)。
如前所述,如果一塊硬盤采用了疊瓦式寫入技術,但是對外不暴露Zone和WP,由硬盤固件本身來管理寫入的順序性約束,我們稱之為Drive Managed SMR。
如果一塊硬盤采用了疊瓦式寫入技術,對外暴露了Zone和WP,並且所包含的Zone類型僅僅含有C-Zone和SR-Zone,那么我們稱之為Host Managed SMR(主機管理的SMR盤)。
如果一塊硬盤采用了疊瓦式寫入技術,對外也暴露了Zone和WP,並且所包含的Zone類型由C-Zone和SP-Zone組成,那么我們稱之為Host Aware SMR(主機感知的SMR盤)。
HA SMR盤可以視為DM SMR盤和HM SMR盤的折中類型。
上表總結了三種SMR盤的特點。雖然DM SMR盤采用和傳統硬盤相同的接口,在內部實現一個疊瓦轉換層STL(Shingle Translation Layer)對外隱藏了順序寫入的限制,但它也有一個主要缺點:
在某些帶有隨機寫的工作負載下,DM SMR盤內順序寫入區域需要進行數據遷移、垃圾回收等背景操作,DM SMR盤的性能可能受到不可預測的影響,性能波動巨大。
相比之下,HM SMR盤不將自身偽裝為傳統磁盤,而是根據ZBC/ZAC標准對外暴露了zone和WP的抽象結構,允許上層軟件來完全管理SMR盤的順序寫入約束,對不符合順序寫規則的IO請求則直接返錯。通過向上暴露新接口,HM SMR盤的IO行為完全受軟件控制,因而其性能是可控的,能最大化發揮SMR盤的優勢。
但劣勢是上層的軟件必須進行修改才能使用HM SMR盤。HA SMR盤提供了和HM SMR盤一樣的新接口,但是當其收到不符合順序寫原則的IO是,HA SMR盤將允許其寫入而非報錯,具有一定的靈活性。
無論采用哪一種類型的SMR盤,我們都需要將上層應用的IO行為特點與SMR盤順序寫的內在特點相匹配,否則就無法使SMR盤工作在最佳狀態。