目录

机械硬盘(HDD)  最小组成单元是扇区

硬盘结构

硬盘工作原理

硬盘上的数据组织

硬盘指标

影响性能的因素

固态硬盘(SSD) 最小存储单元是Cell

SSD的特点

SSD架构

控制单元--FTL闪存转换层

存储单元--NAND Flash

地址映射管理


机械硬盘(HDD)  最小组成单元是扇区

硬盘结构

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_数据

一个盘片有若干个小磁块,通过技术改变磁极来改变小磁块的方向

同一个圈内的磁块数量是一致的,这个圈就叫做磁道

数据的读写由磁头来完成,这个磁头在盘片之上,正常工作时磁头与盘片之间有微小的距离,防止磁头划伤盘片;不进行数据读写时,磁头会停放到磁头停放区

主轴是与盘片紧紧焊接在一起的,主轴之下有一个马达,马达转动带动主轴转动,主轴转动带动盘片转动;盘片的转动加上磁头的来回摆动,就能够实现硬盘的一次读写

硬盘工作原理

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_磁道_02

  • 起初,读/写磁头停靠在盘片在主轴附件的一个特殊区域,启停区。
  • 主轴连接所有盘片,并连接到一个马达上。主轴电机以恒定的速度旋转,带动盘片旋转。
  • 主轴旋转时,读/写磁头和盘片间有个很微小的空气间隙,称磁头飞行高度。
  • 读/写磁头被安装在磁头臂顶端,磁头臂带动磁头移动到需要被写入或取出数据的盘片位置上方。
  • 磁头在硬盘表面以二进制的形式读写数据,读取的数据储存在硬盘的flash芯片中,最后传到程序中运行。

注意

盘片进行数据存储,控制电路控制盘片高速旋转,磁头臂控制磁头进行读/写(每个盘片有两个读写磁头,分别位于两个表面)

盘片转速以RPM为单位,现在企业一般用的是10K~15K(此时硬盘一般是在真空中运行的)

盘片上有盘面(两面),盘面上有磁道,磁道上有扇区。

数据写入是按照柱面纵向写入的(先第一纵,然后第二纵这样)

为什么纵向读写

读写时需要确定在哪个磁道读写数据(寻道时间)+ 确定磁道后确定哪个扇区(旋转时延)+ 数据读写传输的时间

纵向读写的话在物理上(寻道时间+旋转时延)花费的时间要少一点

硬盘上的数据组织

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_存储_03

盘面:硬盘的每一个盘片都有两个盘面,每个盘面都能存储数据,成为有效盘片。

  • 每一个有效盘面都有一个盘面号,按从上到小的顺序从0开始依次编号。
  • 在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。

磁道(Track):磁道是在盘片上围绕在主轴周围的同心环,数据被记录在磁道上。

  • 磁道从最外圈向内圈从0开始顺序编号。
  • 硬盘的每一个盘面有300~1024个磁道,新式大容量硬盘每面的磁道数更多,通常用盘片上每英寸的磁道数(TPI,也称磁道密度)来衡量盘片上磁道排列的紧密程度。
  • 磁道是肉眼看不见的,只是盘面上以特殊形式磁化了的一些磁化区。

柱面(Cylinder):在同一个硬盘中所有盘片(包含上下两个盘面)具有相同编号的磁道形成一个圆柱,称之为硬盘的柱面。

  • 每个柱面上的磁头由上而下从0开始编号,数据的读写按柱面进行。
  • 即磁头读写数据时先在同一柱面内从0磁头开始进行操作,依次往下在同一柱面的不同盘面(即磁头)上进行操作。
  • 只有同一柱面所有的磁头全部读写完成后磁头才转移到写一个柱面,因为选取磁头只需通过电子切换即可,而选取柱面侧必须通过机械切换,即寻道。
  • 通常硬盘中磁头的位置由柱面号来说明,而不是用磁道号来说明。

扇区(Sector):每个磁道被分为更小的单位,称为扇区,划分扇区的目的是为了使数据存储更加条理化。

  • 扇区是硬盘中可以单独寻址的最小存储单元。不同硬盘磁道的扇区数可以不同。
  • 通常情况下,一个扇区可以保存512字节的用户数据,但也有一些硬盘可以被格式化为更大的扇区大小,如4KB扇区。

硬盘指标

硬盘容量

硬盘容量=柱面数*磁头数*扇区数*扇区大小,单位为MB或GB

影响硬盘容量的因素有单碟容量和碟片数量。

