疊瓦磁記錄(英語:Shingled magnetic recordingSMR,直譯為分層磁記錄),是一種用於硬碟驅動器的磁儲存數據記錄技術,可提高儲存密度和每個驅動器的整體儲存容量。[1] 常規的硬碟機通過寫入彼此平行而不重疊的磁軌來記錄數據(垂直磁記錄,PMR)。而疊瓦磁記錄技術的硬碟寫入的新磁軌則與先前寫入的磁軌部分重疊,從而使先前的磁軌更窄,因此能擁有更高的磁軌密度。由此可以看出,使用疊瓦磁技術的磁軌相互重疊,與用作屋頂的瓦片堆疊方式類似。我們之所以能這樣做,是因為磁碟寫入磁頭由於物理上的原因比讀取磁頭寬上許多,因而由正常方式寫入的磁軌寬度遠比讀取磁頭所需的磁軌寬度來得寬。[2][3][4]

隨機寫入SMR較為困難:寫入一個磁軌會覆蓋下一個磁軌上的數據。必須要有管理系統來避免重複寫入。

由於磁軌存在重疊,疊瓦磁碟的寫入過程較為複雜。如果我們隨機寫入一個磁軌,由於寫入磁頭的寬度比磁軌寬,因此寫入會影響到臨近磁軌;如果這個臨近磁軌有數據,這些數據就也需要重寫以免數據被破壞,依此類推。因此,SMR 磁碟一般分成很多塊只能追加數據(順序寫入)的區域(Zone),這和固態硬碟的快閃記憶體頁管理類似。使用「由裝置管理」(device-managed)方式的 SMR 磁碟通過內部韌體處理了 SMR 磁碟複雜的寫入問題,從而對用戶封裝了 SMR 磁碟的複雜性,令用戶可以像使用 PMR 硬碟一樣隨機寫入 SMR 硬碟。其他 SMR 磁碟則使用「由主機管理」(host-managed)方式,需要作業系統辨識 SMR 磁碟並擁有能對 SMR 磁碟進行正確順序寫入的驅動程式才能被正常使用。[4][5]

歷史

希捷科技從2013年開始出售「由裝置管理」的 SMR 磁碟,並聲稱使用 SMR 技術的磁碟總體容量比普通磁碟的高出25%。[1]2014年,HGST推出了一個容量達10 TB的 SMR 氦氣硬碟,[6]不過到2015年12月又推出了10TB的 PMR 氦氣硬碟。[7]2018年11月,HGST 推出了14 TB和15 TB的 SMR 硬碟。[8]

鑒於SMR的複雜性,威騰電子、希捷、東芝都曾在或仍在未標明磁碟是否使用 SMR 技術的情況下出售硬碟。這導致了很大的爭議:因為 SMR 硬碟在一些情況下顯著慢於 PMR 硬碟。[9]無論是面向數據儲存(伺服器、NAS、冷儲存)的硬碟以及面向普通消費者的硬碟有這個問題。由於一些 NAS 裝置在使用 SMR 硬碟後出現數據損壞,導致消費者投訴,主要硬碟品牌最終公佈了使用 SMR 技術的硬碟產品型號並保證特定系列型號不使用 SMR 技術。[10][11]

數據管理

