磁盘分区管理之磁盘基础知识1

1、磁盘基础知识

blob.png

blob.png

1.1 磁头

磁头是利用气流漂浮在盘片上,并没有接触到盘片,因而可以在各轨间高速来回移动,但如果磁头距离盘片太高,读取的信号就会太弱;太低又会磨到盘片表面,所以盘片表面必须相当光滑平整,任何异物和尘埃均会使得磁头摩擦到表面而造成数据永久性损坏。

硬盘读写磁头为了能在磁盘表面高速来回移动读取数据,则需漂浮在磁盘表面上,但是不能接触,接触就会造成划伤。实现这种技术,完全是靠磁盘旋转时,在盘片上空产生气流,利用空气动力学使磁头悬浮于磁片上空。

磁盘每个时刻只允许一个磁头来读写数据,也就是说,不管盘体内盘片和磁头再多,也不可能提高硬盘的吞吐量和IO性能,只能提高容量。

1.2 盘面

硬盘的每一个盘片都有两个盘面,即上、下盘面;每个盘面都能利用,都可以存储数据。

盘面号从上到下的顺序从0开始依次编号。

每个盘片的每个面都有一个对应的读写磁头,磁头起初停在盘片的最内圈,这是一个特殊区域,它不存放任何数据,称为启停区或着陆区,启停区外就是数据区。

在最外圈,离主轴最远的地方是0磁道(track),硬盘数据的存放就是从最外圈开始的。

0磁道存放着用于操作系统启动所必需的程序代码,因为PC启动后BIOS程序在加载任何操作系统或其它程序时,总是默认从磁盘的0磁道读取程序代码来运行。

1.3 磁道

磁盘在格式化时被划分为许多同心圆,这些同心圆轨迹叫做磁道。

磁道从最外圈向内圈从0开始顺序编号。

这些同心圆磁道不是连续记录数据,而是被划分成一段段的圆弧。

在同样的转速下,外圈在相同的时间段里,划过的圆弧长度要比内圈划过的圆弧长度大,因此外圈数据的读写要比内圈块。

每段圆弧叫做一个扇区,扇区从1开始编号,每个扇区中的数据作为一个单元同时读出或写入,是读写的最小单位;不可能发生读写半个或者四分之一个这种小于一个扇区的情况,因为磁头只能定位到某个扇区的开头或者结尾,而不能在扇区内部定位。所以,一个扇区内部的数据是连续流式记录的。

划分磁道和扇区的过程,叫做低级格式化,通常在硬盘出厂时就已经格式化完毕了;相对于低级格式化来说,高级格式化指的对磁盘上所存储的数据进行文件系统的标记,而不是对扇区和磁道进行磁化标记。

1.4 柱面

所有盘面上的同一编号的磁道,在竖直方向上构成一个圆柱,通常称作柱面。

每个圆柱上的磁头由上而下从0开始编号。

数据的读写按柱面进行,即磁头读写数据时首先在同一柱面内从0磁头开始进行操作,依次向下在同一柱面的不同盘面(磁头)上进行操作;只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换,即寻道。

电子切换相当快,比使用机械将磁头向邻近磁道移动要快得多,所以数据的读写按柱面进行,而不按盘面进行。也就是说,一个磁道写满数据后,就在同一柱面的下一个盘面来写。一个柱面写满后,才移到下一个柱面开始写数据,这样可以减少寻道的频繁度。

1.5 扇区

将每个环形磁道等距离切割,形成等长度的圆弧,每个圆弧就是一个扇区。 

划分扇区的目的是为了使数据存储更加条理化,就像一个大仓库要划分更多的房间一样。每个扇区可以存放512B的数据和一些其它数据。

一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段。

扇区头标包括组成扇区三级地址的三个数字:

(1) 扇区所在的柱面(磁道)

(2) 磁头编号

(3) 扇区在磁道上的位置,即扇区号

柱面(Cylinder)、磁头(Head)和扇区(Sector)三者简称CHS,所以扇区的地址又称为CHS地址。

磁头通过读取当前扇区的头标中的CHS地址,就可以知道当前是处于盘片上的哪个位置,比如内圈还是外圈,哪个磁头正在读写(同一时刻只能有一个磁头在读写)等。

CHS编址方式在早期的小容量硬盘中非常流行,但是目前的大容量硬盘的设计和低级格式化方式已经有所变化,所以CHS编址方式已不再使用,而转为LBA编址方式。LBA编址方式不再划分柱面和磁头号,这些数据由硬盘自身保留,而硬盘对外提供的地址全部为线性的地址,即LBA地址。

