“硬核”科普系列之硬盘
前言
本文属于“硬核”科普系列的第三篇——硬盘。
本系列的起源亦即第一篇——总线【传送门:“硬核”科普系列之总线】,第二篇——接口则细分为三个主题:
视频接口【传送门:“硬核”科普系列之接口(上:视频)】
USB接口【传送门:“硬核”科普系列之接口(中:USB)】
硬盘接口【传送门:“硬核”科普系列之接口(下:硬盘)】
唉,明明接口篇里已经有了硬盘主题,为何这里还要单独在开一篇?
因为接口篇只讲硬盘接口(协议)啊,本篇主要讲讲硬盘的工作原理,类型构造,以及选购建议。
系列文章均整理自网络,用于自我学习的记录与总结,也希望能对同样渴望知识的网友们有所帮助,出处注于文末。
概述
硬盘是计算机的主要外部存储设备。计算机中的存储设备种类非常多,常见的主要有光盘、硬盘、U 盘等,甚至还有网络存储设备SAN、NAS等,不过使用最多的还是硬盘。
如果从存储数据的介质上来区分,硬盘可分为机械硬盘(Hard Disk Drive, HDD),固态硬盘(Solid State Disk, SSD)和混合硬盘(Hybrid Hard Disk,HHD)。 一块基于传统机械硬盘诞生出来的新硬盘)。机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据,混合硬盘则是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。
下面主要讲讲前两种最常见的硬盘。
机械硬盘
机械硬盘(硬盘/磁盘驱动器,Hard Disk Drive,简称HDD)一般指温彻斯特硬盘,一种由电机、在电机驱动下高速旋转的圆盘(磁碟/磁盘)以及悬浮在磁碟上方的磁头等机构组成的,以磁信号存储信息的一种非易失性存储器。
结构
机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成,数据就存放在磁盘盘片中。
磁盘盘片
大家见过老式的留声机吗?留声机上使用的唱片和我们的磁盘盘片非常相似,只不过留声机只有一个磁头,而机械硬盘是上下双磁头,且旋转速度要远高于唱片(目前机械硬盘的常见转速是 7200 rpm)。
机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。盘片在两个磁头中间高速旋转,即机械硬盘是上下盘面同时进行数据读取的。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作了。
需要注意的是,数据通过磁头以电磁流改变极性的方式被写到磁盘上(也可以通过相反的方式读取),磁头并不能和盘片直接接触,因为直接接触会划伤盘片导致数据丢失,这就是为什么生活环境中机械硬盘不能经常磕碰或者摔撞,在读写时也非常害怕晃动和磕碰。另外,硬盘为精密设备,进入硬盘的空气必须过滤。因为机械硬盘的超高转速,如果内部有灰尘,则会造成磁头或盘片的损坏,所以机械硬盘内部是封闭的,如果不是在无尘环境下,则禁止拆开机械硬盘。
逻辑结构
我们已经知道数据是写入磁盘盘片的,那么数据是按照什么结构写入的呢?机械硬盘的逻辑结构主要分为磁道、扇区和拄面。
磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个同心圆,这些同心圆就叫做磁道(Track)。每个盘片都在逻辑上有很多的同心圆,最外面的同心圆就是0磁道(注意,磁道只是逻辑结构,在盘面上并没有真正的同心圆)。硬盘的磁道密度非常高,通常一面上就有上千个磁道。但是相邻的磁道之间并不是紧挨着的,这是因为磁化单元相隔太近会相互产生影响。
扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。每个扇区的大小是固定的,为 512Byte。扇区也是磁盘的最小存储单位。硬盘的第一个扇区,叫做引导扇区。
柱面:如果硬盘是由多个盘片组成的,每个盘面都被划分为数目相等的磁道,那么所有盘片都会从外向内进行磁道编号,最外侧的就是0磁道。而具有相同编号的磁道会形成一个圆柱,即处于同一半径圆的多个磁道组成的一个圆柱就被称作磁盘的柱面(Cylinder)。
硬盘的大小
硬盘的大小是使用“磁头数 x 柱面数 x 扇区数 x 每个扇区的大小”这样的公式来计算的。其中,磁头数(Heads)表示硬盘共有几个磁头,也可以理解为硬盘有几个盘面,然后乘以2;柱面数(Cylinders)表示硬盘每面盘片有几条磁道;扇区数(Sectors)表示每条磁道上有几个扇区;每个扇区的大小一般是512Byte。
寻址方式
CHS
CHS是柱面(Cylinder),磁头(Head)和扇区(Sector)的简称。我们通常生活中说的硬盘的三维指的就是CHS。 它采用24bit位寻址(最大寻址空间是$2^{24} = 8GB$):
- 前10位表示Cylinder(磁道数和柱面数相同,柱面数范围是$0~2^{10}$,即$0~1024$);
- 中间8位表示Head(磁头数范围是$0~2^8$,即$0~255$);
- 后面6位表示Sector(扇区数范围是$0~2^6$,即$0-63$);
LBA
Logical Block Addressing的简称。LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址。
ATA-1规范中定义了28位寻址模式,以每扇区512Byte来计算,ATA-1所定义的28位LBA上限达到了128GB($2^{28} \times 512Byte = 137438953472Byte / 1024 / 1024 / 1024 = 128GB$)。2002年ATA-6规范采用48位LBA,同样以每扇区512byte组计算容量上限可达128PB。
【注意:由于CHS寻址方式的寻址空间在大约8GB(512Bytes(单个扇区大小) * 63(扇区数) * 1024(柱面数/磁道数) * 255(磁头) = 8422686720Bytes / 1024 / 1024 = 8032MB / 1024 < 8GB)以内,所以在磁盘容量小于8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于8GB时,则只能使用LBA寻址方式。】
特点
与软盘驱动器(Floppy Disk Drive,FDD)和光盘驱动器(Optical Dsik Drive,ODD)不同,机械硬盘的盘片为铝制(曾经有过玻璃盘片)且无法取出。由于机械硬盘的盘片转速极快(常见消费级机械硬盘的转速在5400rpm到7200rpm之间),磁头与盘片之间的距离极小,机械硬盘对灰尘和震动极其敏感(机械硬盘内部为高度无尘环境,自行拆开盘体会导致硬盘报废)。
空气硬盘的盘体上设有带过滤措施的气孔,用于平衡硬盘工作时产生的热量导致的内外气压差。而氦气硬盘则为密封设计。由于氦气密度极小,阻力和震动较小,可以进一步缩小盘片间距,从而能够封装更多盘片以提高硬盘容量。
- 容量较大,价格低廉,在断电情况下能长时间保存数据。
- 顺序读写速度较快。
- 随机读写性能很弱,IOPS低,响应时间较长。
- 工作时存在一定噪音,读写时噪音会加剧。
- 对震动敏感,发生跌落碰撞容易损坏。
主要参数
- 物理外形:按照尺寸可分为2.5英寸和3.5英寸两种。盘体厚度也是一个重要参数。磁碟半径一般与硬盘物理外形尺寸相近(2.5英寸和3.5英寸)。
- 电气标准:主要为SATA接口,企业级机械硬盘还有采用SAS接口的。
- 数据协议:主要有IDE和AHCI两种。前者已被淘汰,但现在的机械硬盘仍可工作在IDE模式下。
- 缓存容量:机械硬盘板载DRAM缓存的大小,多在32MB到256MB之间。一些企业级机械硬盘还配备了NAND闪存作为缓存。
- 单碟容量:单片磁碟的容量,很大程度上决定了机械硬盘的性能。
- 盘片数量:封装的磁碟数,受机械硬盘物理外形限制,通常不超过8片。
- 盘片转速:工作时盘片的旋转速度,通常在5400rpm到7200rpm之间。
- 磁记录技术:按照磁性粒子的方向可分为LMR和PMR两种,按照磁道有无重叠可分为CMR和SMR两种。
- 扇区大小:分为512Byte和4KB两种。后者被称为高级格式化,是现在的机械硬盘的主流标准。
机械硬盘的性能衡量指标有顺序读写速度、随机读写性能和响应时间等。
- 顺序读写速度与磁碟半径、单碟容量、盘片转速和读写位置有关,越快越好。顺序读写速度与单碟容量和盘片转速成正相关。磁碟半径越大,读写位置越靠近磁碟外圈,磁头与目标读写位置之间的相对线速度越快,顺序读写速度也就越快。
- 随机读写性能通常用IOPS(Input/output Per Second)表征,即每秒的读写次数,越大越好。
- 响应时间包括寻道时间、旋转延迟时间和传输时间,越小越好。
- 寻道时间指磁头径向移动到目标磁道所需时间,通常取平均值。寻道时间与磁碟半径成正相关。常见消费级机械硬盘的寻道时间一般在10ms数量级。
- 旋转延迟时间指磁碟目标位置旋转到磁头位置所需时间,通常取平均值(即半个旋转周期)。
- 传输时间指完成传输所请求的数据所需要的时间,与前两者相比可忽略不计
LMR与PMR,CMR与SMR
- 水平磁记录(Longitudinal Magnetic Recording,简称LMR)
- 垂直磁记录(Perpendicular Magnetic Recording,简称PMR)
- 传统磁记录(Conventional Magnetic Recording,简称CMR)
- 叠瓦磁记录(Shingled Magnetic Recording,简称SMR)
其中LMR和PMR是对立概念,CMR和SMR是对立概念。
对于LMR和PMR,其区别在于磁性粒子的方向:LMR硬盘的磁性粒子方向与磁碟面平行,PMR硬盘的磁性粒子方向与磁碟面垂直。由于PMR能大幅提高磁碟的存储密度,目前PMR硬盘已经完全取代了市面上的LMR硬盘。
对于CMR和SMR,其区别在于磁道(Track)有无重叠:CMR硬盘的磁道是完全分离的,SMR硬盘的磁道彼此重叠,就像屋顶的瓦片一样。通常磁道的宽度随着磁头上的读取器和写入器的尺寸的缩小而缩减,由于磁头尺寸已经达到物理极限,在没有新的存储技术的情况下,磁碟的存储密度将无法继续提高。而SMR技术通过缩小磁道间距取得了更高的存储密度。
虽然SMR进一步提高了磁碟的存储密度,但是由于磁道重叠,在对磁道进行写入操作时,相邻的下一条磁道也会受到影响。在对包含有效信息的磁道进行写入时,必须对后续磁道进行重写。而磁头上的读取器的尺寸小于写入器,读取操作不会受到相邻磁道的影响。
因此,SMR硬盘将磁道进行分组,由多条连续磁道组成段(Band),段是SMR硬盘进行顺序写入的基本单元。段对应的逻辑概念是区域(Zone),区域内的数据写入只能以顺序方式进行,而数据读取则可以随机进行。同时,SMR硬盘在磁碟上划分有“传统区”(Conventional Zone),在这些区域内磁道按照CMR方式排列,从而保证随机写入的实现。
为了更好地为写入提供缓冲,采用SMR技术的硬盘通常会配备更大的DRAM缓存(通常为128MB或256MB,与一个区域的大小相当)。为了减少“脏盘”情况带来的不利影响,SMR硬盘与采用NAND闪存为存储介质的固态硬盘一样引入了TRIM技术。
对于普通消费者,CMR与SMR的具体区别在于,SMR能提高25%的存储密度(同一代磁碟和相同的磁碟数),也就是以相近的价格提供多25%的容量。但是,在对SMR硬盘进行写入时,一旦需要对包含有效信息的区域写入,SMR硬盘的写入速度会大幅下降。因此SMR硬盘不适合用于写入密集型场景。
机械硬盘的选购
机械硬盘行业门槛较高且已经十分成熟,几大机械硬盘制造商的产品并无太大差距,可以直接按照厂商划分的产品线进行选择。主要机械硬盘制造商:希捷、西部数据(包括曾经的HGST)和东芝。
对于3.5英寸机械硬盘,由于价格差距并不明显,除非是用于冷数据备份(如归档)等特殊用途,日常使用应尽可能避免选择采用SMR技术的机械硬盘。
对于2.5英寸机械硬盘,除非选择500GB型号,否则基本只有SMR硬盘可选。
SMR辨别
板载DRAM缓存大小是常用判断依据。通常容量小于4TB缓存大于等于128MB的大概率为SMR硬盘(某些高端家用和企业级硬盘除外)。通常7mm及以下厚度、1TB及以上容量的2.5英寸HDD均为SMR硬盘。过去的2.5英寸CMR硬盘要达到1TB容量需要双碟封装,一般为9.5mm厚度。现在只有少数500GB的笔记本机械硬盘仍为CMR硬盘。而且500GB笔记本机械硬盘性价比较低,与500GB固态硬盘的价格差距有限。
企业级HDD
企业级机械硬盘主要有两大类,一类是高转速2.5英寸机械硬盘,一类是常规转速3.5英寸机械硬盘。
- 高转速2.5英寸企业级机械硬盘:转速达到10krpm或15krpm,大多采用SAS接口。
- 常规转速3.5英寸企业级机械硬盘:转速通常为7200rpm,有SATA接口和SAS接口两类。
前者价格昂贵,由于转速较高,噪音也较大。此外家用电脑通常并不支持SAS硬盘,需要额外购买SAS接口的阵列卡或HBA卡。
与消费级产品相比,企业级机械硬盘的优势主要在于可靠性,例如UBER和可用率。
- 无法纠正的位错误率(UBER):消费级机械硬盘通常为1 sector in $10^14$ bits,企业级机械硬盘可达1 sector in $10^15$ bits。
- 可用率(Availability):消费级机械硬盘通常为8x5,企业级机械硬盘可达24x7。
虽然高转速2.5英寸企业级机械硬盘的响应时间较短,但是与消费级机械硬盘仍处于同一数量级。在固态硬盘快速普及的今天,这些企业级机械硬盘甚至在容量/价格比上都没有明显优势。因此对于普通用户,只有价格相对合适的采用SATA接口的常规转速3.5英寸企业级机械硬盘比较值得购买。
固态硬盘
固态硬盘(Solid State Disk/Solid State Drive,SSD)和传统的机械硬盘(Hard Disk Drive,HDD)最大的区别就是不再采用盘片进行数据存储,而采用固态电子存储芯片阵列进行数据存储,如上图所示。
组成
固态硬盘主要由控制单元和存储单元组成,其中存储单元的芯片主要分为两种:一种是采用闪存(NAND或3D XPoint)作为存储介质的;另一种是采用DRAM作为存储介质的。目前使用较多的主要是采用闪存作为存储介质的固态硬盘,BIOS芯片一般采用NOR Flash。
- NAND闪存基于浮栅金属氧化物半导体场效应晶体管(Floating-gate MOSFET,简称浮栅MOSFET或FGMOS),通过修改存储在浮栅中的电荷量来表示数据。在2D NAND闪存时代,浮栅式结构(Floating Gate)几乎是唯一的选择。在转换到3D NAND闪存时,电荷捕获型结构(Charge Trap)后来居上,成为了主流选择。目前绝大多数闪存制造商生产的3D NAND闪存都基于电荷捕获型结构。
- NAND闪存的基本架构为Chip/Package-Die-Plane-Block-Page-Cell。
- 其中Cell为NAND闪存的基本单元,根据一个Cell存储数据的多少,可以将NAND闪存分为SLC、MLC、TLC和QLC四种(分别为1bit、2bit、3bit和4bit)。目前SLC和MLC闪存只有极少数高端产品采用,主流固态硬盘均基于TLC和QLC闪存。
有关NAND闪存的更多知识,推荐小大熊猫的知乎回答:如何浅显易懂地解释「闪存」?它的存储原理是什么? ,这里不再赘述。
固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等诸多领域。
SSD vs. HDD
- 固态硬盘SSD因为丟弃了机械硬盘的物理结构,所以相比机械硬盘具有了低能耗、无噪声、抗震动、低散热、体积小和速度快的优势;不过价格相比机械硬盘更高,而且使用寿命有限。
- 固态硬盘拥有更快的读写速度(无论是顺序读写还是随机读写)、更高的IOPS(每秒响应次数)以及更低的响应延迟(类比机械硬盘的寻道时间),对振动/震动没那么敏感,运行时发出的噪音几乎不可闻。
- 与机械硬盘相比,安装在固态硬盘上的操作系统和应用软件的启动、加载时间显著缩短,系统响应速度加快,总体而言使用更加流畅。
- 机械硬盘HDD在价格、容量、使用寿命上占有绝对优势。
- 固态硬盘在发生故障或因误操作删除、覆盖数据时基本无法恢复。正所谓“硬盘有价,数据无价”,目前SSD不能完全取代HHD,HDD“损坏”是有可能将数据找回来的,而SSD“损坏”则意味着数据是真的丢失了。
分类
根据物理外形可以分为2.5英寸、M.2和AIC(独立显卡那样的插卡式)三类。
根据电气标准可以分为SATA和PCIe两类。
根据数据协议可以分为AHCI和NVMe两类。
其中2.5英寸和AIC的PCIe固态比较少见(前者在发烧级和企业级固态中较常见,一般采用U.2接口),消费级最常见的是2.5英寸的SATA+AHCI固态硬盘、M.2的SATA+AHCI固态硬盘和M.2的PCIe+NVMe固态硬盘。
M.2的两种key
在选购固态硬盘时必须注意,M.2固态硬盘有B Key和M Key以及长度之分,一般有以下规格:B & M Key(金手指有两个缺口,可能为SATA总线或PCIe 2X总线)、M Key(金手指有一个缺口,通常为PCIe 4X总线),2280(宽22mm,长80mm)、22110、2260、2242和2230等。上图右上角的860 EVO为M.2 B & M Key 2280的固态硬盘,采用SATA总线;右下角的970 EVO Plus为M.2 M Key 2280的固态硬盘,采用PCIe 4X总线。
一般来说M Key的M.2插槽能兼容B & M Key和M Key的固态硬盘(但不一定同时支持SATA总线和PCIe总线,可能只支持PCIe总线,也可能只支持SATA总线),B Key的M.2插槽则无法兼容M Key的固态硬盘(通常只能支持SATA总线),详细情况必须参阅说明书。
可以这么理解:两个缺口的M.2固态(上图第三排)能安装到这两种M.2插槽(上图第一排)里(但电气标准不一定支持),而一个缺口的M.2固态(上图第二排右一)只能安装到到第二种M.2插槽(上图第一排右一)里。
存在的问题
掉速
由于NAND闪存的特性(无法直接覆写,NAND闪存的最小写入单元是page,最小擦除单元是block,多个page组成一个block,多个block组成一个die),因此在向存有数据(无论数据是否有效)的block写入数据时必须先擦除再写入,表现为读写速度低于预期。通常固态硬盘主控会自动进行垃圾回收和TRIM操作,可在一定程度上缓解此类掉速现象。
此外,几乎所有消费级TLC固态硬盘都采用了动态SLC缓存机制。在连续写入大量数据时,SLC缓存用尽后写入速度会降至TLC原本的水平(闲置一段时间后自动恢复)。
耐久
数据保持时间(Data Retention)是衡量NAND闪存可靠性的重要指标。
由于浮栅MOSFET中本征电场的存在,随着时间流逝产生的电荷泄漏,会逐渐导致NAND闪存中的数据出错甚至无法读取。为此Read Scrub(数据巡检/扫描重写)技术应运而生,通过按照一定的算法对硬盘进行扫描,当发现某个闪存页翻转比特数超过阈值时,对数据进行重写,从而减少ECC无法纠正的位错误。[3]影响数据保持时间的因素有擦写次数、ECC强度、温度和电磁辐射等。
由于陷阱辅助隧穿(Trap-assisted tunneling (TAT))效应,随着擦写次数(编程/擦除周期数,Program/Erase Cycle (P/E Cycle))的增加,氧化物绝缘层逐渐磨损,NAND闪存的可靠性会逐渐降低(数据保持时间缩短)。升高温度也会使数据保持时间缩短。
由于读取干扰(Read Disturb)的存在,即便不进行写入,读取操作也会使相近的存储单元受到影响。主控会计算自上次擦除动作后的读取动作总次数,通过重写相应存储单元中的数据,避免读取干扰错误的发生。
当NAND闪存的可靠性下降至厂商设定的阈值时,其生命也就抵达了终点。通常此时固态硬盘的S.M.A.R.T.参数会达到阈值(P/E Cycle达到阈值、坏块数达到阈值或其它耐久度参数达到阈值),引发系统报警,提醒用户更换硬盘。这种情况可以理解为寿终正寝。
但是固态硬盘也可能在寿终正寝之前发生致命错误导致失去响应无法被系统识别(俗称掉盘)。
此外,随着固态硬盘存放时间的增加,其故障率逐渐升高,因此应尽可能购买新出厂的产品。
固态硬盘的选购
在选购硬盘时,应当关注容量、性能和可靠性三个方面。
对于机械硬盘,由于只有寥寥几家制造商,一般考虑盘片记录技术(CMR、SMR和HAMR等)、单碟容量、转速、缓存大小、外部接口以及充氦与否,再加上读写速度和响应时间实测值以及硬盘故障率,很容易就能得出大致评价。
而对于固态硬盘,不仅参数十分繁杂,仅靠分析这些参数并不能准确地推测出硬盘的实际性能,而且固态硬盘在不同工作条件下表现出的性能也有很大差异。至于固态硬盘的可靠性,则更是缺乏大量数据支持(与机械硬盘相比)。
普通用户建议尽量选择一线品牌的主流型号,因为一线品牌的产品销量相对较大,它们不仅经受了大量用户的考验,而且即使变更方案,也很快会由用户反映体现出来。此外一线厂商的售后服务通常也更好(比如在店保之外能个人送保)。
在消费级固态硬盘制造商里,除三星、英特尔(这两个算超一线)、闪迪+西数、东芝+浦科特、美光(镁光)+英睿达和金士顿(金士顿算准一线)之外均为二线。这些制造商大多具有自行生产NAND闪存的能力,某些品牌还能自研主控(如三星)。
固态硬盘的主要部件有主控、DRAM缓存和闪存芯片。其中DRAM缓存为非必需,主控可能和闪存芯片集成在一起(比如某些M.2 2230规格的固态硬盘)。
- 常见主控制造商:三星电子(Samsung)、美满电子(Marvell)、群联电子(Phison)、慧荣科技(Silicon Motion)、LSI以及联芸科技(Maxio)。
- 常见DRAM制造商:三星电子(Samsung)、美光科技(Micron)、SK海力士半导体(SK Hynix)以及南亚科技(Nanya)。
- 常见NAND制造商:三星电子(Samsung)、闪迪(Sandisk)、铠侠(Kioxia)、英特尔(Intel)以及美光科技(Micron)。
- 注:LSI为Intel的高端消费级和企业级固态硬盘提供定制主控。联芸科技(Maxio)来自智微科技(JMcrion)。铠侠(Kioxia)由东芝存储器(Toshiba Memory)更名而来,全名铠侠株式会社。
有关近期热销的主流固态硬盘型号推荐,详见大小熊猫的知乎原文:目前哪些品牌/型号的 SSD(固态硬盘)比较值得购买?
(整理自网络)
参考资料:
http://c.biancheng.net/view/879.html
https://www.zhihu.com/question/23203703/answer/1293628126
https://www.zhihu.com/question/19926569/answer/547791508