SMR 盤上的數據有3種管理模式:[12][13]

  • 由裝置管理(device managed
  • 由主機管理(host managed
  • 主機可感知(host aware

由裝置管理

由裝置管理的 SMR 硬碟在介面上對主機來說和一般磁碟沒有區別。主機不需要使用任何特殊方式來寫入磁碟,並且也不需要知道磁碟是否使用了疊瓦儲存技術。其連續寫入效能較隨機寫入高。一切關於數據位置的處理由磁碟本身管理。[4]

這類 SMR 硬碟的韌體控制機理和固態硬碟類似:主機所使用的 LBA 地址和磁碟實際的物理結構沒有直接關係,而是在韌體中存在一個「轉換層」對兩者進行轉換。由於在只能追加(順序寫入)的區域裏進行隨機寫入非常慢,所以這類硬碟都會先把數據寫到一個 PMR 快取區,等到空閒的時候再將數據整理進 SMR 區域中。由於硬碟在處理 RAID 重新同步時的寫入次數很多,這使得在 RAID 中使用 SMR 硬碟容易使快取超出,進而導致 SMR 盤不時需要暫停數分鐘進行整理。還有些問題韌體(如 WD40EFAX)會拒絕讀取沒有寫過的 LBA 地址,並向呼叫者報告一個錯誤。SMR 硬碟的這兩種處理方式都會導致 RAID 控制器認為磁碟損壞。[14]

SMR 硬碟的分塊結構和韌體的垃圾回收機制也意味着磁碟存在寫入放大的問題,[15]不過這對於硬碟來說寫入導致的主要是速度而不是壽命問題。有些 SMR 盤支援Trim命令,以便避免整理不需要的空間。[16]

由主機管理

由主機管理的 SMR 硬碟需要主機嚴格按照特別的協定流程來寫入數據。主機必須順序寫入,以避免破壞已有的數據。磁碟會拒絕執行違反這一協定的命令。[4]

主機可感知

主機可感知是由裝置管理和由主機管理兩者的組合。磁碟可以處理任意順序的寫入命令,但是主機可以知道磁碟使用了疊瓦儲存,也能知道具體的疊瓦空間使用情況。一方面新主機可以儘量順序寫入提高效能,另一方面對舊系統也保持了相容。[4]

協定

SMR 裝置在協定中稱為「分區域塊裝置」(zoned block device),每個區域的大小一般為 256MiB。[17]在由主機管理和主機可了解的 SMR 盤上,SCSI 的 ZBC 和 SATA 的 ZAC 這兩套命令會暴露給主機。這些命令可以讓主機了解每個區域的儲存科技(SMR/PMR),並對這些區域直接進行訪問。[18] ZBC/ZAC的命令有:

  • 報告區域 REPORT ZONES,用來獲得磁碟區域佈局和區域情況(包括表示每個順序區域寫了多少的寫入指標)
    • SMR這類的區域在由主機管理的磁碟上會標為「必須順序」(sequential required),在主機可了解的磁碟上則是「偏好順序」(sequential preferred
  • 重設寫入指標 RESET WRITE POINTER,用來歸零指標,清空順序區域
  • 打開區域 OPEN ZONE,用來給區域「加鎖」,以便獨佔訪問
  • 關閉區域 CLOSE ZONE,用來解鎖區域
  • 收尾區域 FINISH ZONE,用來填充區域,並標記為可讀

每個區域都有自己的LBA範圍。只要遵守了「必須順序」區域的規定,所有一般的 LBA 命令都可以使用。

SMR 磁碟可以通過以下的方式報告自己的分區域屬性:[19][20][4]:14

  • 由裝置管理和主機可了解的磁碟會有一般塊裝置(SCSI 00h)的標記,方便一般電腦辨識。
    • 一個叫做ZONED的欄位會顯示裝置是由主機管理,主機可了解,還是都不是。這個欄位處於 SCSI 的塊裝置特性(Block Device Characteristics)VPD 頁面和 ATA 的裝置能力紀錄檔頁。
  • 由主機管理的塊裝置有一個新的裝置種類標記(SCSI 14h)。只有支援這些協定的電腦才可以辨識。

這套標準的第二版稱為 ZAC-2/ZBC-2,截至2020年4月 (2020-04)仍在開發中。這類裝置引入了一種「領域和範圍式分區域塊裝置」(domains and realms zoned block device),支援不連續的 LBA 地址。[21]威騰電子的代表提議,要在新標準里移除對 ZONED 欄位的描述。[22]

這套分區系統可以對快閃記憶體也有意義,有助於降低內部控制器的工作需求,最佳化寫入放大並降低預留空間。NVMe組織也已提供一個類似的介面,稱作 ZNS。[23]

軟件及應用

疊瓦磁記錄的屬性介於只能順序讀寫的磁帶和可以隨機的讀寫的普通硬碟之間:其數據密度較高,可以隨機讀取,但只能順序寫入。這類硬碟適合寫入一般不需要回頭修改,但需要經常隨機讀取的數據。Dropbox 的「魔術口袋」(Magic Pocket)就是這樣一種系統,它把用戶的數據儲存在只能向後添加的檔案里。[24]也有些由裝置管理的 SMR 硬碟被當作「存檔用磁碟」售賣。[25]

Linux有一些檔案系統已經支援 SMR 裝置或者可以調整得效能更好:[26]

  • F2FS 本來為快閃記憶體設計,現在也有一個分區域塊裝置(Zoned Block Device, ZBD)的模式。可以在由主機管理的磁碟上使用,不過需要一塊普通區域來隨機讀寫元數據。
  • Btrfs 的 ZBD 支援在 5.12 內核添加,不過這個寫入時複製的檔案系統本來就基本上進行順序寫入了。
  • 有調整 Ext4 使其更多進行順序寫入的實驗。
  • 對於其他檔案系統,需要使用 Linux 裝置對映器英語device mapper的 dm-zoned 目標把由主機管理的硬碟對映成一個普通的隨機寫入硬碟。4.10以上版本的內核不需要 dm 就可以自行對映。[27]

FreeBSD 也有對分區域塊裝置的協定級支援。[17]截至2020年4月 (2020-04),Windows 和 macOS 都沒有支援這些協定。

動態混合SMR

傳統的 SMR 盤是在生產時就規定了每一個分塊的用途,但新興的動態混合 SMR 盤可以由顧客隨時重新指定分塊是當 SMR 用還是當 PMR 用。[28][29]

參考資料

參見 

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.