磁盘分区也是隐含了技术技巧的

烬余超类
• 阅读 1679

在前文《磁盘开篇:扒开机械硬盘坚硬的外衣!》中,我们了解了机械硬盘的物理构造,是由磁盘面,磁道、扇区等更小的单位组成的,如下图:

磁盘分区也是隐含了技术技巧的

分区是操作系统对磁盘进行管理的第一步,这也是我们任何一个计算机使用者都非常熟悉的概念。例如Windows下的C、D、E、F盘。那么请思考一下,如果你是操作系统的设计者,让你把整块磁盘分成C、D等分区,你会怎么分呢?

为了方便讨论,我们这里你要分的硬盘是有50个盘面,3000个柱面。我们给出两种方案

  • 方案一: 50个盘面,C盘是0-10盘面, D盘是10-20个盘面,……
  • 方案二:3263个柱面,C盘0-1000个柱面,D盘1001-20001个柱面,……

接下来我们来讨论下那种方案更优秀,这得从磁盘的读写延时角度说起。读写原理说起来也简单,就是磁头要找到指定的磁道,指定的扇区,进而把数据读取出来或者写入进去的过程。这个过程分成如下三步:

  • 第一步,首先是磁头径向移动来寻找数据所在的磁道。这部分时间叫寻道时间。寻道时间,现代磁盘大概在3-15ms,其中寻道时间大小主要受磁头当前所在位置和目标磁道所在位置相对距离的影响
  • 第二步,找到目标磁道后通过盘面旋转,将目标扇区移动到磁头的正下方,这部分时间叫旋转延迟。现在主流服务器上经常使用的是1W转/分钟的磁盘,每旋转一周所需的时间为60*1000/10000=6ms,故其旋转延迟为(0-6ms)
  • 第三步,向目标扇区读取或者写入数据,这部分时间叫存取时间。这个是电磁操作,所以一般耗时较短,为零点几ms。

到此为止,单次磁盘IO时间 = 寻道时间 + 旋转延迟 + 存取时间

分区上采用哪一种方案,最主要看的是那种方式性能更快。在磁盘分区的使用中,存在一个基本事实,那就是同一分区下的数据经常会一起读取。两种方案的对于旋转延迟、和存取时间上表现的性能是一样的,主要区别是在寻道时间的表现上:

假如采用第一种,那么这样磁头就需要在3000多个磁道间不停地跳来跳去,这样磁盘的寻道时间就降不下来。而对于方案二,假如对于磁盘C,只需要在磁头在1-1000个磁道间移动就可以了,大大降低了寻道时间。

所以所有的操作系统采用的都是方案二,没有用方案一的。如果你在Linux下使用过fdisk进行过分区的话可以注意到以下信息。

磁盘分区也是隐含了技术技巧的

磁盘分区也是隐含了技术技巧的

分区的过程就是你输入起始柱面号和截至柱面号的过程。不过在实际中,分区并不能从0号柱面开始的,因为磁盘的第一个磁道对应的柱面会被用来安装引导加载程序以及磁盘分区表。

所以,操作系统通过按磁道对应的柱面划分分区,来降低磁盘IO所花费的的寻道时间 ,最终提高磁盘的读写性能


磁盘分区也是隐含了技术技巧的


开发内功修炼之硬盘篇专辑:


我的公众号是「开发内功修炼」,在这里我不是单纯介绍技术理论,也不只介绍实践经验。而是把理论与实践结合起来,用实践加深对理论的理解、用理论提高你的技术实践能力。欢迎你来关注我的公众号,也请分享给你的好友~~~

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
kelly kelly
4年前
磁盘读写与数据库的关系
一磁盘物理结构(1)盘片:硬盘的盘体由多个盘片叠在一起构成。(https://imghelloworld.osscnbeijing.aliyuncs.com/ca8257beee4683c9331279708f8136d1.
Stella981 Stella981
4年前
LVM的创建,修改大小,删除以及彻底卸载的操作步骤
首先解释一下几个关键词pv:physicalvolume物理卷,就是用物理磁盘组成的卷,要在物理磁盘上创建。vg:volumegroup卷组,就是物理卷组成的卷组合,要在物理卷基础上创建。lv:logicalvolume逻辑卷,可以理解为逻辑可动态分配的磁盘空间,要在卷组上创建。所以lvm的创建顺序就是,物理磁盘分区(也可以不
Stella981 Stella981
4年前
Linux磁盘、Ext文件系统、目录树
硬盘组成与读写硬盘,拆过机的同志应该知道就是一块小刚体嘛。拆过主机硬盘和笔记本硬盘也应该知道不同的硬盘的接口是不一样的,主机的硬盘一般会有一条线连接到主板而笔记本的硬盘直接有插槽。这个概念只是为了引起硬盘有不同的种类存在,当我们在linux系统中输出命令fdiskl的时候,大致会有设备名称等信息。其中有可能有/dev
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
HDD机械硬盘的性能
HDD机械硬盘的性能性能指标:IOPS1000/(寻道时间AverageSeekTime旋转延迟AverageLatency)寻道时间(AverageSeekTime)是指将读写磁头(DiskHead)移动至正确的磁道上所需要的时间。从公式可以得出
Stella981 Stella981
4年前
OpenStack块存储nova
对swift对象存储的内部原理和相关技术可以查找对象存储、一致性哈希等文章,新浪有几篇技术分享介绍的很好,推荐看一看。一、相关概念LVM存储常用术语物理存储介质(PhysicalMedia):物理存储设备,如磁盘或者磁盘上的分区,是存储系统的最底层实体。物理卷(PV,PhysicalVolume):硬盘分区或从逻
Wesley13 Wesley13
4年前
Mysql优化理论知识
参考文章http://blog.51cto.com/lizhenliang/2095526(1)硬件优化如果有条件一定要SSD固态硬盘代替SAS机械硬盘,将RAID级别调整为RAID10,相对于RAID1和RAID5有更好的读写性能,毕竟数据库的压力主要来自磁盘I/O方面。Linux内核有一个特性,会从物理内存中划分
Stella981 Stella981
4年前
Linux 磁盘管理之磁盘理论篇
Linux磁盘管理之磁盘理论篇磁盘简介作用:用来存放数据(二进制方式来管理数据)分类机械硬盘固态硬盘机械硬盘组成盘片:上面布满磁性颗粒,保存写入数据主轴:带动盘片转动,转到磁头的下方
Stella981 Stella981
4年前
Linux 下的两种分层存储方案
背景介绍随着固态存储技术(SSD),SAS技术的不断进步和普及,存储介质的种类更加多样,采用不同存储介质和接口的存储设备的性能出现了很大差异。SSD相较于传统的机械硬盘,由于没有磁盘的机械转动,寻址速度大大提高,尤其在随机读写较多的应用环境下,性能会大大提升,但这些高性能存储设备的单位存储价格相对于传统的磁带和SATA硬盘也高出很多,
Stella981 Stella981
4年前
Linux系统开机启动流程(简述)
1)开机自检,加载BIOS信息    CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等2)MBR引导    硬盘的0柱面0磁道1扇区被称为MBR(MasterBootReord)主引导记录,大小为512字节,里面存放预启动信息、分区表信息及分区标志等;分为两部分:第