title: '为何linux系统没有磁盘磁片,和选择ssd的优点.'
tags:
- linux
- 好处
id: 63
categories: - linux的学习记录
date: 2015-08-21 14:01:38
如果你是一个Linux用户,你可能听说过,不需要对你的Linux文件系统进行碎片整理。你可能还会注意到,Linux发行版并没有附带磁盘碎片整理工具。这是为什么呢?想要知道为什么在正常使用中,Linux文件系统不需要进行碎片整理,而Windows要。你需要了解为什么会生成碎片,而Linux和Windows这两个文件系统,它们分别是如何工作的。
什么是碎片
许多Windows用户,即使没有太多经验,我相信他们也会定期进行碎片整理,来加速其电脑为什么要这么做,许多人也不知道。
简单的说,每个硬盘驱动器有许多的扇区,每一个扇区都可以包含一些小的数据片段。对于特别大的文件,就必须存储在许多不同的扇区里。再比方说文件系统中保存的一些不同的文件,其中每个文件都将存储在连续空间的扇区里。后来,你更新你原先保存的文件,增加文件的大小。文件系统将会尝试存储文件的新增部分到原先扇区空间的旁边。不幸的是,如果没有足够的连续空间,该文件必须被分割成多个片段 — 这就碎片生成的原因。当你的硬盘读取文件的时候,磁头必须跳过硬盘上不同的物理位置之间来读取每个扇区的数据 — 这就是变慢的原因。
碎片整理是一个集中的过程,移动比特文件,以减少碎片,确保每个文件在驱动器上是连续的。
当然,固态硬盘不同,它没有移动部件,不应该进行碎片整理 - 对SSD进行磁盘整理实际上会减少其使用寿命。此外,最新版本的Windows上,你不需要担心整理你的文件系统碎片 - Windows会自动帮你做。
Windows文件系统是如何工作的
微软旧的FAT文件系统,最后一次看到默认在Windows 98和ME,现在也使用在USB闪存盘上,它不能智能安排文件。当你保存文件到FAT文件系统上,它会尽可能将其保存在接近磁盘开始的空间上。当你保存第二个文件,它会保存紧接在第一个文件的后面, 以此类推。当原始文件大小增长,附近没有空闲空间为他们增长,他们总是会生成碎片。
微软新的NTFS文件系统,使用在Windows XP和2000上,似乎变得更智能一点儿,它给硬盘上的文件周围分配了更多的“缓冲”自由空间。虽然,任何Windows用户可以告诉你,随着时间的推移,NTFS文件系统仍然会生成碎片。
由于使用这些文件系统进行工作,他们需要进行碎片整理,以确保其性能不下降。微软最新版本的Windows可以在后台定时运行碎片整理来缓解了这个问题。
Linux文件系统是如何工作的
Linux有ext2、ext3和ext4文件系统,ext4文件系统使用在fedora和其他当前的Linux发行版本中,它有着更智能的文件分配方式,而不是将多个文件相互靠近放在硬盘上。Linux文件系统分散在不同的文件磁盘,并留下了大量的自由空间。当一个文件需要编辑增长,通常是会有足够的空闲空间。如果碎片确实发生,文件系统将会试图移动文件,来减少碎片。在正常使用情况下,不需要碎片整理工具。
如果你的文件系统已满或是95%(甚至80%),你才可能开始看到一些碎片。总之,文件系统的设计,在正常使用过程中可以避免碎片的生成。
如果你的Linux上有碎片问题,你可能需要一个更大的硬盘。如果你确实需要整理文件系统,最简单的、最可靠的方法可能是:从分区中复制备份所有的文件,再从分区中清除所有文件,然后在将文件复制回到分区。这样文件系统将会智能地分配文件复制到磁盘上。
你也可以使用 fsck 命令衡量Linux文件系统的碎片 - 寻找输出“非相邻节点”。
机械硬盘和固态硬盘的区别:
固态硬盘的数据存储方式和传统硬盘有本质的区别,比如为了防止频繁读取某存储而导致快速老化,固态硬盘往往使用“损耗平衡”机制,将读写各个区块的次数平均化。
磁盘整理程序的主要原理是,将硬盘上零散的数据有序的进行排列,以减少寻址时间,提高磁盘的访问速度。而ssd的电子读写原理决定,它没有机械硬盘的磁头驱动机构,能够非常快速的找到任何一块数据,寻址时间几乎可以忽略不计,目前的磁盘整理工具对优化固态硬盘的文件系统就显得无能为力了。因此,我目前的建议是,固态硬盘用户不必使用磁盘碎片整理功能。