所谓线性,指的是把磁盘想象成只有一个磁道,这个磁道是无限长的直线,扇区为这条直线上的等长线段,从1开始编号,直到无限远。

1.6 基于CHS编址方式的磁盘最大容量

柱面数cylinders表示硬盘盘片每一面上有多少条磁道,最大为1023(用10个二进制位存储)。

磁头数heads表示硬盘总共有几个磁头,也就是几个盘面,最大为255(用8个二进制位存储)。

扇区数sectors表示每一条磁道上有多少扇区,最大为63(用6个二进制位存储)。

每个扇区一般是512B,目前很多大型磁盘阵列所使用的硬盘,由于阵列控制器需要做一些诸如校验信息之类的特殊存储,这些磁盘都被格式化为每扇区520B。

如果按照每扇区512B来计算,磁盘最大容量为1023*255*63*512B/(1024*1024)=8024MB,这就是所谓8GB容量限制的原因。

磁盘驱动器内怎样放下255个磁头呢?这是不可能的。目前的硬盘一般可以有1盘片、2盘片或者4盘片,这样就对应着2、4磁头或者8磁头。那么这样算来,硬盘实际容量一定小于8GB了?显然不是这样的,所谓255个磁头,这只是一个逻辑上的说法。而每条磁道上真的最多只有64个扇区么?当然也不是,一条磁道上实际的扇区数远大于64,这样就分摊了磁头数实际少于255个所产生的“容量减小”。CHS编址方式沿袭了老的传统,不愿意去作修改导致的;而这种沿袭达到了极限之后,最终导致LBA编址方式替代了CHS编址方式。

头标中还包括一个字段,其中有显示扇区是否能可靠存储数据,或者是已发现某个故障因而不宜使用的标记。有些硬盘控制器在扇区头标中还记录有指示字,可在原扇区出错时指引磁头跳转到替换扇区或磁道。最后扇区头标以循环冗余校验CRC值作为结束,以供控制器检验扇区头标的读出情况,确保准确无误。

系统在磁盘上写入信息时,写满一个磁道后会转到同一柱面的下一个磁头,当柱面写满时,再转向下一柱面。从同一盘面的一个磁道转到另一个磁道,也就是从一个柱面转到下一个柱面,这个动作叫做换道。

本文参考引用了<<大话存储Ⅱ—存储系统架构与底层原理极限剖析>>

原创文章,作者:yangsh,如若转载,请注明出处:http://www.178linux.com/44427

赞 (3)
yangshyangsh
上一篇 2016-09-07 18:49
下一篇 2016-09-07 18:56

相关推荐

  • 学会在命令行中获取帮助

    在命令行中获取帮助是学习Linux必须get的一项技能,学会之后受益多多。  Linux中的命令有内部命令和外部命令之分,通常使用 type 命令来区分 除此之外还可以使用 enable 命令来查看内部命令 enable命令后的许多option可以对这些内部命令了解更多,比如: 想要知道内部命令有多少个 enable -a |wc -l 禁用某个内…

    2017-07-15
  • PXE自动化安装系统服务

    PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或M…

    Linux干货 2016-11-07
  • N25-week7 作业

    1. 创建一个10G的分区,并格式为ext4文件系统  (1) 要求block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;  (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 #创建文件系统,首先使用fdisk对磁盘进行分区操作 [root@loca…

    Linux干货 2017-02-22
  • RPM程序包管理

           RPM的全名“RedHat Package Manager”,当初这个是RedHad公司开发的一款程序包管理套件,随着RPM的不断完善,RPM逐渐成为众多linux发行版程序包管理器的代名词,那什么是RPM,为什么会用到RPM这个程序包管理工具那,接下来我一一揭晓。  &nb…

    Linux干货 2015-11-04
  • N25-第六周作业

    第6周作业 — 请详细总结vim编辑器的使用并完成以下练习题 vim是模式化的全屏文本编辑器。vim分为三种模式:分别是编辑模式;输入模式;末行模式; 打开文件的方式有:vim +# FILE打开文件FILE并把光标定位到#行的行首;vim +/PATTERN FILE打开文件并让光标处于第一个被PATTERN匹配到的行的行首。(支持正则表达式)…

    Linux干货 2017-02-22
  • 系统基础之vim工具详解

    vim工具详解 作为运维人员,每天要面对大量的文件操作,如何使用一个功能强大,操作快捷的文本编辑器,就至关重要.那天,今天给大家详细的介绍下vim这款编辑器,完全符合我们的要求,下面让我们一起来看看吧! 概论:  文本编辑器:  文本:纯文本信息,   ASCII text:  纯粹的,不加修饰的文字  文本…

    Linux干货 2016-08-10