可以像下面这样减少文件系统碎片:
将文件复制到备份媒体中。
重新创建文件系统,请使用 mkfs fsname 命令或者删除文件系统的内容。
把文件重新装入文件系统
顺序读入文件可减少碎片。
重组文件系统
文件系统碎片整理
重组文件系统
例如,一个拥有独立逻辑卷和文件系统 hd11 的系统(加载点:/home/op)。由于我们决定对文件系统 hd11 进行重组,因此将执行以下步骤:
1. 使用文件名备份文件系统。如果采用 i-node 而不是文件名来备份文件系统, restore 命令会将文件放回原位,这无法解决问题。运行如下命令:
2. # cd /home/op
# find . -print | backup -ivf/tmp/op.backup
这个命令创建了一个备份文件(在另一个文件系统中),包括当前文件系统中所有需要重组的文件。如果系统磁盘空间有限,您可以使用磁带来备份文件系统。
3. 运行如下命令:
4. # cd /
# unmount /home/op
如果有进程使用了 /home/op 或任何它的子目录,您必须在 unmount 命令成功完成之前必须中止这些进程。
5. 在 /home/op 逻辑卷上重新创建文件系统,如下:
# mkfs /dev/hd11
在取消原文件系统之前您将得到配置提示。文件系统名不变。
6. 欲保存原环境(除去 /home/op 为空的情况),运行如下命令:
7. # mount /dev/hd11 /home/op
# cd /home/op
8. 像下面这样保存数据:
# restore -xvf/tmp/op.backup >/dev/null
标准输出被重定向到 /dev/null 显示出来,这是需要花费时间的。
9. 尽早审查大文件如下:
# fileplace -piv big1
我们看到现在它是(几乎是)连续的:
File: big1 Size: 3554273 bytes Vol: /dev/hd11
Blk Size: 4096 Frag Size: 4096 Nfrags: 868 Compress: no
Inode: 8290 Mode: -rwxr-xr-x Owner: hoetzel Group: system
INDIRECT BLOCK: 60307
Physical Addresses (mirror copy 1) Logical Fragment
---------------------------------- ----------------
0060299-0060306 hdisk1 8 frags 32768 Bytes, 0.9% 0008555-0008562
0060308-0061167 hdisk1 860 frags 3522560 Bytes, 99.1% 0008564-0009423
868 frags over space of 869 frags: space efficiency = 99.9%
2 fragments out of 868 possible: sequentiality = 99.9%
-i 选项,我们添加到 fileplace 中的命令表明在文件的前八个块中两两之间存在个单元块的间隙,而在文件剩余部分也包含着一些间接的块,它们是当文件大小超过 8 个块的时候用来补充 i-node 的信息的。
#fileplace -pv dump (这个文件有些不连续了)
File: dump Size: 2571763712 bytes Vol: /dev/fslv01
Blk Size: 4096 Frag Size: 4096 Nfrags: 627872
Inode: 90266 Mode: -rw------- Owner: root Group: system
Physical Addresses (mirror copy 1) Logical Extent
---------------------------------- ----------------
04358720-04358751 hdisk1 32 frags 131072 Bytes, 0.0% 02375712-02375743
04358912-04358943 hdisk1 32 frags 131072 Bytes, 0.0% 02375904-02375935
04364256-04383871 hdisk1 19616 frags 80347136 Bytes, 3.1% 02381248-02400863
04490304-04557279 hdisk1 66976 frags 274333696 Bytes, 10.7% 02507296-02574271
04557312-04557823 hdisk1 512 frags 2097152 Bytes, 0.1% 02574304-02574815
04557856-04557951 hdisk1 96 frags 393216 Bytes, 0.0% 02574848-02574943
04557984-04604287 hdisk1 46304 frags 189661184 Bytes, 7.4% 02574976-02621279
04604512-04605951 hdisk1 1440 frags 5898240 Bytes, 0.2% 02621504-02622943
04605984-04740831 hdisk1 134848 frags 552337408 Bytes, 21.5% 02622976-02757823
04740864-04742495 hdisk1 1632 frags 6684672 Bytes, 0.3% 02757856-02759487
04742528-04817439 hdisk1 74912 frags 306839552 Bytes, 11.9% 02759520-02834431
04817472-04903807 hdisk1 86336 frags 353632256 Bytes, 13.8% 02834464-02920799
04903840-04936287 hdisk1 32448 frags 132907008 Bytes, 5.2% 02920832-02953279
04937056-04939167 hdisk1 2112 frags 8650752 Bytes, 0.3% 02954048-02956159
04966208-05126783 hdisk1 160576 frags 657719296 Bytes, 25.6% 02983200-03143775
627872 frags over space of 768064 frags: space efficiency = 81.7%
15 extents out of 627872 possible: sequentiality = 100.0%
某些文件系统或逻辑卷不应该进行重组因为这些数据或是短暂的(例如 /tmp)或是非文件系统的格式(日志)。根文件系统一般是不经改变的而且极少需要重组。改变只是在安装/维护模式下才发生。同样情况的还有 /usr 因为其中很多文件都需要正常系统操作。
文件系统碎片整理
如果文件系统创建时的分块容量小于 4 KB,那么就有必要定期查询散落的不可用碎片数量。如果有很多的小碎片散落,就很难找到可用的连续空间。
要恢复这些分散的小碎片,可使用 smitty dejfs 命令、smitty dejfs2 命令或 defragfs 命令。碎片整理的过程需要利用到一些空闲磁盘空间。文件系统必须设置为可读写。
文章来源于领测软件测试网 https://www.ltesting.net/