机械磁盘结构与磁盘存储原理学习



格式有问题请点击原笔记地址:https://note.youdao.com/s/Kx4AvJOl

学习磁盘接口类型点这里 https://note.youdao.com/s/YT1E6Pdg

磁盘整体结构

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/4CB7ABA7D7C9473A803431A4478206D4/63370

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/94180C722D534973AE91352873D20CEB/63364

下图有3个盘面,6个磁头(一个盘面正反面各一个磁头)

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/3BB63151FA3F48E3895E261864623824/63367

盘片组成示意图,最外层是0磁道,往里1磁道,2磁道……

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/F9AF6B70F9864C4CBF45B1349F590799/63372

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/15DFA1F551684FA894F76B06DFB24CB7/63376

传统硬盘的扇区大小为 512 字节,并且在每个扇区与扇区之间并不是直接相连,在它们之间还存在着一定的空间,分为空隙(gap,用来分割扇区),同步(sync,表示扇区的开始处,并提供计时对齐),地址标志(Address Mark,识别扇区号和位置的数据。还可提供扇区本身的状态。),以及用户数据修复和还原的ECC区域。

下图就是打开的512扇区磁盘的结构图。

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/C8C44E473C92441BA70837F96B262CB4/63381

可想而知,这种结构的缺点,随着单盘容量的增加,是不是ECC校验的效率变低了?并且扇区之间存在如此多的空间,浪费了很多硬盘空间。

512字节的扇区需要另外40字节作为ECC校验空间,而4k扇区(8个512字节扇区)只需要100个字节,所以,同样提供4kbyte扇区空间,使用高级格式化磁盘能节约出220byte的储存空间,这样就能令ECC校验完成更多空间的检验纠错,提高ECC校验的效率。

为了解决上述等的问题, 大佬们就计划推出4K扇区大小的磁盘。

也就是为什么提高硬盘读写效率的时候要4K对齐,4K就是一个物理扇区的大小。比如一个4096字节的逻辑块,你给分配到两个物理扇区上,在物理层面上是要完成两个扇区的读写的,这就降低效率啦。

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/6DCA1C5D90844226B884C94A516945BE/63462

磁盘的读写是按照柱面来进行的,首先磁头找到对应的磁道,第二个是盘片转到对应的扇区。

按照柱面是因为,磁头在磁头臂上移动属于机械运动,而磁头的切换,如第1个磁头切换到第2个磁头,这个磁头的切换是属于电子信号的传输,要比机械运动快很多,所以应该尽量减少磁头的移动,更多的切换磁头。先写满第一个磁头所在的磁道,然后切换磁头,写第二个磁头所在的磁道。。。。。依次把整个柱面读写完。

寻道时间:

磁头从开始移动到移动到数据所在磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘平均寻道时间一般在3-15ms,一般都在10ms左右

旋转延迟:

从磁盘寻道结束开始,直到磁头旋转到I/O请求所请求的起始数据块位置止,这之间的时间间隔称为旋转延迟,旋转延迟取决于磁盘转速

https://note.youdao.com/yws/public/resource/a74ebc5b743f14c8cad39ccdfbf8ae8d/xmlnote/54E713B8DA214BB3AF603E77BFD9D47D/63453

首先,读写头沿径向移动,移到要读取的扇区所在磁道的上方,这段时间称为寻道时间(seek time)。

然后,通过盘片的旋转,使得要读取的扇区转到读写头的下方,这段时间称为旋转延迟时间(rotational latency time)。

磁盘转速:

磁盘一分钟能完成多少次旋转,早起是5400rpm,后来7200rpm,现在有些磁盘已经达到10000rpm、15000rpm,当然转速越高对环境要求也越高,磁盘内部是真空结构。

衡量磁盘性能的关键指标主要有两个:

1、IOPS(input/output per second):

每秒的输入输出量,即指每秒内系统能处理的I/O请求数量。随机读写频繁的应用,如小文件存储等,关注随机读写性能,IOPS是关键衡量指标。

可以推算出磁盘的IOPS = 1000ms / (Tseek + Trotation + Transfer),如果忽略数据传输时间,理论上可以计算出随机读写最大的IOPS。

常见磁盘的随机读写最大IOPS为:

  • 7200rpm的磁盘 IOPS = 76 IOPS

  • 10000rpm的磁盘IOPS = 111 IOPS

  • 15000rpm的磁盘IOPS = 166 IOPS

虽然15000rpm的磁盘计算出的理论最大IOPS仅为166,但在实际运行环境中,实际磁盘的IOPS往往能够突破200甚至更高。这其实就是在系统调用过程中,操作系统进行了一系列的优化。

PS:固态硬盘(三星830系列)随机读取最大8万IOPS,随机写最大3万IOPS,

美高森美的新一代Flashtec NVMe3016主控硬盘了,它将支持PCIe 4.0 x8通道,支持NVMe 1.3+规范,SSD硬盘的随机读写性能将达到200万IOPS

2、吞吐量(Throughput)

指单位时间内可以成功传输的数据数量。顺序读写频繁的应用,如视频点播,关注连续读写性能、数据吞吐量是关键衡量指标。它主要取决于磁盘阵列的架构,通道的大小以及磁盘的个数。不同的磁盘阵列存在不同的架构,但他们都有自己的内部带宽,一般情况下,内部带宽都设计足够充足,不会存在瓶颈。磁盘阵列与服务器之间的数据通道对吞吐量影响很大,比如一个2Gbps的光纤通道,其所能支撑的最大流量仅为250MB/s。最后,当前面的瓶颈都不再存在时,硬盘越多的情况下吞吐量越大。

小文件的查看关键(监控)指标是IOPS,大文件的关键(监控)指标是吞吐量

后续学习下 操作系统是如何操作硬盘的


文章作者: Bob
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bob !
  目录