知识铺垫:SMR与CMR
该部分主要参考知乎 https://zhuanlan.zhihu.com/p/393369645
SMR与CMR都属于HDD,即机械硬盘,机械硬盘之所以叫机械硬盘,就是因为它内部完全由机械结构制成。一块机械硬盘由磁盘面、马达和磁头构成,通常情况下这些结构都被密封在一个铁盒子里,防止其内部结构与外界接触。
磁盘面上有很多小格,在机械硬盘工作时,磁头会悬浮在磁盘面上对磁盘中的小格中的数据进行读取。与其说是磁头在读取数据,倒不如说磁头在读取小格的磁性。每个小格都由小磁粒组成,磁粒可以显示出不同的磁性,两种不同方向的磁性对应着计算机二进制中的0和1,这样磁头就可以读取数据了。在写入数据时,写磁头可以改变小格中小磁粒的极性的方向,这样就做到了将数据写入磁盘。
盘面是机械硬盘成本最高的部分,之后的优化方向基本上都是在向着尽可能高地提高盘面的信息密度,从而均摊单位数据成本而进行。
LMR 水平式机械硬盘
最早的这种小格是水平的铺在磁面上的,这种就是最早期的LMR水平式机械硬盘。
PMR 垂直式机械硬盘(CMR)
后来随着科技的发展,磁头的体积不断被缩小,工艺的不断升级让磁盘面上的小格竖起来排列在磁面上,这样磁性的上下两个方向就对应着二进制中的0和1。这就是目前应用最广泛的PMR垂直式机械硬盘,对比于后面介绍的SMR也叫传统机械硬盘CMR。
相比于LMR水平式机械硬盘,PMR垂直式机械硬盘的磁粒所占面积更小,在同等面积的磁面的条件下PMR可以存放更多的数据。
数据显示LMR水平式机械硬盘的数据密度为133GB/平方英寸,而PMR垂直式机械硬盘的数据密度可以达到1108GB/平方英寸,是LMR的8倍多。
SMR瓦楞式堆叠硬盘
由于技术原因,写磁头是要比读磁头宽一些的,所以写磁头在对数据进行写入时,会占满整个磁道,而读磁头在对数据进行读取时只需要读取到中间一小条就可以获取完整的数据。那么这样磁道之间的区域由于不能被读磁头读取就被白白地浪费掉了。
由于磁面的浪费,所以PMR垂直式机械硬盘并没有将一张磁面利用到极致,如果能利用上被写磁头和读磁头之间浪费掉的磁面岂不是又能将数据密度进行一次提升?
SMR瓦楞式堆叠硬盘利用了类似房檐的瓦叠原理,让数据密度相较于传统的垂直式硬盘有了巨大的提升。由于瓦楞式堆叠硬盘和垂直式硬盘都属于PMR硬盘的种类,所以传统的垂直式硬盘又被称之为CMR硬盘。
由上图所示,由于读写磁头的大小差异,如果能把读磁头之间的间距拉到最小,那我们又更能提高数据密度了。
如果能实现如上两图所示的磁道排布方式,那岂不美哉?
SMR实现了如上的磁道排布方式,但是这造成了一个问题,写磁道A时,可能会修改到磁道B的值,因此在写两个相关的磁道之前,必须先把下一个磁道内容先备份下来,待上一个磁道写完后,再写回下一个磁道,直到写完一个扇区(两个扇区之间的距离足够大不会相互影响)。
这需要更大的缓存,大大增加了写放大效应,严重降低了写入效率,但是优点是增大了数据密度,降低了单位成本。
由于SMR这样的设计模式,随机写入成为了相当昂贵的操作,因此,要想SMR的性能看得过去,就应当避免甚至是禁止对SMR扇区的随机写入操作(想想,这是不是和ZNS的设计思路很相似?ZNS大量工作曾在SMR上展开!)
SMR Types
SMR的Types也和ZNS的Types类似了,因为想要优化SMR性能,必须了解SMR内部细节,例如磁头当前位置,磁道堆叠情况等,于是根据主机对磁盘细节的掌控情况,可以将SMR进行以下划分:
Drive-managed
Drivemanaged SMR (DM-SMR) implements a translation layer in firmware to accommodate both sequential and random writes. It acts as a drop-in replacement of existing HDDs but suffers highly unpredictable and inferior performance
在Drive-managed SMR硬盘中,磁盘驱动器负责处理SMR技术的实现细节,如写入和擦除操作的调度和数据重叠的管理。
主机系统对SMR硬盘的运作方式几乎没有意识,它将其视为普通的硬盘驱动器,无需进行任何特殊的配置或优化。
Drive-managed SMR硬盘对主机系统透明,可以与任何操作系统和应用程序兼容。
Host-managed
HM-SMR 因其容量、可预测的性能和较低的所有权总成本 (TCO) 而成为首选选项。
Host-managed SMR (HM-SMR) requires hostsoftware modifications to reap its advantages. It accommodates only sequential writes and delivers predictable performance by exposing internal drive states
在Host-managed SMR硬盘中,主机系统负责管理SMR技术的各个方面,包括写入和擦除操作的调度、数据重叠的管理以及空闲空间的管理。
主机系统需要使用特定的命令和协议来与SMR硬盘进行通信,并确保正确执行SMR操作。
Host-managed SMR硬盘通常需要相应的主机操作系统和应用程序支持,以便充分利用SMR技术的优势。
Host-aware
Host-aware SMR硬盘介于Drive-managed和Host-managed之间。
它们在硬件上是Drive-managed的,但主机系统可以使用一些命令和通信方式来提供更多的信息和指导,以优化写入和擦除操作的性能。
主机系统需要具备一定的SMR感知能力,并能够与SMR硬盘进行通信以传递相关信息。