硬盘缓存

将机械硬盘内部盘片上被频繁读取的数据或者被写入到硬盘但还没有写入到盘片的数据写到缓存中,以此来解决硬盘在读写数据时CPU的等待问题,因此需要在硬盘上设置适当的高速缓存

平均访问时间

平均寻道时间:指硬盘的磁头从初始位置移动到盘面指定磁道所需的时间(越小越好)

平均等待时间:指磁头已处于要访问的磁道,等待所要访问的扇区旋转至磁头下方的时间(越小越好)

数据传输速率

内部传输速率:指理情况下磁头读写硬盘时的最高速率

外部传输速率/接口传输速率:它指的是系统总线与硬盘缓冲区之间的数据传输率,与硬盘接口类型和硬盘缓存的大小有关。

硬盘IOPS和传输带宽

IOPS:每秒的输入输出量(读写次数);理论上可以计算出硬盘的最大IOPS,即IOPS=1000ms/(寻道时间+旋转延迟)

传输带宽(吞吐量):单位时间成功传输的数据数量

并行传输和串行传输

并行:传输效率高,但是传输距离不长,传输频率不高;(一般10多米左右)

串行:传输速率不高,但是可以通过传输频率来提高整体传输速度(随意一般串行比并行的传输速率要高)

影响性能的因素



固态硬盘(SSD) 最小存储单元是Cell

SSD的特点

  • 使用flash技术存储信息,数据传输速度比HDD快
  • 内部没有机械结构因此耗电量更小、散热小、噪音小
  • SSD盘使用寿命受擦写次数影响(硬盘最小组成单元Cell不断擦写,当擦写次数达到极限后,就不能继续读写数据了)
  • 存储成本高

SSD架构

SSD主要是由存储单元(主要是闪存颗粒)和控制单元组成

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_存储_04

控制单元:SSD控制器、主机接口、DRAM等

  • SSD控制器:负责主机到后端介质的读写访问和协议转换,表项管理、数据缓存及校验等,是SSD的核心部件。
  • 主机接口:主机访问SSD的协议和物理接口,如SATA、SAS和PCIe。
  • DRAM:FTL(Flash translation layer,闪存转换层)表项和数据的缓存,以提供数据访问性能。

存储单元:NAND FLASH 颗粒

  • NAND FLASH:数据存储的物理器件,是一种非易失性随机访问存储介质。
  • 多通道并发,通道内Flash颗粒复用时序。支持TCQ/NCQ,一次响应多个IO请求。

控制单元--FTL闪存转换层

基本概念

FTL起着翻译官的作用,它将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理)。

工作原理

Host给定一个逻辑地址,FTL根据这个逻辑地址在逻辑映射表上建立映射关系,连接到Flash上的物理地址。

一般来说,FTL将逻辑地址处理后,建立的映射关系包含了Flash的Block编号、Page编号等,数据读取时便根据这些信息在Flash对应的位置上找到数据,传输至Host。

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_服务器_05

存储单元--NAND Flash

NAND 闪存颗粒采用浮栅晶体管存储数据,其内部存储单元组成包括:

LUN、PlaneBlockPageCell

  • LUN:  能够独立封装的最小物理单元,通常包含多个plane
  • Plane:拥有独立的Page寄存器,通常包含1K或2K奇数Block或偶数Block
  • Block: 能够执行擦除操作的最小单元,通常由多个Page组成
  • Page: 能够执行编程和读操作的最小单元,通常大小为16KB
  • Cell:   Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_磁道_06

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_磁道_07

对NAND Flash的读写数据的操作

主要涉及擦除(Erase)、编程(Program)和读(Read)

注意Nand flsh为非易失性介质,在写入新数据之前必须保证Block被擦除过,Block擦除一次后再写入一次称为一次P/E Cycle

NAND  Flash的闪存介质

NAND Flash颗粒根据Cell存储不同的bit数据位分为不同的闪存介质(主要有四种)

不同的闪存介质又不同的可擦写次数、存储容量以及寿命,具体区别如下

ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_柱面_08

地址映射管理

主机通过LBA访问SSD,SSD主控通过FTL闪存转换将其转换为PBA进行数据读取

  • LBA:Logical Block Address,逻辑区块地址

                可以指某个数据区块的地址或者某个地址上所指向的数据区块。

  • PBA:Physics Block Address,物理区块地址


ssd 与 机械硬盘 对mysql数据库 ssd与机械硬盘对比_柱面_09