疊瓦磁記錄

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

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

## 歷史

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

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

## 數據管理

SMR 盤上的數據有3種管理模式：

- 由設備管理（device managed）
- 由主機管理（host managed）
- 主機可感知（host aware）

### 由設備管理

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

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

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

### 由主機管理

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

### 主機可感知

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

## 協議

SMR 設備在協議中稱為「分區域塊設備」（zoned block device），每個區域的大小一般為 256MiB。在由主機管理和主機可了解的 SMR 盤上，SCSI 的 ZBC 和 SATA 的 ZAC 這兩套命令會暴露給主機。這些命令可以讓主機了解每個區域的儲存科技（SMR/PMR），並對這些區域直接進行訪問。ZBC/ZAC的命令有：

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

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

SMR 磁碟可以通過以下的方式報告自己的分區域屬性：

- 由設備管理和主機可了解的磁碟會有一般塊設備（SCSI 00h）的標記，方便一般電腦識別。
- 一個叫做ZONED的欄位會顯示設備是由主機管理，主機可了解，還是都不是。這個欄位處於 SCSI 的塊設備特性（Block Device Characteristics）VPD 頁面和 ATA 的設備能力日誌頁。
- 由主機管理的塊設備有一個新的設備種類標記（SCSI 14h）。只有支持這些協議的電腦才可以識別。

這套標準的第二版稱為 ZAC-2/ZBC-2，仍在開發中。這類設備引入了一種「領域和範圍式分區域塊設備」（domains and realms zoned block device），支持不連續的 LBA 地址。威騰電子的代表提議，要在新標準里移除對 ZONED 欄位的描述。

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

## 軟體及應用

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

Linux有一些文件系統已經支持 SMR 設備或者可以調整得性能更好：

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

FreeBSD 也有對分區域塊設備的協議級支持。Windows 和 macOS 都沒有支持這些協議。

### 動態混合SMR

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

## 外部連結

- LSFMM: A storage technology update, LWN.net, April 23, 2013, by Jonathan Corbet
- SMR Impact on Linux Storage Subsystem, HGST, 2014, by Jorge Campello and Adam Manzanares
- Layout optimisation for using XFS on host-managed SMR drives, March 2015
- SMR in Linux Systems, Seagate, March 18, 2015, by Adrian Palmer
- Host-Aware SMR, Seagate, November 10, 2014, by Timothy Feldman

部分硬碟製造商、NAS製造商和科技社群公布的使用疊瓦磁記錄技術的硬碟列表：

- On WD Red NAS Drives, Western Digital, April 22, 2020
- Use of Shingled Magnetic Recording (SMR) technology in Toshiba Consumer Hard Drives, Toshiba, April 28, 2020
- List of known SMR drives, iXsystems Forums, April 16, 2020
- Synology Products Compatibility List (pre-filtered to SMR HDD), Synology

爭議事件

- WD 在紅標 NAS 硬碟上使用 SMR 技術，國外消費者準備集體提告 | T客邦