磁盘相关基础知识

1.一些概念

磁头 Head

磁面 Side

一个磁面对应一个磁头,即磁面数量等于磁头数量

磁道 Track

一个盘面上的相同半径的圆形区域

柱面 Cylinder

所以盘面上相同半径的磁道组成的区域

扇区 Sector

一个磁道上的一个弧段,是磁盘的最小存储单位

簇(块)

Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。这是一个操作系统抽象出来的概念,由多个连续的扇区组成

磁盘容量的计算:
(可以参考:https://blog.csdn.net/Veini/article/details/5069329

Cylinder柱面数表示硬盘每面盘面上有几条磁道,编号是从0开始,最大为1023,表示有1024个磁道。
Head磁头数表示磁盘共有几个磁头,也就是几面盘面,编号从0开始,最大为255,表示有256个磁头。
Sector/Track扇区数表示每条磁道上有几个扇区,编号从1开始,最大为63,表示63个扇区,每个扇区为512字节,他是磁盘的最小存储单位。
1024个柱面 x 63个扇区 x 256个磁头 x 512byte = 8455716864byte(即8.4G)

磁盘图解http://blog.51cto.com/ncwcl/200395

2.关与磁盘块

a.从物理上看读写的基本单位是扇区。
b.从操作系统层面来看读写的基本单位是块。
c.为什么要有块的概念?对于操作系统来说,扇区的大小比较小,操作系统将多个扇区组成一个块能方便操作系统读取与管理。

通常情况下:
块大小=扇区大小*2的N次方

可以参考:https://www.i3geek.com/archives/1275

3.关于磁盘读写

磁盘IO时的过程包括:
- 第一步,首先是磁头径向移动来寻找数据所在的磁道。这部分时间叫寻道时间。
- 第二步,找到目标磁道后通过盘面旋转,将目标扇区移动到磁头的正下方。
- 第三步,向目标扇区读取或者写入数据。到此为止,一次磁盘IO。

所以,单次磁盘IO时间 = 寻道时间 + 旋转延迟 + 存取时间。

  • 对于旋转延时,现在主流服务器上经常使用的是1W转/分钟的磁盘,每旋转一周所需的时间为60*1000/10000=6ms,故其旋转延迟为(0-6ms)。
  • 对于存取时间,一般耗时较短,为零点几ms。
  • 对于寻道时间,现代磁盘大概在3-15ms,其中寻道时间大小主要受磁头当前所在位置和目标磁道所在位置相对距离的影响。

可以参考:http://www.cnblogs.com/sammyliu/p/4521315.html

4.关于磁盘分区

主引导分区(Master Boot Recorder,MBR)

主分区

扩展分区

逻辑分区

a.MBP共512字节,其中保存着:引导代码(bootloader,446字节)+磁盘分区表(Disk Partion Table,DPT,64字节)+MagicNum(2字节)
b.启动一个磁盘的时候总是先从MBP开始,然后从中获取磁盘中其他分区信息,这些分区信息就保存在DPT中,然而由于每个分区需要16字节记录,因此,正常情况下DPT中只能保存4个分区信息:
P + P + P + P

c.如果想划分超过4个分区怎么办?
这时候扩展分区就派上用处了:
P + P + P + E

在一块磁盘中,扩展分区只能有一个

由于MBR仅能保存4个分区的数据信息,如果超过4个,系统允许在额外的硬盘空间存放另一份磁盘分区信息,这就是扩展分区. 若将硬盘分成3P+E,则E实际上是告诉系统,磁盘分区表在另外的那份分区表,即扩展分区其实是指向正确的额外分区表.本身扩展分区不能直接使用,还需要额外将扩展分区分成逻辑分区才能使用,因此,用户通过扩展分区就可以使用5个以上的分区了.

可以参考:https://my.oschina.net/aiguozhe/blog/36632

写在最后:本篇文章只是笔记,时刻提醒自己牢记基础。相关链接均以贴出。

猜你喜欢

转载自blog.csdn.net/zhaominpro/article/details/81386199