磁盘分区管理之磁盘基础知识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

相关推荐

  • Nginx/LVS/HAProxy负载均衡软件优缺点总结

    Nginx/LVS/HAProxy简单介绍:   Nginx:专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。 LVS:使用Linux内核集群实现一个高性能、高可用的负载均衡服务器,具有很好的可伸缩性(Scalability)、可靠性(Rel…

    2017-06-24
  • rsyslog基于mysql的日志集中存储,及loganalyzer日志分析工具的web配置

    Rsyslog是Linux系统自带的一款强大的日志系统,在业务量不是很大的情况下,能够满足大部分客户的日志分类搜集功能,是广大运维同事进行系统监控、分析不可或缺的利器。而在运维自动化高速发展的今天,如果我们还要“人工”智能的去每一个服务器上查看系统日志就显得太LOW了,并且,对我们来说也是一个不小的负担。 基于此,我们就简单的来介绍一下,rsyslog结合m…

    系统运维 2017-02-05
  • ☞实时数据同步方案{ rsync; inotify; }

    实时数据同步方案{ rsync; inotify; } rsync 传输数据 安装 rsyncd 服务 CentOS 6 CentOS 7 配置 rsyncd 服务 配置 rsync 手动同步示例     启动 rsyncd 服务 CentOS 6 CentOS 7 rsync 客户端命令 rsync 数据传输功能 基…

    Linux干货 2016-10-29
  • 马哥教育网络第21期-第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 1.post加电自检,bios检测基础硬件设备 2.boot sequence:按次序查找各引导设备,第一个有引导程序的设备即为本次启动用到设备;读取启动设备MBR中 的bootloader,启动GRUB,选择内核加载到内存中。 3.kernel:自身初始化:探测可识别到的…

    Linux干货 2016-11-14
  • rmp 程 序 包 管 理 介 绍-20160819

    rmp 程 序 包 管 理 介 绍 §·学习大纲 ※包管理器 ※rmp常用命令介绍 *安装 *升级: *卸载: *查询: *校验: *数据库: ※rmp使用实例介绍 ※包管理器 ◎二进制应用程序的组成部分: 二进制文件、库文件、配置文件、帮助文件 ◎程序包管理器: debian:deb文件, dpkg包管理器 redhat: rpm文件, rpm包管理器 r…

    Linux干货 2016-08-21
  • N25第二周作业

    第二周作业 一、Linux上的文件管理类命令有哪些,其常用的使用方法以及相关实例演示 演示用结构  [root@centos01 yanshi]# tree -a /tmp/yanshi/   /tmp/yanshi/ ├── a │   └── 1…

    Linux干货 2016-12-14