本文大量知识来自《大话存储》第二版
磁盘结构
磁盘寻址
磁盘读取和写入通常需要对应的地址。现在使用寻址方式是LBA(旧的寻址是CHS,柱面 Cylinder、磁头 Header、扇区Sector,简称为CHS。最大容量 255(磁头,也就是多个盘片)* 1023(柱面数)*63(扇区数)*512B(扇区大小)/ 1048576 (MB的单位)= 8024 GB。)
逻辑编号(即LBA地址)=(柱面编号×磁头数+磁头编号)×扇区数+扇区编号-1式中,磁头数为硬盘磁头的总数,扇区数为每磁道的扇区数。
CHS我们将它看做3D结构,LBA是线性数字,对线性读取效率非常好。
磁盘结构
硬盘上的数据是如何组织与管理的呢?硬盘首先在逻辑上被划分为磁道、柱面以及扇区。
存储容量=磁头数 ×磁道(柱面)数 × 每道扇区数 ×每扇区字节数
1.盘面号
硬盘的盘片一般用铝合金材料做基片,高速硬盘也可能用玻璃做基片。玻璃基片更容易达到所需的平面度和光洁度,且有很高的硬度。硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利用,都可以存储数据,成为有效盘片,也有极个别的硬盘盘面数为单数。
2.磁道
磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。硬盘的每一个盘面有300~1 024个磁道,新式大容量硬盘每面的磁道数更多。
注意:不同的磁道的上的扇区数量是不相同的。外圈的磁盘数量高于内圈数量,因此在外圈读取速度更高。
3.柱面
所有盘面上的同一磁道构成一个圆柱,通常称做柱面(Cylinder),每个圆柱上的磁头由上而下从“0”开始编号。数据的读/写按柱面进行,即磁头读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即磁头上进行操作,只在同一柱面所有的磁头全部读/写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。电子切换相当快,比在机械上磁头向邻近磁道移动快得多,所以,数据的读/写按柱面进行,而不按盘面进行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写,一个柱面写满后,才移到下一个扇区开始写数据。读数据也按照这种方式进行,这样就提高了硬盘的读/写效率。
4.扇区
操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段。
如何提高性能
磁盘的队列技术
磁盘队列技术,必须需要两方面支持:磁盘控制器(在主板上的磁盘控制)和磁盘驱动器。
无序传输技术
需要磁盘控制器支持,通过DMA将数据放到内存,等磁盘转到数据块头部时再读出剩余的部分发给控制器,这样就避免了时间的浪费。
可控磁头扫描概论
SCAN(回旋扫描模式):经典,电梯模型。从一段到另一端。
C-SCAN(单向扫描模式):从内环向外环扫描,达到外环之后迅速返回内环,返回途中不接受任何IO。
C-LOOK(智能监察单向扫描模式):磁头不必到终点之后就折返。
磁盘缓存
2MB,8MB,16MB,32MB,64MB。
SCSI支持禁用功能。DPO(Disable Page Out):禁止置换缓存中的数据。
FUA(Force Unit Access):强制盘片访问。只有写操作,磁盘将受到的数据写入磁盘才返回成功的信号,也就是Write Through.
SCSI指令支持的有:SCSI/FC/SAS支持。
影响磁盘性能的因素
转速:连续IO吞吐量影响首要因素,转速在10000-15000.
寻到时间:随机IO性能的首要因素。(磁头臂移动的速度)
单碟容量:影响磁盘性能的间接因素,容量越大性能越好。
接口速度:最不重要的。现在接口速度已经超过了磁盘外部传输最高速度。
接口技术SATA和SCSI
ATA技术已经过时,SATA是Intel公司在IDF 2000大会上推出的,其最大的优势是传输速率高。SATA的工作原理非常简单:采用连续穿行的方式来实现数据传输从而获得较高的传输速率。
SATA1.0在多任务、多请求的典型服务器环境里面,SATA 1.0硬盘有性能大幅下降,还有可维护性不强、可持续性不好等特点。SATA 2.0出现是这方面进行了弥补。
SCSI全称为SmallComputer System interface。常用于服务器。
磁盘传输的指标
内外传输速率
磁头读写磁盘时的最高速率。通常每秒10000转的SCSI硬盘,内部传输隋律最大在1000MB/s。但是由于不断换道,磁盘外部传输速率最大只有80MB/s
我们可以通过使用RAID来提高读写速率。
并串传输速率
并行和串行不同在于,并行可以一次传输1bit以上的内容,串行每次只能传输1bit。
并行传输的问题:他的传输效率必须低,否则会对同时传输的数据发生干扰。
USB,IEEE 1394,COM接口都是串行传输。最大传输已经可以达到10Gb/s。PCI-E是典型的串行传输。
磁盘IOPS和传输带宽
磁盘的IOPS,也就是每秒能进行多少次IO,每次IO根据写入数据的大小,这个值也不是固定的。(注意:IO的定义在不同层级是不一样的)。
传输带宽是指硬盘货设备在传输数据的时候数据流的速度。高带宽规格的硬盘在传输大块儿连续数据时有优势,而具有高IOPS的硬盘在传输小块不连续的数据时具有优势。
固态介质和固态硬盘
SSD(Solid State Drive)是一种利用Flash芯片或者DRAM芯片作为数据永久存储的硬盘。称作RAM-Disk。常见的SSD基于Flash介质的SSD。所有类型的ROM(比如EPROM、EEPROM)和Flash芯片使用一种叫做“浮动门场效应晶体管”。这样的晶体管叫做一个“Cell”,每个Cell可以保存1B(Single Level Cell)或2B(Multi Level Cell)。
优势:没有机械寻道时间,对任何地址的访问耗费开销都相等,所以随机IO性能很好。
问题:SSD私自保存的空间也将被耗尽,没了救命稻草,加之文件系统空间已满的话,那么SSD效率就会大大降低。
有的厂商Seagate推出了新的SSD+HDD混合式存储硬盘。