https://www.memory4less.com/seagate-archive-5tb-sata-6-0-gbps-hard-drive-st5000as0011
达到如此高单碟密度的方式便是叠瓦式磁记录(Shingled Magnetic Recording,SMR)。
Seagate: SMR (Shingled Magnetic Recording) Technology Increases Drive Capacity
Shingle本来的意思是屋顶的瓦片,而“叠瓦式磁记录”从字面意思上便可以看出是使用类似瓦片堆叠的方式来重叠磁道。
Toshiba Review: Shingled Magnetic Recording Technologies for Large-Capacity Hard Disk Drives
既然写入的时候会影响相邻的磁道,那干脆不去避免它就好了。每一条磁道在写入时都允许覆盖上一条磁道与之重叠的一部分,而读取磁头由于更灵敏依然可以正常读取上一条磁道未被覆盖部分的数据。
但是重叠磁道以提高密度的做法径直指向了一个后果:写入性能的降低
由于叠瓦式磁记录对读取并没有影响,因此顺序及随机读取性能与以前的传统磁记录(Conventional Magnetic Recording,以下简称为CMR)硬盘相比几乎没有区别。
ST4000DM004是ST3000VX009同盘体SMR版本。也许是由于重叠的磁道更窄寻道时间更长,顺序速度是相差不大的
而对于写入,顺序写入也不会有太大的影响,因此并没有速度上的问题。但是到了随机写入这里就不同了:如果按照最基础的逻辑,修改一处的数据便会覆盖下一条已经被下下条磁道覆盖一部分的磁道,所以硬盘需要先读出下一条磁道将被覆盖的数据然后在上一条磁道修改完后写回去。这叫做“先读再改”(Read-Modify-Write)
但问题是写回下一条磁道的数据又会覆盖下下一条已经被下下下条磁道覆盖一部分的磁道...(阿巴阿巴)
由于这种“牵一发而动全身”的操作实在太过愚蠢,如果做出来的话简直和光盘一样(还是CD-R那种)。所以硬盘厂商一直在尝试把SMR硬盘做得尽可能像CMR硬盘。
第一个尝试是限制单次随机写入会影响的磁道的数量。通过将重叠的磁道分成组(Band),每个组包含几十至上百条重叠的磁道,组与组之间并不重叠。这样改写任何数据只需先读取一个band里的数据,大大提升了随机写入的性能。
但是想象很美好,现实只会打脸。仔细一算,这“大大提升”的随机写入性能还是令人发笑。如果有大量的随机写入(如大量小文件),每秒钟可能连一个io都不到。那么,对于连续的随机写入,有没有办法提升性能呢?答案是有的。
盘片缓存:SMR救星?如何通过缓存来提升性能,一直以来是硬盘开发的重点之一。在90年代,硬盘厂家开始在电路板上增加DRAM芯片作为缓存。除了在硬盘运行时暂存各项固件模块及预取数据之外,一个很重要的功能便是暂存写入的数据。这样不仅可以在短时间内暂存少量的随机写io提升性能,还使得原生指令队列(NCQ)等功能得以实现。