机械硬盘
Posted xdq101
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机械硬盘相关的知识,希望对你有一定的参考价值。
1 机械硬盘
1.0 硬盘外部结构
1.2 磁盘结构
磁盘有多个磁片,每个磁片有两面,每个每个面有一个磁头,用于读取磁片信息,磁片被划分为多个扇形区域即扇区,同一磁片不同半径的同心圆为磁道,不同磁片相同半径构成的圆柱面称为柱面。
名词 | 描述 |
---|---|
柱面 | 各磁盘相同位置上磁道的集合 |
磁盘容量 | 磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 |
1.3 磁片结构
- 盘面上的同一个磁道构成一个圆柱(柱面),数据的读写按柱面由外向内进行,而不是按盘面进行,定位时,首先确定柱面,再确定盘面,然后确定扇区,之后所有磁头一起定位到指定柱面,再旋转盘面使指定扇区位于磁头之下.写数据时,当前柱面的当前磁道写满后,开始在当前柱面的下一个磁道写入,只有当前柱面全部写满后,才将磁头移动到下一个柱面.在对硬盘分区时,各个分区是以柱面为单位划分的,即从柱面到柱面,不存在一个柱面同属于多个分区.
- 现代硬盘技术,不用圆心发散的直线划分扇区,而是从外圈磁道开始取一定长度作为一个扇区,然后从外向里一个个编号,这个编号就是扇区的地址,我们要确定文件位置全靠这个地址,扇区都有固定的大小,一般为512字节,现在的支持先进格式化(NTFS)的硬盘都采用4096字节作为一个扇区.
- 术语
序号 | 术语 | 描述 |
---|---|---|
1 | 磁道(Track) | 每个盘面被划分为许多同心圆,这些同心圆轨迹称为磁道,磁道由外向内,从0开始编号 |
2 | 扇区(Sector) | 将一个盘面划分为若干内角相同的扇形,这样盘面上的每一个磁道就被划分为若干段圆弧,每段圆弧叫做一个扇区,每个扇区中的数据作为一个单元同时读出或写入,硬盘的第一个扇区,叫做引导扇区.旧式硬盘,磁道周长不同,每个磁道上扇区数相同,越往圆心弧越短,存储密度越高,显然浪费空间;现代硬盘改为等密度结构,即外围磁道上扇区数量大于内圈磁道,寻址方式改为以扇区为单位的线性寻址,对扇区进行查询和管理,需要对扇区进行编号,扇区的编号从0磁道开始,起始扇区为1扇区,依次增加,0磁道的扇区编号结束后,1磁道的起始扇区累计编号 |
3 | 簇 | DOS进行分配的最小单位,当创建一个很小的文件时,如一个字节,则在磁盘上并不只占一个字节的空间,而是占有整个一个簇,簇的大小可在称为磁盘参数块(BPB)中获取,簇仅适用于数据区,磁盘驱动器在向磁盘读取和写入数据时,要以扇区为单位,在磁盘上,DOS操作系统是以"簇"为单位,为文件分配磁盘空间.硬盘的簇通常为多个扇区,与磁盘的种类,DOS版本和硬盘分区大大小有关,每个簇智能由一个文件占用,及时这个文件只有几个字节,绝不允许两个以上文件共用一个簇,否则会造成数据混乱 |
4 | 扇面 | 一个磁片面上,同心圆由外到内的扇区组成的一个面,称为扇面,磁盘面由分成多个扇面,扇面分为多个扇区 |
1.4 数据读取
- 读取过程
机械硬盘读取数据,先通过磁头找到对应的磁道和扇区(对于多碟的机械硬盘首先需要确定柱面),这全部依靠磁头的驱动马达来驱动(磁头本身是依靠磁片旋转产生的气流来悬浮的).马达等机械装置的反应速度毕竟不快,所以机械硬盘会浪费大量时间在磁道寻址上(每次寻道大约10ms左右),尤其是对于零碎的小文件读取来说,由于文件所在的扇区不连续,需要不断进行寻道,这样性能就大大降低. - 读取性能
日常进行文件读写绝大部分是随机文件读写,机械硬盘在这种情况下花费在寻道的时间很多,系统在机械硬盘上运行速度慢的结果.所以机械硬盘的随机读写能力较差(不超过0.1MB/s),但是持续读写性能较好(而且随着单碟容量的提升和磁片阵列的组建,持续读写速度可比固态硬盘更快).如果不使用机械硬盘作为系统盘,则性能和固态硬盘差别不大,如播放媒体文件.
图1.4 磁盘读取速度
2 磁盘阵列
磁盘输入输出系统要求
- 提高存取速度;
- 容错,即安全性;
- 有效利用磁盘空间;
- 平衡CPU,内存及磁盘性能差异,提高计算机整体工作性能;
2.1 阵列介绍
磁盘阵列控制器连接四个磁盘,这四个磁盘构成一个阵列,二磁盘阵列的控制器(RAID Controller)将四个磁盘视为单一的磁盘,如DOS环境下的C盘,磁盘扩展将小容量的磁盘扩充为大容量的单一磁盘,用不必规划数据在各个磁盘的分布,而且提高了磁盘空间的使用率,DFTRaid的SISC磁盘阵列可连接几十个磁盘,而各个磁片一起存取的动作比单一磁盘快,磁盘阵列将同一阵列的磁盘视为单一的虚拟磁盘(Virtual Disk)所以器数据是以分段方式顺序存放在磁盘阵列中,如上图所示.
2.2 数据存储
数据按需分段,从第一个磁盘开始存放,放到最后一个磁盘在回到第一个磁盘,直到数据分配完毕.分段大小视系统而定,有的系统以1kb或4kb甚至4mb或8mb存取,但除非数据小于一个扇区(512bytes),否则分段应是512bytes的倍数.机械硬盘的数据读写以扇区为单位,若数据小于512bytes,系统读取该扇区后,还要做组合或分组的动作,耗费时间.从上图可知,数据分段于不同的磁盘,整个阵列的各个磁盘同时读写,故数据分段使存取有更好的性能.
level | 场景 |
---|---|
0/1 | PC及PC相关的系统,如小型网络服务器及需要高磁盘容量与快速磁盘存取的工作站,性价比较高 |
2/3 | 大型电脑及影像,CAD/CAM等处理 |
5 | 多用于OLTP,因为有金融机构及大型数据处理中心的迫切需要,使用较多且名气较高 |
2.3 机械硬盘RAID系列
2.3.1 RAID0
RAID0使磁盘的输入输出有最高的效率,而磁盘阵列有更高效率的原因除了数据分段外,还可以同时执行多个输入输出要求,因为阵列中的每个磁盘都能独立动作,分段放在不同的磁盘,不同的磁盘可同时读写,而且能在快取内存及磁盘作并行存取的动作,但只有硬件的磁盘阵列才有此性能表现.
2.3.2 RAID1
RAID1使用磁盘镜像(Disk Mirroring)技术,工作方式为在工作磁盘之外,增加备份磁片,两个磁盘所存储的数据完全一致,数据写入工作磁盘时,同时将数据写入备份磁盘.RAID1完全做到了容错包括不停机,当某一磁盘发生故障,可将此磁盘拆下来而不影响其他磁盘的操作,待新的磁盘换上去,系统即时做镜像,将数据重新复制.
2.3.3 RAID2
RAID2将数据分散为位元(bit)或块(block),加入海明码(Hamming code),在磁盘阵列中作间隔写入到每个磁盘中,而且地址都一样,即在各个磁盘中,数据都在相同的磁道及扇区中,RAID2设计是使用共轴同步(spindle sychronize)的技术,存取数据时,整个磁盘阵列一起动作,在各作磁盘的相同位置作平行存取,所以有最好的存取时间(access time),其总线(bus)是特别的设计,以大宽带(band wide)并行传输所存取的数据,所以有最好的传输时间(transfer time),在大型档案的存取应用,RAID2有最好的性能,如果档案太小,性能会下降,因为磁盘的存取以扇区为单位,而RAID2的存取是所有磁盘平行动作,而且是左单位元的存取,故小于扇区的数量会使其性能大打折扣,RAID2是设计给需要连续大量数据的电脑使用,如大型电脑,作影像处理或CAM/CAD的工作站等,并不适用于一般的多用户环境,网络服务器,小型机或PC.RAID2的安全采用内存阵列技术,使用多个额外的磁盘作单位错误校正(single-bit correction)及双位错误检测(double-bit detction).
2.3.4 RAID3
RAID3的数据存储技术及存取方式和RAID2一样,共轴同步,但是在安全方面以奇偶校验(parity check)取代海明码左错误校正及检测,所有只要一个额外的校验磁盘(parity disk),奇偶校验值的计算是以各个磁盘的对应位作XOR的逻辑运算,然后将结果写入奇偶校验磁盘,任何数据的修改都要做奇偶校验计算,如果某一磁盘故障,换上新的磁盘,整个磁盘阵列(包括奇偶校验磁盘)需要重新计算一次,将故障磁盘的数据回复并写入新磁盘中,如奇偶校验磁盘故障,则重新计算奇偶校验值,以达容错要求.
RAID3磁盘利用空间比RAID1和RAID2磁盘利用率达85%,性能比RAID2稍差,因为要做奇偶校验计算,共轴同步的平行存取在读档案是有很好的性能,但是在写入时较慢,需要重新计算及修改奇偶校验磁盘内容.RAID3和RAID2有同样的应用方式,适用大档案及大量数据输入输出的应用,不适用于PC及网络服务器.
2.3.5 RAID4
RAID4以扇区作为数据分段,各磁盘形同位置分段形成一个校验磁片分段(parity block),放在校验磁盘,这种方式可在不同的磁片平行执行不同的读取命令,大幅提高磁片阵列的读取性能,但写入数据时,因受限与校验磁盘,同一时间只能作一次,启动所有磁盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入,及时如此,小型档案的写入仍然比RAID3快,因为校验计算简单而非作位(bit level)计算,(RAID3为bit级操作),但校验磁盘形成RAID4的瓶颈,降低了性能,有RAID5,所以RAID4很少使用.
2.3.6 RAID5
RAID5避免了RAID4的瓶颈,即不采用校验磁盘,而将校验数据以循环的方式放在每一个磁盘中,如图所示,此片阵列的第一个磁盘分段为校验值,第二个磁片至后一个磁盘再折回第一个磁盘的分段是数据,然后第二个磁片的分段是校验值,从第三个再折回第二个磁盘的分段是数据,一次类推,直到数据放完为止,图中的第一个校验值由A0--A4, B0--B4计算,第二个校验值由B3,B4, ..., C4,D0计算出来,即校验值由各磁盘的同一位置的分段数据计算出来,这种方式大幅增加了小档案的存储性能,不但可同时读取,甚至可同时执行多个写入的动作.
RAID5的控制比较复杂,尤其是利用硬件对磁片阵列的控制,这种方式的应用比其他RAID level要掌握更多的事情,有更多的输入输出要求,既要速度快,又要处理数据,计算校验值,做错误校正,所以价格较高,应用最好是OLTP,至于PC不见得有最佳的性能.
3 小结
机械硬盘中,电路板上的主控芯片负责与芯片组之间的通信并控制硬盘内部的运转,盘片使用磁性材料做成的,固定在硬盘中部的马达上旋转,磁头沿着磁片的径向移动,剃头读写数据时会在磁片上方移动,移动过程也称硬盘寻道过程.
磁盘阵列:提高HDD性能的方法之一是组建磁盘阵列,磁盘阵列有多种类型,其中有些是为保证数据安全的,作为自动备份而组建的,通常用于提高性能的磁盘阵列为RAID0,使用4块硬盘组件RAID0之后,当数据从芯片组传输给硬盘,这个数据会被自动划分为4个部分,每个硬盘个存储一部分,理想状态下,RAID0的写入速度翻倍;读取数据,从各个硬盘各自拿出对应存储的数据,理想状态下读取速度也会翻倍.但是,RAID0对于机械硬盘随机读写并没有明显作用,然而,RAID0原理会在SSD中大放异彩.
廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks, RAID),RAID level使用不同的场景.
【参考文献】
1 https://wenku.baidu.com/view/26a311ccfc0a79563c1ec5da50e2524de518d089
2 https://wenku.baidu.com/view/6635c6f387c24028905fc37c
以上是关于机械硬盘的主要内容,如果未能解决你的问题,请参考以下文章