磁盘分区管理之磁盘基础知识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
下一篇 2016-09-07

相关推荐

  • 第十八周

    “1、为LNMP架构添加memcached支持,并完成对缓存效果的测试报告; 架构(3台centos7) nginx与php 192.168.1.108    nginx,php-fpm,php-mysql php-pecl-memcache mysql         192…

    2017-08-21
  • CentOS7编译安装LAMP—php-fpm

    inux的环境是: [root@localhost ~]# lsb_release -a LSB Version:     :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description:     CentOS…

    Linux干货 2016-12-21
  • N25期第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 cp -r /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2.编辑/etc/group文件,添加组hadoop echo “hadoop:x:1080” >> /…

    Linux干货 2016-12-26
  • linux使用yum对程序包管理相关知识

     yum客户端:          配置文件:              /etc/yum.conf: 为所有仓库提供公共配置              /et…

    Linux干货 2017-01-02
  • 11. vim备查の小手札

    三种模式 命令模式(默认)      command mode:移动光标,剪切/粘贴文本 插入(编辑)模式         edit mode:修改文本 扩展命令模式 extend…

    Linux干货 2016-08-18
  • 20171121 grep 正则表达式

    diff与patch ,grep 正则表达式

    2017-11-21