defragfs 命令

用途

增加文件系统的邻接可用空间。

语法

defragfs [ -q | -r | -s] [-f [-v] [-y]] { Device | FileSystem }

描述

defragfs 命令通过重新组织分配使空间邻接而不是散布在整个磁盘从而增加了文件系统邻接可用空间。 要整理碎片的文件系统可以通过指定 Device 变量来指定,它是逻辑卷的路径名(例如 /dev/hd4 )。 它同样可以用 FileSystem 变量来指定,它是 /etc/filesystems 文件中的安装点。

defragfs 命令用于片段和压缩的文件系统。 然而,您可以使用 defragfs 命令来增加无碎片文件系统的邻接可用空间。

您必须安装文件系统的读写以便成功地运行此命令。 使用 -q-r-s 标志生成一个分解片段报告。 这些标志不会更改文件系统。

对于带有快照的增强日志文件系统(JFS2 文件系统),defragfs 命令运行速度很慢,因为必须复制到快照存储对象的数据量很大。 如果存在快照,defragfs 命令将会发出一个警告消息。 snapshot 命令可以用来删除快照,然后在 defragfs 命令完成之后再次使用该命令以创建一个新的快照。

在 JFS2 文件系统上,可以使用 defragfs 命令指定 -f 标志,以通过将数据扩展数据块重新定位为相邻数据块,然后进行组合来对文件系统进行碎片整理。 此外,如果指定 -v 标志,那么 defragfs 命令还会在运行 defragfs 命令之前和之后显示文件系统的碎片。 -f-v-y 标志只能在 JFS2 文件系统上使用。 -v 标志仅与 -f 标志兼容。

如果与 -f 标志一起使用,那么 defragfs 命令需要更多时间来运行。 建议在维护时间段内运行 defragfs 命令。

任何文件系统活动都可能降低整理碎片进程的性能。

如果逻辑卷部分或全部位于固态驱动器 (SSD) 上,那么 defragfs 命令可能无法大幅改进文件系统的性能。

如果系统中存在内部快照,那么 defragfs 命令无法运行。 如果系统中存在外部快照,那么 defragfs 命令会发出警告消息,除非 defragfs 命令运行时带有 -f 标志。 如果 defragfs 命令在运行时带有 -f 标志,那么 defragfs 命令无法与外部快照一起运行。 在带有快照的 JFS2 文件系统上运行时,defragfs 命令运行耗时很长,因为必须复制到快照存储对象的数据量很大。 snapshot 命令可以用来删除快照,然后在 defragfs 命令完成之后 snapshot 命令可再次用来创建新的快照。

在未与其他文件系统共享日志卷的文件系统上运行时,defragfs 命令显示更好的性能。 如果 defragfs 命令在与其他文件系统共享日志卷的文件系统上运行,那么 defragfs 命令显示警告并请求确认。 如果运行 defragfs 命令时带有 -y 标志,那么它会禁止显示警告。 -y 标志仅与 -f 标志兼容。

标志

描述
-f 重定位并组合文件系统中每个文件的数据块。 此进程将文件组织的优先级设置为高于文件系统可用空间邻近性的优先级。
-q 报告文件系统的当前状态。
-r 报告文件系统的当前状态以及如果运行 defragfs 命令时不使用 -q-r-s 标志将产生的状态。
-s 报告文件系统中的分解片段。 该选项将使 defragfs 通过文件系统中可能导致降低性能的元数据。
-v 在整理碎片操作的开头和结尾显示文件系统的碎片百分比。
-y 当前使用同一日志卷安装多个文件系统时,禁止 defragfs 命令显示的警告消息。 禁止警告消息时,defragfs 命令操作会继续运行而没有任何中断。
注: -v-y 标志只能与 -f 标志一起使用。

输出

在 JFS 文件系统中,由 defragfs 命令报告的消息定义如下所示:
可用片段的数量
文件系统中可用片段的数量。
已分配片段的数量
文件系统中已分配片段的数量。
小于一个块的可用空间的数量
文件系统中小于一个块的可用空间的数量。 可用空间是一组没有被分配的邻接片段。
小的可用空间中可用片段的数量
所有小的可用空间的片段总数。 小的可用空间是指小于一个块的空间。
移动的片段数量
移动的片段总数。
移动的逻辑块的数量
移动的逻辑块的总数。
试图分配空间的次数
重新分配可用片段的次数。
精确匹配的数量
移动的片段正好适合某个可用空间的次数。
片段的总数
文件系统中片段总数。
可以被迁移的片段的数量
整理碎片过程中可以被移动的片段的数量。
文件系统的碎片百分比
用百分比显示文件系统的片段范围。
在 JFS2 文件系统和,由 defragfs 命令报告的消息定义如下所示:
总的分配组
文件系统中分配组的数量。 分配组将文件系统空间分成了若干大块。 分配组允许 JFS2 资源分配策略使用常见方法获得好的 I/O 性能。
有碎片的分配组
具有碎片的分配组的组数。
跳过的分配组 - 完全可用
因为空间完全可用而跳过的分配组的组数。
跳过的分配组 - 太少的可用块
因为太少可用块可重新分配而跳过的分配组的组数。
分配组跳过 - 含有大的邻接可用空间
跳过分配组(因为包含大的邻接可用空间而不值得整理碎片)的数目。
分配组作为磁盘整理的候选
适合进行磁盘碎片整理的分配组的数量。
候选分配组中的平均可用运行空间数
适合整理碎片的分配组中平均每一分配组的自由运行空间数。 可用运行空间是那些没有分配的邻接块的集合。
块总数
文件系统中总的模块数。
可以被迁移的块数
整理碎片过程中可以被迁移的块的数量。
文件系统的碎片百分比
用百分比显示文件系统的片段范围。
文件系统中的碎片百分比:percentage
运行 defragfs 命令之前和之后文件系统中的碎片百分比。 以下示例显示文件系统中的碎片百分比:
# defragfs -fv /exampleFS
File fragmentation before defrag: 100.00%
File fragmentation after defrag: 0.00%

安全性

RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。

示例

  1. 要对位于 /dev/lv00 逻辑卷上的 /data1 文件系统进行碎片整理,请输入:
    defragfs /dev/lv00
  2. 要通过指定 /data1 文件系统的安装点来对其进行碎片整理,请输入:
    defragfs /data1
  3. 要在 /data1 文件系统上生成报告以指示其当前状态以及经过碎片整理后的状态,请输入:
    defragfs  -r /data1
  4. 要生成关于 /data1 文件系统分解片段的报告,请输入:
    defragfs -s /data1

文件

描述
/etc/filesystems 列出已知文件系统并定义其特征。