为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

硬盘知识_硬盘逻辑结构_硬盘MBR详解

2013-02-15 32页 pdf 478KB 27阅读

用户头像

is_911566

暂无简介

举报
硬盘知识_硬盘逻辑结构_硬盘MBR详解 硬盘知识,硬盘逻辑结构 你新买来的硬盘是不能直接使用的,必须对它进行分区并进行格式化的才能储存数据。 硬盘分区是操作系统安装过程中经常谈到的话题。对于一些简单的应用,硬盘分区并不 成为一种障碍,但对于一些复杂的应用,就不能不深入理解硬盘分区机制的某些细节。 硬盘的崩溃经常会遇见,特别是病毒肆虐的时代,关于引导分区的恢复与备份的技巧, 你一定要掌握。在使用电脑时,你往往会使用几个操作系统。如何在硬盘中安装多个操 作系统?如果你需要了解这方面的知识或是要解决上述问题,这期的“硬盘分区”专题会 告诉你答案! ...
硬盘知识_硬盘逻辑结构_硬盘MBR详解
硬盘知识,硬盘逻辑结构 你新买来的硬盘是不能直接使用的,必须对它进行分区并进行格式化的才能储存数据。 硬盘分区是操作系统安装过程中经常谈到的话题。对于一些简单的应用,硬盘分区并不 成为一种障碍,但对于一些复杂的应用,就不能不深入理解硬盘分区机制的某些细节。 硬盘的崩溃经常会遇见,特别是病毒肆虐的时代,关于引导分区的恢复与备份的技巧, 你一定要掌握。在使用电脑时,你往往会使用几个操作系统。如何在硬盘中安装多个操 作系统?如果你需要了解这方面的知识或是要解决上述问题,这期的“硬盘分区”专题会 告诉你! 硬盘是现在计算机上最常用的存储器之一。我们都知道,计算机之所以神奇,是因为它 具有高速处理数据的能力。而这些数据都以文件的形式存储在硬盘里。不过,计算 机可不像人那么聪明。在读取相应的文件时,你必须要给出相应的规则。这就是分区概 念。分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬 盘的各项物理参数,指定了硬盘主引导记录(即 Master Boot Record,一般简称为 MBR) 和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息 则是通过以后的高级格式化,即 Format 命令来实现。面、磁道和扇区硬盘分区后,将 会被划分为面(Side)、磁道(Track)和扇区(Sector)。需要注意的是,这些只是个虚 拟的概念,并不是真正在硬盘上划轨道。先从面说起,硬盘一般是由一片或几片圆形薄 膜叠加而成。我们所说,每个圆形薄膜都有两个“面”,这两个面都是用来存储数据的。 按照面的多少,依次称为 0 面、1 面、2 面……由于每个面都专有一个读写磁头,也常 用 0 头(head)、1 头……称之。按照硬盘容量和规格的不同,硬盘面数(或头数)也不一定 相同,少的只有 2 面,多的可达数十面。各面上磁道号相同的磁道合起来,称为一个柱 面(Cylinder)。 上面我们提到了磁道的概念。那么究竟何为磁道呢?由于磁盘是旋转的,则连续写入的 数据是排列在一个圆周上的。我们称这样的圆周为一个磁道。如果读写磁头沿着圆形薄 膜的半径方向移动一段距离,以后写入的数据又排列在另外一个磁道上。根据硬盘规格 的不同,磁道数可以从几百到数千不等;一个磁道上可以容纳数 KB 的数据,而主机读 写时往往并不需要一次读写那么多,于是,磁道又被划分成若干段,每段称为一个扇区。 一个扇区一般存放 512 字节的数据。扇区也需要编号,同一磁道中的扇区,分别称为 1 扇区,2 扇区…… 计算机对硬盘的读写,处于效率的考虑,是以扇区为基本单位的。即使计算机只需要硬 盘上存储的某个字节,也必须一次把这个字节所在的扇区中的 512 字节全部读入内存, 再使用所需的那个字节。不过,在上文中我们也提到,硬盘上面、磁道、扇区的划分表 面上是看不到任何痕迹的,虽然磁头可以根据某个磁道的应有半径来对准这个磁道,但 怎样才能在首尾相连的一圈扇区中找出所需要的某一扇区呢?原来,每个扇区并不仅仅 由 512 个字节组成的,在这些由计算机存取的数据的前、后两端,都另有一些特定的数 据,这些数据构成了扇区的界限标志,标志中含有扇区的编号和其他信息。计算机就凭 借着这些标志来识别扇区。硬盘的数据结构在上文中,我们谈了数据在硬盘中的存 储的一般原理。为了能更深入地了解硬盘,我们还必须对硬盘的数据结构有个简单的了 解。硬盘上的数据按照其不同的特点和作用大致可分为 5 部分:MBR 区、DBR 区、FAT 区、DIR 区和 DATA 区。 我们来分别介绍一下: 1.MBR 区MBR(Main Boot Record 主引导记录区)位于整个硬盘的 0 磁道 0 柱面 1 扇区。不过,在总共 512 字节的主引导扇区中,MBR 只占用了其中的 446 个字节, 另外的 64 个字节交给了 DPT(Disk Partition Table 硬盘分区表),最后两个字节“55, AA”是分区的结束标志。这个整体构成了硬盘的主引导扇区。 主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作 用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的 操作系统,并将控制权交给启动程序。MBR 是由分区程序(如 Fdisk.exe)所产生的, 它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而实现多系统共存。 下面,我们以一个实例让大家更直观地来了解主引导记录: 例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00在这里我们可以看到,最 前面的“80”是一个分区的激活标志,表示系统可引导;“01 01 00”表示分区开始的磁头 号为 01,开始的扇区号为 01,开始的柱面号为 00;“0B”表示分区的系统类型是 FAT32, 其他比较常用的有 04(FAT16)、07(NTFS);“FE BF FC”表示分区结束的磁头号为 254, 分区结束的扇区号为 63、分区结束的柱面号为 764;“3F 00 00 00”表示首扇区的相对 扇区号为 63;“7E 86 BB 00”表示总扇区数为 12289622。 2.DBR 区DBR(Dos Boot Record)是操作系统引导记录区的意思。它通常位于硬 盘的 0 磁道 1 柱面 1 扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程 序和一个被称为 BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任 务是当 MBR 将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的 引导文件(以 DOS 为例,即是 Io.sys 和 Msdos.sys)。如果确定存在,就把它读入内 存,并把控制权 交给该文件。BPB 参数块记录着本分区的起始扇区、结束扇区、文件 存储格式、硬盘介质描述符、根目录大小、FAT 个数,分配单元的大小等重要参数。DBR 是由高级格式化程序(即 Format.com 等程序)所产生的。 3.FAT 区在 DBR 之后的是我们比较熟悉的 FAT(File Allocation Table 文件分配表) 区。在解释文件分配表的概念之前,我们先来谈谈簇(Cluster)的概念。文件占用磁盘 空间时,基本单位不是字节而是簇。一般情况下,软盘每簇是 1 个扇区,硬盘每簇的扇 区数与硬盘的总容量大小有关,可能是 4、8、16、32、64……同一个文件的数据并 不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样 存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即 FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。为了 实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已 经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本 簇无后继簇。这些都是由 FAT 表来保存的,表中有很多表项,每项记录一个簇的信息。 由于 FAT 对于文件管理的重要性,所以 FAT 有一个备份,即在原 FAT 的后面再建一个 同样的 FAT。初形成的 FAT 中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么 格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用 这个簇了。FAT 的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适 应,因为其中需要存放簇号。FAT 的格式有多种,最为常见的是 FAT16 和 FAT32。 4.DIR 区DIR(Directory)是根目录区,紧接着第二 FAT 表(即备份的 FAT 表) 之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时, 操作系统根据 DIR 中的起始单元,结合 FAT 表就可以知道文件在硬盘中的具体位置和 大小了。 5.数据(DATA)区数据区是真正意义上的数据存储的地方,位于 DIR 区之后,占据 硬盘上的大部分数据空间。 FAT 文件系统原理 一、硬盘的物理结构: 硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金 属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图 1),其中盘 片和磁头密封在无尘的金属壳中。 硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移 动到指定位置然后将数据存储或读取出来。当系统向硬盘写入数据时,磁头中“写数据” 电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这 样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁 场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。因此只要 能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出 容量更大、读写数据速度更快的硬盘。这是因为盘片表面处理越平、转速越快就能越使 磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘 片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。二、硬盘 的逻辑结构。 硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。如果有 N 个盘片。 就有 2N 个面,对应 2N 个磁头(Heads),从 0、1、2 开始编号。每个盘片被划分成若干 个同心圆磁道(逻辑上的,是不可见的。)每个盘片的划分规则通常是一样的。这样每个 盘片的半径均为固定值 R 的同心圆再逻辑上形成了一个以电机主轴为轴的柱面 (Cylinders),从外至里编号为 0、1、2……每个盘片上的每个磁道又被划分为几十个扇 区 (Sector),通常的容量是 512byte,并按照一定规则编号为 1、2、3……形成 Cylinders× Heads× Sector 个扇区。这三个参数即是硬盘的物理参数。我们下面的很多实 践需要深刻理解这三个参数的意义。三、磁盘引导原理。3.1 MBR(master boot record) 扇区: 计算机在按下 power 键以后,开始执行主板 bios 程序。进行完一系列检测和配置以后。 开始按 bios 中设定的系统引导顺序引导系统。假定现在是硬盘。Bios 执行完自己的程 序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪里的程序呢。其实,称为 mbr 的一段代码起着举足轻重的作用。MBR(master boot record),即主引导记录,有时 也称主引导扇区。位于整个硬盘的 0 柱面 0 磁头 1 扇区(可以看作是硬盘的第一个扇区), bios 在执行自己固有的程序以后就会 jump 到 mbr 中的第一条指令。将系统的控制权交 由 mbr 来执行。在总共 512byte 的主引导记录中,MBR 的引导程序占了其中的前 446 个字节(偏移 0H~偏移 1BDH),随后的 64 个字节(偏移 1BEH~偏移 1FDH)为 DPT(Disk PartitionTable,硬盘分区表),最后的两个字节“55 AA”(偏移 1FEH~偏移 1FFH)是分区有 效结束标志。 MBR 不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的 MBR,即使 不同,MBR 也不会夹带操作系统的性质。具有公共引导的特性。 我们来分析一段 mbr。下面是用 winhex 查看的一块希捷 120GB 硬盘的 mbr。 你的硬盘的 MBR 引导代码可能并非这样。不过即使不同,所执行的功能大体是一样的。 这是 wowocock 关于磁盘 mbr 的反编译,已加了详细的注释,感兴趣可以细细研究一 下。 我们看 DPT 部分。操作系统为了便于用户对磁盘的管理。加入了磁盘分区的概念。即 将一块磁盘逻辑划分为几块。磁盘分区数目的多少只受限于 C~Z 的英文字母的数目, 在上图 DPT 共 64 个字节中如何表示多个分区的属性呢? Microsoft 通过链接的方法解决 了这个问题。在 DPT 共 64 个字节中,以 16 个字节为分区表项单位描述一个分区的属 性。也就是说,第一个分区表项描述一个分区的属性,一般为基本分区。第二个分区表 项描述除基本分区外的其余空间,一般而言,就是我们所说的扩展分区。这部分的大体 说明见表 1。 [img]http://www.easeus.com.cn/knowledge/fat-elements.htm[/img] 注:上表中的超过 1 字节的数据都以实际数据显示,就是按高位到地位的方式显示。存 储时是按低位到高位存储的。两者表现不同,请仔细看清楚。以后出现的表,图均同。 也可以在 winhex 中看到这些参数的意义: 说明: 每个分区表项占用 16 个字节,假定偏移地址从 0 开始。如图 3 的分区表项 3。 分区表项 4 同分区表项 3。 1、0H 偏移为活动分区是否标志,只能选 00H 和 80H。80H 为活动,00H 为非活动。 其余值对 microsoft 而言为非法值。 2、重新说明一下(这个非常重要):大于 1 个字节的数被以低字节在前的存储格式格式 (little endian format)或称反字节顺序保存下来。低字节在前的格式是一种保存数的方 法,这样,最低位的字节最先出现在十六进制数符号中。例如,相对扇区数字段的值 0x3F000000 的低字节在前表示为 0x0000003F。这个低字节在前的格式数的十进制数 为 63。 3、系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分 区粒度。有时候我们分区是输入分区的大小为 7000M,分出来却是 6997M,就是这个 原因。 偏移 2H 和偏移 6H 的扇区和柱面参数中,扇区占 6 位(bit),柱面占 10 位(bit), 以偏移 6H 为例,其低 6 位用作扇区数的二进制表示。其高两位做柱面数 10 位中的高 两位,偏移 7H 组成的 8 位做柱面数 10 位中的低 8 位。由此可知,实际上用这种方式 表示的分区容量是有限的,柱面和磁头从 0 开始编号,扇区从 1 开始编号,所以最多只能 表示 1024 个柱面× 63 个扇区× 256 个磁头× 512byte=8455716864byte。即通常的 8.4GB(实际上应该是 7.8GB 左右)限制。实际上磁头数通常只用到 255 个(由汇编语言的 寻址寄存器决定),即使把这 3 个字节按线性寻址,依然力不从心。 在后来的操作系统中, 超过 8.4GB 的分区其实已经不通过 C/H/S 的方式寻址了。而是通过偏移 CH~偏移 FH 共 4 个字节 32 位线性扇区地址来表示分区所占用的扇区总数。可知通过 4 个字节可以 表示 2^32 个扇区,即 2TB=2048GB,目前对于大多数计算机而言,这已经是个天文数 字了。在未超过 8.4GB 的分区上,C/H/S 的表示方法和线性扇区的表示方法所表示的分 区大小是一致的。也就是说,两种表示方法是协调的。即使不协调,也以线性寻址为准。 (可能在某些系统中会提示出错)。超过 8.4GB 的分区结束 C/H/S 一般填充为 FEH FFH FFH。即 C/H/S 所能表示的最大值。有时候也会用柱面对 1024 的模来填充。不过这几 个字节是什么其实都无关紧要了。 虽然现在的系统均采用线性寻址的方式来处理分区的大小。但不可跨柱面的原则依然没 变。本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数 倍。(保留扇区中的第一个扇区就是存放分区表的 MBR 或虚拟 MBR 的扇区,分区的扇 区总数在线性表示方式上是不计入保留扇区的。如果是第一个分区,保留扇区是本分区 前的所有扇区。 附:分区表类型标志如图 4 3.2 扩展分区: 扩展分区中的每个逻辑驱动器都存在一个类似于 MBR 的扩展引导记录( Extended Boot Record, EBR),也有人称之为虚拟 mbr 或扩展 mbr,意思是一样的。扩展引导记录包括 一个扩展分区表和该扇区的标签。扩展引导记录将记录只包含扩展分区中每个逻辑驱动 器的第一个柱面的第一面的信息。一个逻辑驱动器中的引导扇区一般位于相对扇区 32 或 63。但是,如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。 第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区。第二项指向下一个 逻辑驱动器的 EBR。如果不存在进一步的逻辑驱动器,第二项就不会使用,而且被记录 成一系列零。如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项 会指向它本身的引导扇区。第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱 动器的 EBR。扩展分区表的第三项和第四项永远都不会被使用。 通过一幅 4 分区的磁盘结构图可以看到磁盘的大致组织形式。如图 5: 关于扩展分区,如图 6 所示,扩展分区中逻辑驱动器的扩展引导记录是一个连接表。该 图显示了一个扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑 驱动器之间在扩展分区表中的差异。 除了扩展分区上最后一个逻辑驱动器外,表 2 中所描述的扩展分区表的格式在每个逻辑 驱动器中都是重复的:第一个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下 一个逻辑驱动器的 EBR。最后一个逻辑驱动器的扩展分区表只会列出它本身的分区项。 最后一个扩展分区表的第二个项到第四个项被使用。 [img]http://www.easeus.com.cn/knowledge/fat-elements.htm[/img] 扩展分区表项中的相对扇区数字段所显示的是从扩展分区开始到逻辑驱动器中第一个 扇区的位移的字节数。总扇区数字段中的数是指组成该逻辑驱动器的扇区数目。总扇区 数字段的值等于从扩展分区表项所定义的引导扇区到逻辑驱动器末尾的扇区数。有时候 在磁盘的末尾会有剩余空间,剩余空间是什么呢?我们前面说到,分区是以 1 柱面的容 量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,不够一个柱面的剩下的空 间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。照道理说,磁盘的 物理模式决定了磁盘的总容量就应该是整数个柱面的容量,为什么会有不够一个柱面的 空间呢。在我的理解看来,本来现在的磁盘为了更大的利用空间,一般在物理上并不是 按照外围的扇区大于里圈的扇区这种管理方式,只是为了与操作系统兼容而抽象出来 CHS。可能其实际空间容量不一定正好为整数个柱面的容量。 磁盘阵列(Disk Array)原理 1、为什么需要磁盘阵列? 如何增加磁盘的存取(access)速度,如何防止数据因磁盘的故障而失落及如何有效的 利用磁盘空间,一直是电脑专业人员和用户的困扰;而大容量磁盘的价格非常昂贵,对 用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。 过去十几年来,CPU 的处理速度增加了五十倍有多,内存(memory)的存取速度亦大幅 增加,而数据储存装置--主要是磁盘(hard disk)--的存取速度只增加了三、四倍,形 成电脑系统的瓶颈,拉低了电脑系统的整体性能(through put),若不能有效的提升磁 盘的存取速度,CPU、内存及磁盘间的不平衡将使 CPU 及内存的改进形成浪费。 目前改进磁盘存取速度的的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁盘存取 的次数,数据的读写都在快取内存中进行,大幅增加存取的速度,如要读取的数据不在 快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工环境 (single-tasking envioronment)如 DOS 之下,对大量数据的存取有很好的性能(量小 且频繁的存取则不然),但在多工(multi-tasking)环境之下(因为要不停的作数据交换 (swapping)的动作)或数据库(database)的存取(因为每一记录都很小)就不能显 示其性能。这种方式没有任何安全保障。 其二是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用, 它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关 磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列所利用 的不同的技术,称为 RAID level,不同的 level 针对不同的系统及应用,以解决数据安 全的问题。 一般高性能的磁盘阵列都是以硬件的形式来达成,进一步的把磁盘快取控制及磁盘阵列 结合在一个控制器(RAID controler 或控制卡上,针对不同的用户解决人们对磁盘输出入 系统的四大要求: (1)增加存取速度; (2)容错(fault tolerance),即安全性; (3)有效的利用磁盘空间; (4)尽量的平衡 CPU,内存及磁盘的性能差异,提高电脑的整体工作性能。 2.磁盘阵列 原理 磁盘阵列中针对不同的应用使用的不同技术,称为 RAID level,RAID是 Redundent Array of Inexpensive Disks 的缩写,而每一 level 代表一种技术,目前业界公认的是 RAID 0~RAID 5。这个 level 并不代表技术的高低,level 5 并不高于 level 3,level 1 也不低过 level 4,至于要选择那一种 RAID level 的产品,纯视用户的操作环境(operating environment)及应用(application)而定,与 level 的高低没有必然的关系。 RAID 0 及 RAID 1 适用于 PC 及 PC 相关的系统如小型的网络服务器(network server) 及需要高磁盘容量与快速磁盘存取的工作站等,比较便宜;RAID 3 及 RAID 4 适用于大 型电脑及影像、CAD/CAM 等处理;RAID 5 多用于 OLTP(在线事务处理),因有金融机 构及大型数据处理中心的迫切需要,故使用较多而较有名气,RAID 2 较少使用,其他如 RAID 6、RAID 7 乃至 RAID 10 等,都是厂商各做各的,并无一致的标准,在此不作说 明。介绍各个 RAID level 之前,先看看形成磁盘阵列的两个基本技术: 磁盘延伸(Disk Spanning): 译为磁盘延伸,能确切的表示 disk spanning 这种技术的含义。如图磁盘阵列控制器, 联接了四个磁盘,这四个磁盘形成一个阵列(array),而磁盘阵列的控制器(RAID controller)是将此四个磁盘视为单一的磁盘,如 DOS 环境下的 C:盘。这是 disk spanning 的意义,因为把小容量的磁盘延伸为大容量的单一磁盘,用户不必规划数据在各磁盘的 分布,而且提高了磁盘空间的使用率。并使磁盘容量几乎可作无限的延伸;而各个磁盘 一起作取存的动作,比单一磁盘更为快捷。很明显的,有此阵列的形成而产生 RAID 的 各种技术。 磁盘或数据分段(Disk Striping or Data Striping): 因为磁盘阵列是将同一阵列的多个磁盘视为单一的虚拟磁盘(virtual disk),所以其数 据是以分段(block or segment)的方式顺序存放在磁盘阵列中,数据按需要分段,从 第一个磁盘开始放,放到最後一个磁盘再回到第一个磁盘放起,直到数据分布完毕。至 于分段的大小视系统而定,有的系统或以 1KB 最有效率,或以 4KB,或以 6KB,甚至是 4MB 或 8MB 的,但除非数据小于一个扇区(sector,即 521bytes),否则其分段应是 512byte 的倍数。因为磁盘的读写是以一个扇区为单位,若数据小于 512bytes,系统读 取该扇区后,还要做组合或分组(视读或写而定)的动作,浪费时间。从上图我们可以 看出,数据以分段于在不同的磁盘,整个阵列的各个磁盘可同时作读写,故数据分段使 数据的存取有最好的效率,理论上本来读一个包含四个分段的数据所需要的时间约=(磁 盘的 access time+数据的 tranfer time)X4 次,现在只要一次就可以完成。 若以 N 表示磁盘的数目,R 表示读取,W 表示写入,S 表示可使用空间,则数据分段的 性能为: R:N(可同时读取所有磁盘) W:N(可同时写入所有磁盘) S:N(可利用所有的磁盘,并有最佳的使用率) Disk striping 也称为 RAID 0,很多人以为 RAID 0 没有甚么,其实这是非常错误的观念, 因为 RAID 0 使磁盘的输出入有最高的效率。而磁盘阵列有更好效率的原因除数据分段 外,它可以同时执行多个输出入的要求,因为阵列中的每一个磁盘都能独立动作,分段 放在不同的磁盘,不同的磁盘可同时作读写,而且能在快取内存及磁盘作并行存取 (parallel access)的动作,但只有硬件的磁盘阵列才有此性能表现。 从上面两点我们可以看出,disk spanning 定义了 RAID 的基本形式,提供了一个便宜、 灵活、高性能的系统结构,而 disk striping 解决了数据的存取效率和磁盘的利用率问题, RAID 1 至 RAID 5 是在此基础上提供磁盘安全的方案。 RAID 1 RAID 1 是使用磁盘镜像(disk mirroring)的技术。磁盘镜像应用在 RAID 1 之前就在很 多系统中使用,它的方式是在工作磁盘(working disk)之外再加一额外的备份磁盘 (backup disk),两个磁盘所储存的数据完全一样,数据写入工作磁盘的同时亦写入备 份磁盘。磁盘镜像不见得就是 RAID 1,如 Novell Netware 亦有提供磁盘镜像的功能, 但并不表示 Netware 有了 RAID 1 的功能。一般磁盘镜像和 RAID 1 有二点最大的不同: RAID 1 无工作磁盘和备份磁盘之分,多个磁盘可同时动作而有重叠(overlaping)读取 的功能,甚至不同的镜像磁盘可同时作写入的动作,这是一种最佳化的方式,称为负载 平衡(load-balance)。例如有多个用户在同一时间要读取数据,系统能同时驱动互相镜 像的磁盘,同时读取数据,以减轻系统的负载,增加 I/O 的性能。 RAID 1 的磁盘是以磁盘延伸的方式形成阵列,而数据是以数据分段的方式作储存,因 而在读取时,它几乎和 RAID 0 有同样的性能。从 RAID 的结构就可以很清楚的看出 RAID 1 和一般磁盘镜像的不同。 下图为 RAID 1,每一笔数据都储存两份: 从图可以看出: R:N(可同时读取所有磁盘) W:N/2(同时写入磁盘数) S:N/2(利用率) 读取数据时可用到所有的磁盘,充分发挥数据分段的优点;写入数据时,因为有备份, 所以要写入两个磁盘,其效率是 N/2,磁盘空间的使用率也只有全部磁盘的一半。 很多人以为 RAID 1 要加一个额外的磁盘,形成浪费而不看好 RAID 1,事实上磁盘越来 越便宜,并不见得造成负担,况且 RAID 1 有最好的容错(fault tolerence)能力,其效 率也是除 RAID 0 之外最好的。 在磁盘阵列的技术上,从 RAID 1 到 RAID 5,不停机的意思表示在工作时如发生磁盘故 障, 系统能持续工作而不停顿,仍然可作磁盘的存取,正常的读写数据;而容错则表 示即使磁盘故障,数据仍能保持完整,可让系统存取到正确的数据,而 SCSI 的磁盘阵 列更可在工作中抽换磁盘,并可自动重建故障磁盘的数据。磁盘阵列之所以能做到容错 及不停机, 是因为它有冗余的磁盘空间可资利用,这也就是 Redundant 的意义。 RAID 2 RAID 2 是把数据分散为位(bit)或块(block),加入海明码 Hamming Code,在磁盘 阵列中作间隔写入(interleaving)到每个磁盘中,而且地址(address)都一样,也就 是在各个磁盘中,其数据都在相同的磁道(cylinder or track)及扇区中。RAID 2 的设 计是使用共轴同步(spindle synchronize)的技术,存取数据时,整个磁盘阵列一起动 作,在各作磁盘的相同位置作平行存取,所以有最好的存取时间(accesstime),其总 线(bus)是特别的设计,以大带宽(band wide)并行传输所存取的数据,所以有最好 的传输时间(transfer time)。在大型档案的存取应用,RAID 2 有最好的性能,但如果 档案太小,会将其性能拉下来,因为磁盘的存取是以扇区为单位,而 RAID 2 的存取是 所有磁盘平行动作,而且是作单位元的存取,故小于一个扇区的数据量会使其性能大打 折扣。RAID 2 是设计给需要连续且大量数据的电脑使用的,如大型电脑(mainframe to supercomputer)、作影像处理或 CAD/CAM 的工作站(workstation)等,并不适用于一 般的多用户环境、网络服务器(network server),小型机或 PC。 RAID 2 的安全采用内存阵列(memory array)的技术,使用多个额外的磁盘作单位错 误校正(single-bit correction)及双位错误检测(double-bit detection);至于需要多少 个额外的磁盘,则视其所采用的方法及结构而定,例如八个数据磁盘的阵列可能需要三 个额外的磁盘,有三十二个数据磁盘的高档阵列可能需要七个额外的磁盘。 RAID 3 RAID 3 的数据储存及存取方式都和 RAID 2 一样,但在安全方面以奇偶校验(parity check)取代海明码做错误校正及检测,所以只需要一个额外的校检磁盘(parity disk)。 奇偶校验值的计算是以各个磁盘的相对应位作 XOR 的逻辑运算,然后将结果写入奇偶 校验磁盘,任何数据的修改都要做奇偶校验计算, 如某一磁盘故障,换上新的磁盘后,整个磁盘阵列(包括奇偶校验磁盘)需重新计算一 次, 将故障磁盘的数据恢复并写入新磁盘中;如奇偶校验磁盘故障,则重新计算奇偶 校验值,以达容错的要求。 较之 RAID 1 及 RAID 2,RAID 3 有 85%的磁盘空间利用率,其性能比 RAID 2 稍差, 因为要做奇偶校验计算;共轴同步的平行存取在读档案时有很好的性能,但在写入时较 慢,需要重新计算及修改奇偶校验磁盘的内容。RAID 3 和 RAID 2 有同样的应用方式, 适用大档案及大量数据输出入的应用,并不适用于 PC 及网络服务器。 RAID 4 RAID 4 也使用一个校验磁盘,但和 RAID 3 不一样 RAID 4 是以扇区作数据分段,各磁盘相同位置的分段形成一个校验磁盘分段(parity block),放在校验磁盘。这种方式可在不同的磁盘平行执行不同的读取命今,大幅提高 磁盘阵列的读取性能;但写入数据时,因受限于校验磁盘,同一时间只能作一次,启动 所有磁盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再 写入。即使如此,小型档案的写入仍然比 RAID 3 要快,因其校验计算较简单而非作位 (bit level)的计算;但校验磁盘形成 RAID 4 的瓶颈,降低了性能,因有 RAID 5 而使 得 RAID 4 较少使用。 RAID 5 RAID5 避免了 RAID 4 的瓶颈,方法是不用校验磁盘而将校验数据以循环的方式放在每 一个磁盘中,磁盘阵列的第一个磁盘分段是校验值,第二个磁盘至后一个磁盘再折回第 一个磁盘的分段是数据,然后第二个磁盘的分段是校验值,从第三个磁盘再折回第二个 磁盘的分段是数据,以此类推,直到放完为止。图中的第一个 parity block 是由 A0,A1..., B1,B2 计算出来,第二个 parity block 是由 B3,B4,...,C4,D0 计算出来,也就是校 验值是由各磁盘 同一位置的分段的数据所计算出来。这种方式能大幅增加小档案的存取性能,不但可同 时读取,甚至有可能同时执行多个写入的动作,如可写入数据到磁盘 1 而其 parity block 在磁盘 2,同时写入数据到磁盘 4 而其 parity block 在磁盘 1,这对联机交易处理(OLTP, On-Line Transaction Processing)如银行系统、金融、股市等或大型数据库的 处理提供 了最佳的解决方案(solution),因为这些应用的每一笔数据量小,磁盘输出入频繁而且 必须容错。 事实上 RAID 5 的性能并无如此理想,因为任何数据的修改,都要把同一 parityblock 的 所有数据读出来修改后,做完校验计算再写回去,也就是 RMW cycle(Read-Modify-Write cycle,这个 cycle 没有包括校验计算);正因为牵一而动全身,所以: R:N(可同时读取所有磁盘) W:1(可同时写入磁盘数) S:N-1(利用率) RAID 5 的控制比较复杂,尤其是利用硬件对磁盘阵列的控制,因为这种方式的应用比 其他的 RAID level 要掌握更多的事情,有更多的输出入需求,既要速度快,又要处理数 据,计算校验值,做错误校正等,所以价格较高;其应用最好是 OLTP,至于用于图像 处理等,不见得有最佳的性能。 2、磁盘阵列的额外容错功能:Spare or Standby driver 事实上容错功能已成为磁盘阵列最受青睐的特性,为了加强容错的功能以及使系统在磁 盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用 热备份(hot spare or hot standby driver)的功能,所谓热备份是在建立(configure) 磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘,此一磁盘在平常并不操作,但若 阵列中某一磁盘发生故障时,磁盘阵列即以后备磁盘取代故障磁盘,并自动将故障磁盘 的数据重建(rebuild)在后备磁盘之上,因为反应快速,加上快取内存减少了磁盘的存 取, 所以数据重建很快即可完成,对系统的性能影响很小。对于要求不停机的大型数 据处理中心或控制中心而言,热备份更是一项重要的功能,因为可避免晚间或无人值守 时发生磁盘故障所引起的种种不便。 另一个额外的容错功能是坏扇区转移(bad sector reassignment)。坏扇区是磁盘故障 的主要原因,通常磁盘在读写时发生坏扇区的情况即表示此磁盘故障,不能再作读写, 甚至有很多系统会因为不能完成读写的动作而死机,但若因为某一扇区的损坏而使工作 不能完成或要更换磁盘,则使得系统性能大打折扣,而系统的维护成本也未免太高了。 坏扇区转移是当磁盘阵列系统发现磁盘有坏扇区时,以另一空白且无故障的扇区取代该 扇区, 以延长磁盘的使用寿命,减少坏磁盘的发生率以及系统的维护成本。所以坏扇 区转移功能使磁盘阵列具有更好的容错性,同时使整个系统有最好的成本效益比。其他 如可外接电池备援磁盘阵列的快取内存,以避免突然断电时数据尚未写回磁盘而损失; 或在 RAID 1 时作写入一致性的检查等,虽是小技术,但亦不可忽视。 3、硬件磁盘阵列还是软件磁盘阵列 市面上有所谓硬件磁盘阵列与软件磁盘阵列之分,因为软件磁盘阵列是使用一块 SCSI 卡与磁盘连接,一般用户误以为是硬件磁盘阵列。以上所述主要是针对硬件磁盘阵列, 其与软件磁盘阵列有几个最大的区别: 一个完整的磁盘阵列硬件与系统相接。 内置 CPU,与主机并行运作,所有的 I/O 都在磁盘阵列中完成,减轻主机的工作负载, 增加系统整体性能。 有卓越的总线主控(bus mastering)及 DMA(Direct Memory Access)能力,加速数据 的存取及传输性能。 与快取内存结合在一起,不但增加数据的存取及传输性能,更因减少对磁盘的存取而增 加磁盘的寿命。 能充份利用硬件的特性,反应快速。 软件磁盘阵列是一个程序,在主机执行,透过一块 SCSI 卡与磁盘相接形成阵列,它最 大的优点是便宜,因为没有硬件成本(包括研发、生产、维护等),而 SCSI 卡很便宜(亦 有的软件磁盘阵列使用指定的很贵的 SCSI 卡);它最大的缺点是使主机多了很多进程 (process),增加了主机的负担,尤其是输出入需求量大的系统。目前市面上的磁盘阵 列 系统大部份是硬件磁盘阵列,软件磁盘阵列较少。 4、磁盘阵列卡还是磁盘阵列控制器 磁盘阵列控制卡一般用于小系统,供单机使用。与主机共用电源,在关闭主机电源时存 在丢失 Cache 中的数据的的危险。磁盘阵列控制卡只有常用总线方式的接口,其驱动程 序与主机、主机所用的操作系统都有关系,有软、硬件兼容性问题并潜在地增加了系统 的不安定因素。在更换磁盘阵列卡时要冒磁盘损坏,资料失落,随时停机的风险。 独立式磁盘阵列控制一般用于较大型系统,可分为两种: 单通道磁盘阵列和多通道式磁盘阵列,单通道磁盘阵列只能接一台主机,有很大的扩充 限制。多通道磁盘阵列可接多个系统同时使用,以群集(cluster)的方式共用磁盘阵列, 这使内接式阵列控制及单接式磁盘阵列无用武之地。目前多数独立形式的磁盘阵列子系 统,其本身与主机系统的硬件及操作环境。 首先,IDE 的性能不会比 SCSI 更高的。特别是在多任务的情况下。一般广告给出的是 最 大传送速度,并不是工作速度。同一时期的 IDE 与 SCSI 盘相比,主要是产量比较大, 电 路比较简单,所以价格比 SCSI 低很多,但要比性能,则差远了。 RAID 并没有限制使用多少个盘,盘越多越好。 对于 SCSI 结构的 RAID 来说,盘的最大数量与 SCSI 通道(SCSI 总线)的数量有关一 般是每个通道最多装 15 个盘(SCSI/3)对于 FC-AL(光纤)则是每个通道 200 个盘当 然,要有这样大的磁盘箱才行! IDE 硬盘详解 要说去年的计算机业,发展最快的是什么?我想,硬盘一定算一号! 记得去年年初,DMA66 刚刚兴起,主流配置还是 13.6G。时隔一年,DMA66 技术已经普 及,而且正向这 DMA100 迈进。容量也是翻了一翻还要多,普及配置达到了 30G。其更 新换代的速度甚至超过了大名鼎鼎的"摩尔定律"(即集成电路中的晶体管数量每隔 18 个月增加一倍)。然而,面对这突如其来的"硬盘风"不仅普通用户,就连一些 DIYer 也 有些招架不住。所以,小弟特写了这篇文章,详细的介绍了当今的硬盘技术,让大家对 硬盘有一个系统的理解! 要了解硬盘,就一定要清楚硬盘的工作原理。首先,硬盘主要是由磁盘、移动臂、主轴、 磁头和主轴电机组成(见图)。所有的数据都存储在磁盘上,磁盘又固定在主轴上,一 般一块硬盘由 1-5 张磁盘组成。主轴底部有一个电机,当硬盘运做时,电机带动主轴, 主轴带动磁盘高速旋转,其速度可以达到每分钟几千转、甚至上万转。这时旋转带来的 上升的空气将磁盘上的磁头托起,磁头通过磁盘的转动读取数据。移动臂用来固定磁头, 让磁头能在磁盘上不同磁道之间来回移动,读取数据。以上,就是硬盘的基本工作原理。 现在大家应该对硬盘有一定了解了,不过这还不够。比如,大家在购买硬盘时经常会碰 到 UDMA 、2M 缓存、单碟容量、7200 转等专业名词,这些都是什么意思呢?别着急, 下面就为大家解释。 首先要说的就是 UDMA。不过,在这之前我们得先了解一下,什么是 DMA?我们都知道, 计算机要工作,都要由 CPU 发出指令,各个部件才做出响应,硬盘也是如此。假如现 在 CPU 发出指令,要从硬盘上读取 512K 的数据,设 CPU 每条指令每次能从硬盘读取 1K 的数据,那 CPU 要对硬盘发出 512 次指令。而且硬盘的速度又远远低于 CPU,这就 造成 CPU 将长时间等待硬盘的数据,这无疑大大浪费了 CPU。要怎么解决这个问题呢? DMA 技术就应蕴而生了。它的工作原理很简单,就是在主板的南桥芯片中增加了一个 DMA 控制器。DMA 控制器起什么作用呢?同样是上边的例子,当 CPU 要从硬盘上读取 的数据时,CPU 只要发出一条指令,告诉 DMA 控制器要读取那一块的数据,由 DMA 控 制器来从硬盘上读取数据,读取的数据暂时存放在硬盘的缓存(Cache)上,当数据全 部读到缓存上时,DMA 控制器会向 CPU 发出一条回愦信息,告诉 CPU 数据以读完。这 时 CPU 再发第二条条读指令,将缓存上的数据读到内存中。这样 CPU 只发出了两条指 令,就完成了这 512K 数据的读取。举个不是很恰当的例子:有一个公司,公司最高领 导是总经理,公司中所有的事都由总经理来管,但是像打字、发信、复印等这些琐碎工 作,却不用都要总经理来做。这就需要为总经理请个秘书,那些琐碎的小事都交给秘书 去做,解放总经理,让总经理有更多的时间做重要的工作。在计算机中也是如此,CPU 就相当于总经理,DMA 控制器就相当于总经理的秘书,DMA 解放了 CPU,减轻了 CPU 的负担,让 CPU 做更重要的工作。所以要清楚一点,DMA 并没有提高硬盘速度,但 DMA 可以大大减少 CPU 占有率,从而提高计算机的整体性能。这才是 DMA 的真正作用! 随着技术的发展,计算机的速度越来越快。可是,硬盘的速度却没什么提高,这时硬盘 就成为瓶颈。为了解决这个问题,UDMA 就诞生了。UDMA 的全名叫 Ultra DMA,它是 一种接口技术,就是说 UDMA 只能提高硬盘的外部传输速率,而改变不了硬盘的内部传 输速率,这点在后边将会进一步说明。最初我们使用的都是 UDMA 33,它是利用脉冲 的上沿和下沿传送数据,突发性传输速率达到了 33MB/s。在原来的基础上加入了循环 校验(CRC),提高了传输数据的完整性。但是最重要的还是 UDMA 33 完全向下兼容, 这对 UDMA 的推广起了关键的作用。不过,随着硬盘技术的不断提高,渐渐的硬盘内部 传输速率接近并超过了 33MB/s。这时昆腾和 INTEL 公司在 1998 年又联合推出了 UDMA 66,让突发性传输速率达到了 66MB/s。UDMA 66 的最大特点,就是在原来 40 芯电缆 的基础上又增加了 40 根地线电缆,使电缆数达到 80 根,这样做一来增加了一倍传输速 率,二来也提高了数据传输的可靠性,保证了数据的完整性。UDMA 66 也向下兼容, 虽然采用 80 芯电缆,但接口插针还是 40 针,只是在连接线内部增加了 40 条地线。在 这 80 根电缆中第 34 根电缆是断开的,而普通的 40 芯电缆这条电缆是连通的,这有效 的区分了 UDMA 66 和 UDMA 33,在检测到这条电缆是否连通后,BIOS 会自动判断是 UDMA 33 还是 UDMA 66。 现在 PC 硬盘内部传输速率最快可以达到 56MB/s,在这个基础上 UDMA 66 基本上是够 用了。但技术是发展的,新一代的硬盘将突破 66MB/s 这个上限,于是昆腾在 2001 年 6 月有发表了 UDMA 100 接口标准,这显然是一个面向明天的接口标准,虽然对现在的硬 盘没什么作用,但是还是有必要要介绍一下。UDMA 100 仍然使用 80 芯 40 针的数据线, 所不同的是 UDMA 100 将突发性传输速率提高到了 100MB/s,同 UDMA 66 一样也向下 兼容,而且在兼容性上也做了进一步的改善。 提高了外部传输速率,那内部传输速率又如何提高呢?有两种方法,第一种、是增加磁 盘转速,比如从 5400 转提高到现在的 7200 转。第二种、是提高磁盘的单碟容量。那 这两种方法都是如何的实现呢?下面就为大家介绍。 在购买硬盘时,经常听说 7200 转和 5400 转。我们说过硬盘工作是靠主轴电机带动磁 盘转动,这个速度就是磁盘转动的速度。7200 转和 5400 转的意思就是磁盘在每分钟可 以转动 7200 圈和 5400 圈。相对来说转速越快,磁盘的内部传输速率就越快,因为相 同时间内磁盘转动越快,磁头经过的磁道就越多,读取的数据就越多。不过,这也不是 无止境的,首先、更快的速度就意味着需要更敏感的磁头,其次、提高转速还会带来发 热量和噪音。现在硬盘已经可以达到 10000 转,可是由于发热量和噪音是无法忍受的(至 少对 PC 来说),现在的技术还没法控制。所以,10000 转硬盘还只能应用在高端服务器 的 SCSI 硬盘上。就现在来说,7200 转的硬盘技术已经比较成熟,发热量和噪音都控制 的很好,是现在的首选。5400 转的硬盘虽然也不错,不过由于先天不足只好成为低端 产品。 相对于提高转速来说,提高单碟容量的作用相对更突出些。增加单碟容量和提高转速的 原理差不多。硬盘的单碟容量增加了,磁盘上单位面积上存储的数据也就增多。也就是 说,在相同的时间里,单碟容量越高,磁头读取的数据就越多。这就可以解释为什么在 有些评测中,有些 5400 转的硬盘会比一些 7200 转的还快,原因就在于单碟容量。另 外,提高单碟容量还有一个重要的作用,那就是可以有效的提高硬盘的容量。就是说在 单碟容量越大,磁盘上存储数据就越多,前边说过硬盘是由磁盘组成,因此单碟容量的 增加,可以使硬盘容量增加。打个比方吧!同样是迈拓硬盘,迈拓钻石九代单碟容量 10.2G,需要 3 张磁盘组成 30G 硬盘,而迈拓钻石十代单碟容量 15.3G,只用 2 张磁盘 可以组成 30G 硬盘。不仅速度上有所提升,而且少用了一张磁盘,成本也会降低,那 样价格也就会更低。这也是为什么各大硬盘厂商极力宣传单碟容量的原因。 硬盘还有另一个重要技术,那就是缓存。想必大家一定还记得在前
/
本文档为【硬盘知识_硬盘逻辑结构_硬盘MBR详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索