跳过导航链接 | |
退出打印视图 | |
![]() |
Sun QFS 文件系统 5.3 配置和管理指南 Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文) |
Sun QFS 文件系统允许最终用户设置文件和目录的性能属性。应用程序可以按文件或目录启用这些性能特性。您可以按如下方式使用这些功能:
选择文件和目录的文件属性
指定文件的分配方法
预分配文件空间
指定磁盘分散读写宽度
有关实现这些功能的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"setfa(1)"。
setfa 命令可设置新文件或现有文件的属性。如果文件尚不存在,则创建此文件。
您可以设置目录属性,也可以设置文件属性。如果对目录使用 setfa 命令,则在该目录内创建的文件和目录将继承原始目录中设置的属性。要将文件或目录的属性重新设置为默认值,请使用 -d(默认)选项。使用 -d 选项时,首先将属性重新设置为默认值,然后再处理其他属性。
最终用户可以为文件预分配空间。此空间与某个文件相关联,因此文件系统中的其他文件将无法使用已分配给此文件的磁盘地址。预分配可以保证给定文件存在可用空间,从而避免了文件系统满载。预分配是在请求时分配,而不是在数据实际写入磁盘时分配。
请注意,预分配文件空间可能会浪费空间。如果文件大小小于分配量,则内核为文件分配的空间介于当前文件大小和分配量之间。文件关闭时,系统不会释放低于分配量的空间。
通过使用 setfa 命令及其 -L 或 -l(小写字母 L)选项,您可以为文件预分配空间。这两个选项均以文件长度作为其参数。对于现有文件,无论其为空文件还是包含数据的文件,请使用 -L 选项。对于尚无数据的文件,请使用 -l 选项。如果使用 -l 选项,则文件的大小将无法超过其预分配空间的限制。
例如,要预分配名为 /qfs/file_alloc 的 1GB 大小的文件,请键入以下命令:
# setfa -l 1g /qfs/file_alloc
为文件预分配空间后,将文件长度截取为 0 或删除文件将返回分配给文件的全部空间。无法仅将预分配给文件的部分空间返回文件系统。另外,如果使用 -l 选项预分配文件空间,则在以后的操作中无法将该文件扩展为超出其预分配的大小。
默认情况下,文件使用挂载时指定的分配方法和分散读写宽度。请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"mount_samfs(1M)"。但是,最终用户可能希望对文件或目录使用其他分配方案。用户可以使用 setfa 命令及其 -s(分散读写)选项达到此目的。
分配方法包括循环和分散读写。-s 选项指定分配方法和分散读写宽度,如下表所示。
表 7-2 文件分配和分散读写宽度
|
以下示例显示了如何通过指定循环分配方法明确创建文件:
# setfa -s 0 /qfs/100MB.rrobin
以下示例显示如何通过指定分散读写分配方法明确创建文件,分散读写宽度为 64 DAU(未使用预分配):
# setfa -s 64 /qfs/file.stripe
用户可指定在特定的分散读写组上开始分配文件。如果文件分配方法是循环分配,则文件分配在指定的分散读写组。
以下示例显示了 setfa 命令,这些命令指定 file1 和 file2 各自独立地在两个不同分散读写组上分布。
示例 7-2 用于将文件分布在多个分散读写组上的 setfa 命令
# setfa -g0 -s0 file1 # setfa -g1 -s0 file2
对于必须实现接近原始设备速度性能级别的应用程序来说,此功能显得尤其重要。有关更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"setfa(1)"。