Shingled Magnetic Recording | My Note

Shingled Magnetic Recording

Updated: Sep 21st, 2023


总述:通过使磁道产生一定部分的重叠来在相同面积的磁盘上放置更多的磁道,从而提高容量

背景

背景可参考PMR磁盘。

方法

  1. 在读强度较大的场景,可以考虑充分利用PMR技术下的磁道间隔与读磁头之外的磁道空间.
  2. 磁道会如瓦片一样覆盖在另一个磁道上,从而增加磁道密度,这并不影响读磁头工作。
  3. 300
    1. 图源:link
  4. 300
    1. 图源:link

讨论

对于读操作而言,由于改动并没有涉及读磁头的读取范围,因此没有任何影响。写入新数据也不会有区别。SMR带来的主要问题在于对旧数据的改写和修改操作。如果直接改写原有的旧数据,由于写磁头比读磁头大,这种改动使当前磁道的数据覆盖了下一个磁道的部分可读区域,这将导致数据损坏。

SMR硬盘中是这样处理的:先把旧数据复制到硬盘中的空白处,然后在复制出来的区域修改,旧数据不动。这样一次写操作就放大成两次写操作。为了掩盖这种做法带来的性能损失,有些SMR硬盘会用一个buffer来暂时存放旧数据,并在buffer中直接修改,后面空闲了再偷偷写回磁盘。这样子修改操作就不至于太慢了。

需要注意的是,无论怎样,旧数据是无法直接修改的,因此数据被修改后,旧数据所在的磁道上便存放了一些无用的垃圾数据。因此SMR硬盘需要定期进行垃圾回收将这些无法被利用的空闲空间进行处理,并整理磁盘碎片避免数据过于碎片化。

如果长时间进行密集的随机覆写,就会没有足够的闲置时间掩盖其整理磁道的开销,导致SMR磁盘需要一边整理旧磁道,一边写入新数据。随机写入性能会很差。

SMR 和 Solid-State Drive 很像,底层存储介质都是不可覆写的,因此需要额外的垃圾回收,因此近期热起来的 Zoned Storage 也在两种介质上都适用。

参考

  1. wiki
  2. link
  3. link

Instead of authenticating the giscus application, you can also comment directly on GitHub.


Notes mentioning this note