存储之道(上)
2014-04-29陈捷刘宗凡
陈捷 刘宗凡
在计算机存储体系中,存储器分为内存(主存)和外存(辅存)两种。硬盘是最重要的一种外存,除了操作系统安装在硬盘以外,我们宝贵的数据基本上都保存在硬盘,可以说硬盘是文档、影视、音乐、游戏等堆放的仓库。
● 简史:硬盘是如何发展的
第一块硬盘是1956年IBM发明的RAMAC350。它的重量约为1吨,有两个冰箱那么大,但容量只有5MB(如图1)。
进入1973年,IBM推出了Winchester硬盘,这是现代硬盘的原型。民间叫温盘,即温彻斯特盘。这个名字的来源,是硬盘有两个30MB的存储单元,一个固定,一个可抽取,这恰好是当时出名的“温彻斯特来福枪”的口径和填弹量。至此,硬盘的基本架构被确立。
1984年,苏格兰企业Rodime开发出3.5英寸硬盘,到上世纪90年代发展壮大,成为个人电脑硬盘的标准。
1989年,世界上第一款固态硬盘出现;2006年,第一块32GB固态硬盘上市;现在,固态硬盘风生水起,正吹响传统机械硬盘革命的号角。
● 原理:硬盘是怎么工作的
1.硬盘的构造和工作
要真正用好硬盘,首先要了解硬盘的工作原理。
硬盘是一个密封体(如图2)。硬盘在通电前,磁头处于着陆区,与磁盘是接触的。当硬盘通电后即开始工作,此时磁头置于盘片中心位置,初始化完成后主轴电机将启动带动盘片高速旋转,磁头臂也开始移动,将浮动磁头置于盘片表面的0磁道,磁头处于等待指令的启动状态。此时磁头悬浮在盘片上方约0.2~0.5微米高度,不直接接触盘片。但因为两者距离非常近,所以工作时切忌对硬盘产生震动,以免磁头撞击盘片造成伤害。当然,如果是正常读写操作,盘片是不会产生磨损的。
当接口电路接收到计算机系统传来的指令信号后,通过前置放大控制电路,驱动音圈电机发出磁信号,随后根据感应阻值变化的磁头对盘片数据信息进行正确定位,并将接收后的数据信息解码,通过放大控制电路传输到接口电路,反馈给主机系统完成指令操作。写硬盘的操作与此类似。
2.硬盘的逻辑结构
从逻辑结构上来看,硬盘由一到数个盘片组成(如下页图3),其一个或两个面涂有磁性材料用于记录数据。每面有一个读写磁头用于读写数据。盘片有一个共同的主轴,盘片绕主轴高速旋转。磁头沿着盘片的半径移动,磁头移动加上盘片旋转可以使磁头存取磁盘表面的任何位置。
盘片表面被分为多个同心圆环,叫磁道,每个磁道又被分为多个扇区。扇区是硬盘读写数据的基本单位,一般一个扇区容纳512字节数据。所有盘片相同位置的磁道组成柱面。虽然硬盘物理构造千差万别,但存取数据的逻辑结构却可由三个参数确定,即柱面(Cylinder)、磁头(Head)、扇区(Sector)。
● 性能:你的硬盘快不快
我们买一个硬盘,首先考虑的就是它的容量。但一直有些人不太明白,为什么标称多少容量的硬盘,在Windows系统里显示总是“缺斤少两”呢?其实,这和硬盘厂商与计算机系统使用的单位转换基数不同有关:在计算机系统内,1KB=1024B,1MB=1024KB,1GB=1024MB……而厂商一般以1KB=1000B,1MB=1000KB,1GB=1000MB……来计算,这就在标称容量和实际容量之间形成了一个差值,属于正常现象。比如,我一个320GB的硬盘,在磁盘管理中显示为298.09GB(如图4)。
购买硬盘时,大家会关注容量,很容易忽略了硬盘的性能。其实硬盘性能如何,决定了你的电脑性能——根据木桶理论,计算机性能不是决定于性能最高的部件,而是决定于性能最差的部件。现在CPU、内存、显卡、芯片组等技术都不断取得突破,性能突飞猛进。而机械硬盘在几十年发展中始终没有革命性的进展,成为电脑系统中“拖后腿”的角色。所以选择一个合适的硬盘说不定对你的电脑系统性能有一个实质性的提升。
1.硬盘的性能指标
我们在网上购买硬盘,通常会看到诸如“希捷(Seagate)1TB ST1000DM003 7200转64M SATA 6Gb/s台式机硬盘”之类的标题。在这里我们除了可以看到厂商、型号、容量等数据,还透露了硬盘性能的几个重要指标。
(1)主轴转速
硬盘在工作时就会飞速转动,转动速度直接决定了读取和写入数据的速度。现在台式机硬盘一般为每分钟7200转,笔记本硬盘一般为每分钟4500转。如果你对数据读写速度有比较高的要求,可以购买万转硬盘,如果做服务器用,甚至可以考虑15000转的硬盘。当然,转速越高,价钱越贵,发热越大,能耗越高,这需要我们综合衡量。
(2)高速缓存
内存在和硬盘进行数据交流时,硬盘的速度远远赶不上内存的速度。在硬盘和内存之间设置一个缓冲池,内存需要硬盘数据时先看缓冲池里有没有。如果没有,从硬盘读取数据将其放入缓冲池,再从缓冲池读入内存。往硬盘写入数据时,先存入缓冲池,等到集中一定数量后再写入硬盘。这个缓冲池就是高速缓存,它的读写速度远比硬盘要快,所以能提升硬盘的读写速度。高速缓存当然越多越好,但价钱也更贵。现在硬盘配置64MB高速缓存已经很普遍了。
(3)数据传输率
数据传输率分为内部数据传输率(持续数据传输率)和外部数据传输率(突发数据传输率)两种。内部传输率指的是硬盘从盘片上读写数据的速度;外部数据传输率指从硬盘缓存中向外输出数据的速度。
(4)平均寻道时间
平均寻道时间为磁头移动到正中间的磁道所需要的时间。寻道时间越短性能越高。
(5)单碟容量
硬盘是由多个盘片组成的。每个盘片容量越大,数据越密集,导致磁头移动距离小,平均寻道时间减少。比如,同样是1TB的硬盘,如果是由两个盘片组成,就会比由四个盘片组成的性能更好。
(6)接口
硬盘接口类型决定了外部数据传输率。硬盘接口分为IDE、SATA、SCSI、光纤通道和SAS五种。其中IDE接口硬盘又称为并口(PATA)硬盘,现在已经被SATA接口(串口硬盘)所代替。目前流行的SATA3标准中,硬盘写入速度已经达到600MB/s,比最快的并口硬盘标准ATA133还要快4倍。SCSI、光纤通道主要用在服务器、海量存储子网络等对数据传输率要求非常高的地方。
2.硬盘实际拷贝速度
虽然我们可以通过指标对硬盘性能有一个初步了解,但要准确衡量硬盘性能,还是得通过测试。在Windows 7下拷贝文件时,单击拷贝窗口下的“详细信息”,可以初步了解硬盘读写速度(如图5)。
当然Windows的拷贝速度是不太准确的,我们可以使用FastCopy这个专业拷贝工具来了解硬盘的实际传输速度。比如,图6显示拷贝534.1MB数据用时27.55秒,传输速度为19.39MB/秒。
3.硬盘性能测试
硬盘的实际拷贝速度受到很多因素影响,要全面考察硬盘性能,可以用专业软件来实现,其中ATTO Disk Benchmark(如图7)和HD Tune Pro(如图8)是最常用的两款磁盘性能测试软件。ATTO Disk Benchmark会分别检测0.5KB到8MB不同大小文件的读写速度,HD Tune Pro则提供了除读写速度外更多的专业测试,如可以测试寻道时间、连续读取磁道外(中、内)圈速率及磁盘健康状态诊断、噪音管理等功能。
● 处理:硬盘使用前有哪些准备工作要做
硬盘买回来能不能立即投入使用?未必。一块硬盘从工厂到用户能够使用,要经过低级格式化、分区、高级格式化的过程。当然有些操作是由工厂完成,有些要用户来完成。
1.硬盘的低级格式化
低级格式化(low level formatting)通常简称为低格,是将空白的磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分ID、间隔区GAP和数据区DATA等。这个工作是厂商在出厂前就完成的,它既可以在DOS下操作,也可以在Windows下操作。如果硬盘出现了某些故障,如感染顽固病毒无法清除、坏道无法修复等,低级格式化也许能挽救它。
如果是容量较小的硬盘及PATA接口的硬盘,我们可以使用传统的磁盘处理工具DM来完成低格,或者使用专门的工具Lformat。但这些工具对现在串口(SATA)硬盘及大硬盘识别不好,更别提完成低格格式化了。HDD Low Level Format Tool是一个在Windows下进行低级格式化的工具,操作简便,速度远远快过DOS下的软件(如果没有注册,软件将限定处理速度为50MB/s,低格一个2TB的硬盘大约要12小时,但这也已经比DOS低格工具快上许多了)。
2.硬盘分区
硬盘分区是用工具将硬盘划分为几个逻辑部分,这样对于一个大硬盘就更方便管理了。如果是一个新硬盘,接入电脑后首先要考虑的就是它的分区形式:MBR(主引导记录)还是GPT(GUID分区表)。如果是比较旧的电脑,我们可以选用MBR形式;如果是采用UEFI的主板,或者2TB以上容量的硬盘,我们就要使用GPT形式了。给硬盘分区有四种情形:
(1)单独分区
用启动盘启动到DOS环境,我们可以使用DOS内置命令fdisk进行分区操作。如果不熟悉命令,可以使用第三方分区软件,如DiskGenius等,在图形化界面使用菜单完成分区。
(2)安装系统时分区
在Windows 7等系统安装过程中,有一个步骤是选择安装系统的分区。这时单击“驱动器选项(高级)”,将出现“删除”、“新建”、“格式化”等选项,这时我们就可以进行分区操作了。要注意的是这种方式只能将各个分区都划分成主分区。MBR形式下最多支持4个主分区,GPT形式下对主分区没有限制(Winodws最多支持128个主分区)。如果我们对这种简单的分区格式不满,可以在这时按“Shift+F10”组合键启动DOS窗口,然后输入“diskpart”命令,可以用子命令进行几乎所有分区操作。
(3)在Windows下分区
如果我们将新硬盘作为从盘挂载在一台电脑上,启动Windows后就可以使用“硬盘管理”来进行分区。
(4)无损调整分区
新的电脑尤其是笔记本,一般安装了正版Windows系统,但硬盘往往只分成一个区或两个区。如果我们既想保留原有正版系统又想将硬盘分区,在Windows的“硬盘管理”中也能实现:右击C盘,选“压缩卷”,在“输入压缩空间量”后面输入要腾出的空间,然后单击“压缩”,这样就会将多余的空间留出来,只要在这里再新建适当大小的分区就可以了。当然它的缺点也比较明显,如压缩后的分区可能还是太大,不能自由设置大小。Paragon Partition Manager11、DiskGenius4.5等第三方软件都比较容易进行分区的无损调整。Paragon Partition Manager的所有操作都可以在Windows下完成,如果要调整系统所在分区大小,DiskGenius会自动启动到DOS下完成调整,然后再重新启动到Windows。
3.高级格式化
硬盘在划分了分区以后不能直接使用,还必须进行格式化操作才能存储数据。这种格式化即高级格式化(High level Format),通常简称为格式化。高级格式化又称逻辑格式化,它是指根据用户选定的文件系统(如FAT12、FAT16、FAT32、NTFS、EXT2、EXT3等),在磁盘的特定区域写入特定数据,以达到初始化磁盘或磁盘分区、清除原磁盘或磁盘分区中所有文件的一个操作。高级格式化包括对主引导记录中分区表相应区域的重写、根据用户选定的文件系统,在分区中划出一片存放文件分配表、目录表等用于文件管理的磁盘空间,以便用户使用该分区管理文件。
我们可以用DOS命令“format”进行格式化,也可以在Windows的资源管理器中右击某个分区选“格式化”来进行格式化,第三方磁盘管理工具也都有这种功能。
格式化之前首先要选择分区想使用的文件系统。因为NTFS分区比FAT32分区有更高的安全属性,在性能、可靠性、硬盘空间利用率等方面都有改善,特别是FAT32限定了单个文件最大只能有4GB,对现在动辄20GB以上的高清电影、游戏来说无能为力,所以NTFS格式已经成为主流。如果以前已经将分区定义为FAT32格式,可以用命令“convert disk:/FS:NTFS”(disk:是驱动器号)将其转换为NTFS格式,这个分区的数据是不会损失的。
在Windows格式化时会提供有一个“快速格式化”的选项,命令format有一个参数/q也是用来执行快速格式化的。那普通格式化和快速格式化有什么区别?
普通格式化会对这个分区的数据进行擦除操作,然后填入任意数据,然后再擦除,这样格式化完以后数据基本上无法恢复。同时它还会对磁盘坏道进行检查,将坏道标记出来不再使用。这个过程是非常漫长的。快速格式化只是在分区表上进行标记,不会对磁盘进行重写,所以非常快速。当然快速格式化的分区数据其实还完整不动地保存着,如果没有进一步的磁盘覆盖操作,通过数据恢复软件可以完美恢复过来。
● 维护:硬盘的小病你会医吗
在计算机硬件系统中,硬盘是一个非常娇贵的部件,最早出现故障的往往就是硬盘。我们一般用MTBF(连续无故障时间)来衡量硬盘的寿命。硬盘的MTBF一般为3万~5万小时,即如果你24小时开机,硬盘的正常寿命可能在4~6年,而一般家庭使用,寿命维持10年左右是没问题的。所以一般情况下,电脑换代了,硬盘可能还没有坏。但是如果在使用电脑的过程中有些不良的习惯,可能会让硬盘提前夭折。所以我们要养成良好的电脑使用习惯。
1.影响硬盘寿命的因素
(1)震动是硬盘致命杀手
硬盘在工作时,磁头在盘片表面的浮动高度只有几微米。如果此时产生震动,可能会让磁头和盘片直接撞击,对盘片产生永久伤害,甚至让硬盘直接报废。所以笔记本电脑在开机以后最好不要搬着到处跑。另外,摇晃的桌面、劣质机箱、安装不稳固的硬盘都容易在工作时产生震动,这都是我们在安装电脑时特别要注意的。
(2)高温是硬盘慢性毒药
硬盘温度上升,主要是由于主轴电机和寻道伺服电机的旋转,其次是高速旋转的盘片与空气之间的摩擦。硬盘温度过高,机械电路特别是电路板集成块会加速老化。高温也会影响到磁头电阻感应灵敏度,容易产生读写错误,导致出现死机、数据丢失等现象。
(3)劣质电源是硬盘死对头
电压不稳对计算机硬件有很大影响,对硬盘来说尤甚。不断变化的电流会使磁头更快老化,缩短硬盘寿命。硬盘在读、写过程中如果突然断电容易造成各种数据丢失和硬盘物理性损伤。一款优质电源是整个计算机系统工作良好的保障。如果外部电压不稳,可以考虑配置一个稳压电源。
2.监测硬盘状态
除了在使用电脑中要注意保护好硬盘外,随时监测硬盘的状态也是很重要的。如果等到硬盘坏了以后再来考虑数据怎么恢复,还不如未雨绸缪,平时就注意监测硬盘的健康状况。
主板BIOS一般都内置有一个功能叫S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology,自动检测分析及报告技术)。打开这项功能以后,电脑在开机时就能对硬盘的磁头单元、硬盘温度、盘片表面介质材料、马达及其驱动系统、硬盘内部电路等进行监测,及时分析并预报硬盘可能发生的问题。如果硬盘出现了某些健康问题,电脑就会停在自检界面,让你采取进一步的行动。
当然,如果你是一个硬盘狂人,准备一款S.M.A.R.T.检测软件随时了解硬盘的具体状况也是必不可少的,Everest、ActiveSMART等软件都可以完成任务。我们最关心的是其中的一项属性:Reallocated Sector Count(再映射扇区数)。当硬盘出现坏扇区时,会自动用硬盘里预留的备用扇区替换。当坏扇区增多后,Reallocated Sector Count的Value值就减少,降到其Threshold(阈值)后硬盘坏扇区已经很多了,硬盘随时有可能寿终正寝。这时我们就应该早做准备备份数据了。
3.硬盘坏道修复
硬盘在使用过程中无法避免的会出现一些意外,其中最常出现的故障就是磁盘坏道了。磁盘坏道分为逻辑坏道和物理坏道两种。电脑在意外停电、死机、重启后或拷贝文件时出现校验错误,这时硬盘可能出现逻辑坏道了。用工具检测硬盘的SMART信息,其中(05)重映射扇区计数(C5)当前待映射的扇区数(C6)脱机无法纠正的扇区数正常时应该都为0。如果(C5)不为0而(C6)、(05)为0时,一般就是出现了逻辑坏道。
我们可以尝试用Windows自带的工具来修复逻辑坏道:打开“我的电脑”,在出现逻辑坏道的分区右击,选“属性”,然后在“工具”页的“查错”项点击“开始检查”,在检查磁盘窗口把“扫描并尝试恢复坏扇区”选中,然后单击“开始”就可以修复逻辑坏道了(如上页图9)。
但是Windows自带的工具修复能力有限,我们通常要借助第三方工具来进行修复。以前的诺顿磁盘医生、江民硬盘修复软件、PQ、DM和效率源等硬盘工具,对现在的大硬盘基本上识别不了,更谈不上修复了。DiskGenius是一款国产硬盘维护工具,可以检测坏道所在位置并修复,但DiskGenius检测速度比较慢。我们可以先用HD Tune的“错误扫描”功能扫出坏块在什么位置,然后在DiskGenius修复时计算其位置,将坏道位置所在柱面范围填入其中(如图10),这样就节省很多时间。
在坏道修复方面,MHDD是一个比较出名的DOS软件,如果其他软件不能修复坏道,可以用它试试。
硬盘如果出现物理坏道,那是无法修复的。我们能采取的措施第一就是转移数据,第二是找出坏道位置,将其隔离,避免坏道扩散而使得硬盘迅速报废。隔离的办法是将坏道和其附近的空间分成一个逻辑分区,然后用工具将这个分区隐藏不再使用。
还有一个极端情况,就是硬盘的0磁道损坏了。这种情况一般会导致硬盘报废。我们可以尝试用DiskGenius修改硬盘的起始磁道为1磁道看看:选中最前面的分区(一般为C分区),按F11,在弹出的“更改分区参数”窗口中将“起始柱面”、“起始磁头”、“起码扇区”在原来的基础上都加1,然后按“确定”。
4.硬盘分区表和主引导记录修复
硬盘分区表损坏或丢失是硬盘另一个常见的问题。一些病毒会破坏分区表,不恰当的操作也会使分区表受损。比如我们在克隆安装系统时,如果不小心选择了“Image to Disk”,克隆完了以后整个硬盘将变成一个分区。如果我们已经将分区表备份到其他地方,只要简单恢复分区表就能解决所有问题。但大多情况下,我们都没有手工备份分区表的习惯。幸好硬盘在分区时会自动将分区表做一个备份,我们只要用软件恢复它就可以了。启动DiskGenius,单击菜单“工具—搜索已丢失分区(重建分区表)”,按“开始搜索”,软件每找到一个分区就会要你确认是不是保留这个分区。如果分区正确,保留继续搜索,直到每个分区重建起来。如果硬盘上有重要数据,手工备份分区表以备不时之需是一个明智的决定。
在硬盘的主引导扇区中,除了分区表还保存着一个重要的内容:主引导记录。它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。主引导记录如果损坏了,系统将无法启动。碰到主引导记录损坏的情况,用光盘或U盘启动到DOS环境,输入fidsk/mbr就可以重建主引导记录。
● 前景:固态硬盘的革命就要来了
半个多世纪以来,硬盘一直沿着温彻斯特技术进行改良,盘片越来越小,数据越来越密集,容量越来越大,读写越来越迅速。但基于机械式原理的硬盘已经遇到了严重的瓶颈,硬盘已经成为计算机硬件系统中的短板,制约了计算机的整体发展。基于固态电子存储芯片阵列而制成的固态硬盘(SSD)的出现,开辟了硬盘发展的另一条康庄大道。固态硬盘没有了机械操作,不再需要磁头寻道,极大地提升了磁盘的读写速度。同时因为不存在机械部件,碰撞震动再也不会损坏硬盘,也不会在工作时因为马达和风扇产生噪音,功耗也低于机械硬盘。虽然现在固态硬盘还面临售价高、寿命较短等问题的制约,但可以想象,随着大规模量产和改良,固态硬盘代替机械硬盘指日可待。