疊瓦磁記錄(英語: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.