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盤工作在最佳狀態。
點選原文連結獲取已整理成文的<傳統企業儲存知識完全解析>電子書。
熱文閱讀
溫馨提示:
請搜尋“ICT_Architect”或“掃一掃”二維碼關註公眾號,點選原文連結獲取更多技術資料。
Stay hungry Stay foolish