磁盘的管理对于一个操作系统来说非常重要,如果管理不甚可能会导致系统的崩溃,使操作系统无法使用,在进行管理时应小心。
查看磁盘的基本信息使用df命令和du命令。
使用df命令可以显示文件系统的有效空间,命令输入结果如图3-11所示。图3-11中显示出磁盘的大小和使用率等基本信息。
图3-11 df命令显示系统空间
提示:磁盘空间以1K为单位,这样阅读起来比较麻烦,可以加上参数-h,将基本显示单位进行变更。使用df命令的-h参数后,磁盘空间是以比较容易阅读的MB和GB来显示。输出结果如图3-12所示。
图3-12 单位变更后显示结果
要查看特定目录(及其子目录)占用的磁盘空间大小可使用du命令。du命令没有参数的时候,将列出在当前目录下所有目录和每个目录占用的磁盘空间,并产生在此目录结构里使用的磁盘空间总量。
du命令在默认情况下,磁盘空间以1K为单位显示,如果为了便于阅读(以KB、MB和GB为单位),可以使用参数-h。du命令的格式为:
du 参数 文件或目录路径
该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的信息。若没有给出文件或目录路径,则对当前目录进行统计。
在Fedora 6下的所有磁盘分区都被映射一个系统的文件,管理这些分区和管理文件是同一个性质。
Fedora 6把各种IDE磁盘设备分配了一个由hd前缀组成的文件,SCSI磁盘设备分配一个由sd前缀组成的文件。例如,第一个IDE设备,Fedora 6定义为hda;第二个IDE设备就定义为hdb;下面的以此类推。而SCSI设备就应该是sda、sdb、sdc等。
要进行分区就必须针对每一个硬件设备进行操作。对于每一个硬盘(IDE或SCSI)设备,Fedora 6 分配了一个1~16的序列号码,这就代表了硬盘上面的分区号码。例如,第一个IDE硬盘的第一个分区,在Fedora 6下面映射为hda1,第二个分区就称作是hda2。对于SCSI硬盘则是sda1、sdb1等。
在Fedora 6中硬盘设备可有多个主分区(其中包含扩展分区)。任何一个扩展分区都要占用一个主分区号码。对于早期的DOS和Windows(Windows 2000 以前的版本),系统只承认一个主分区。用户只能通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。主分区的作用就是计算机用来进行操作系统启动。因此每一个操作系统的启动程序或引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。对于逻辑分区,必须建立在扩展分区上。
在Windows系统中,磁盘碎片是一个常见的问题。如果不注意,磁盘碎片很容易影响系统性能。Fedora 6使用第二扩展文件系统(ext2),它以一种完全不同的方式处理文件存储。Fedora 6没有Windows系统中发现的那种问题,这使得许多人认为磁盘碎片化根本不是一个问题。但是,这是不正确的。
所有的文件系统随着时间的推移都趋向于碎片化。Fedora 6文件系统减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的服务器中,随着长期的磁盘读写,文件碎片化将降低硬盘性能。硬盘性能只有从硬盘读出或写入数据时才能注意到。下面是优化Fedora 6系统硬盘性能的一些具体措施。
这是最简单的方式。清理磁盘驱动器,删除不需要的文件。如果可能的话,清除多余的目录,并减少子目录的数目。通过清理磁盘,释放磁盘空间可以帮助系统更好地工作。
Fedora 6系统上的磁盘碎片整理程序与Windows 98或Windows NT系统中的磁盘碎片整理程序不同。Fedora 6下整理磁盘碎片有很多方法。最好的方法是做一个完全的备份,重新格式化分区,然后从备份恢复文件。当文件被存储时,它们将被写到连续的块中,而不会碎片化。这是一个大工作,可能对于像/usr之类不经常改变的程序分区是不必要的,但是它可以在一个多用户系统的/home分区产生很明显的效果。它所花费的时间与Windows NT服务器磁盘碎片整理花费的时间大致上相同。
使用hdparm工具可以调整IDE硬盘性能。它设计时专门考虑了使用UDMA驱动器。在默认情况下,Fedora 6使用是最安全的,但是访问IDE驱动器是最慢的。默认模式没有利用UDMA传输模式。
注意:在使用hdparm之前,确保对系统已经做了完全的备份。使用hdparm改变IDE参数,如果出错可能会引起驱动器上全部数据的丢失。
hdparm可以提供关于硬盘的大量信息。在命令行中输入下面命令,可以获取系统中第一个IDE驱动器的信息(改变设备名获取其他IDE驱动器的信息)。
hdparm -v /dev/had
上面的命令显示出当系统启动时从驱动器获得的信息,包括驱动器操作在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。
Hdparm也可以测试驱动器传输速率。输入命令测试系统中第一个IDE驱动器。此测试可测量驱动器直接读和高速缓冲存储器读的速度。
hdparm -Tt /dev/hda
改变驱动器设置,激活32位传输,输入下面的命令:
hdparm -c3 /dev/hda
其中-c3参数激活32位支持,使用-c0可以取消它。-c1参数也可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作。
大多数新IDE驱动器支持多部分传输,但是Fedora 6默认设置为单部分传输。注意,这个设置在一些驱动器上,激活多部分传输能引起文件系统的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令激活多部分传输。
hdparm -m16 /dev/hda
-m16参数激活16部分传输。除了西部数据的驱动器外,大多数驱动器设置为16或32部分是最合适的。西部数据的驱动器缓冲区小,当设置大于8部分时性能将显著下降。对西部数据驱动器来说,设置为4部分是最合适的。
激活多部分访问能够减少CPU负载30%~50%,同时可以增加数据传输速率到50%。使用-m0参数可以取消多部分传输。
hdparm还有许多选项可设置硬盘驱动器,在此不详述,读者如有兴趣可以查阅相关资料。
RAID(廉价驱动器的冗余阵列)也可以改善磁盘驱动器的性能和容量。Fedora 6支持软件RAID和硬件RAID。软件RAID嵌入在Fedora 6内核中,比硬件RAID花费要少得多。软件RAID的唯一花费就是购买系统中的磁盘,但是软件RAID不能使硬件RAID的性能增强。硬件RAID使用特殊设计的硬件,控制系统的多个磁盘。硬件RAID比较昂贵,但是可以得到很大的性能改善。RAID的基本思想是组合多个小的、廉价的磁盘驱动器成为一个磁盘驱动器阵列,提供与大型计算机中单个大驱动器相同的性能级别。RAID驱动器阵列对于计算机来说像单独一个驱动器,它也可以使用并行处理。磁盘读写在RAID磁盘阵列的并行数据通路上同时进行。
IBM公司在加利福尼亚大学发起一项研究,得到RAID级别的一个最初定义。现在有6个已定义的RAID级别。
(1)RAID 0:级别0只是数据带。在级别0中,数据被拆分到多于一个的驱动器,得到更高的数据吞吐量。这是RAID的最快和最有效形式。但是,在这个级别没有数据镜像,所以在阵列中任何磁盘的失败将引起所有数据的丢失。
(2)RAID 1:级别1是完全磁盘镜像。在独立的磁盘上创建和支持数据两份拷贝。级别1阵列与一个驱动器相比读速度快、写速度慢,但是如果任一个驱动器错误,不会有数据丢失。这是最昂贵的RAID级别,因为每个磁盘需要第二个磁盘做它的镜像。这个级别提供最好的数据安全。
(3)RAID 2:级别2设想用于没有内嵌错误检测的驱动器。因为所有的SCSI驱动器支持内嵌错误检测,这个级别已过时,基本上没用了。Fedora 6不使用这个级别。
(4)RAID 3:级别3是一个有奇偶校验磁盘的磁盘带。存储奇偶校验信息到一个独立的驱动器上,允许恢复任何单个驱动器上的错误。Fedora 6不支持这个级别。
(5)RAID 4:级别4是拥有一个奇偶校验磁盘的大块带。奇偶校验信息意味着任何一个磁盘失败数据可以被恢复。级别4阵列的读性能非常好,写速度比较慢,因为奇偶校验数据必须每次更新。
(6)RAID 5:级别5与级别4相似,但是它将奇偶校验信息分布到多个驱动器中。这样提高了磁盘写速度。它每兆字节的花费与级别4相同,提高了高水平数据保护下的高速随机性能,是使用最广泛的RAID系统。
软件RAID是级别0,它使多个硬盘看起来像一个磁盘,但是速度比任何单个磁盘快得多,因为驱动器被并行访问。软件RAID可以用IDE或SCSI控制器,也可以使用任何磁盘组合。