跳过导航链接 | |
退出打印视图 | |
![]() |
Sun QFS 文件系统 5.3 配置和管理指南 Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文) |
Sun QFS 文件系统是多线程的高级存储管理系统。为最大限度地利用该软件的功能,请尽可能创建多个文件系统。
Sun QFS 文件系统使用线性搜索方法执行目录查找(从目录的起点搜索至目录的终点)。在目录中的文件数量增加时,搜索整个目录所用的时间也会随之增加。如果用户的目录中有成千上万个文件,则搜索时间会相当长。同样,在恢复文件系统时也会明显感觉到搜索时间相当长。为提高性能、加快文件系统转储和恢复的速度,应将目录中文件的数量保持在 10,000 个以内。
目录名称查找高速缓存 (directory name lookup cache, DNLC) 功能可提高文件系统性能。该高速缓存中储存路径较短(小于或等于 30 个字符)的文件的查找信息,对于这些目录不必再从头查起。
文件系统中要存储的文件类型会影响到文件系统的设计。一个 inode 是具有 512 字节的信息块,描述文件或目录的特征。此信息在文件系统内动态分配。
Inode 存储在文件系统挂载点下的 .inodes 文件中。与标准 Oracle Solaris OS 的 inode 相同,Sun QFS 文件系统 inode 包含文件的 POSIX 标准 inode 时间信息:文件访问时间、文件修改时间和 inode 更改时间。Sun QFS 文件系统 inode 还包含其他时间信息,如下表中所示。
表 1-1 .inode 文件的内容
|
。
分配磁盘空间时,以称为磁盘分配单元 (DAU) 的联机磁盘存储器为基本单位。扇区、磁道和柱面描述了物理磁盘的几何结构,而 DAU 则描述了文件系统的几何结构。选择适当的 DAU 大小和分散读写大小可以提高性能,并优化磁盘使用。DAU 设置是分配文件时使用的最小邻近空间量。
Sun QFS 文件系统使用可调整的 DAU。您可以配置 DAU 来调整文件系统,使其与物理磁盘存储设备相匹配。此特性可将读取-修改-写入操作带来的系统开销降至最低,因此对于处理大型文件的应用程序非常有用。有关如何控制读取-修改-写入操作的信息,请参见增强大型文件的文件传输性能。
每个文件系统都可以有其唯一的 DAU 设置,即使同一服务器上多个活动的已挂载文件系统之间也是如此。根据您所使用的文件系统的类型差异,可能的 DAU 设置会有所不同。DAU 设置是在创建文件系统时通过《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"sammkfs(1M)"确定的。它不能动态更改。
DAU 设置要与主配置 (mcf) 文件中指定的设备和文件系统定义一起配合使用。有关 mcf 文件的详细信息,请参见第 2 章和《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"mcf(4)"。
有两个文件分配方案可供使用:
ms 文件系统类型-文件系统数据和文件系统元数据位于同一设备
ma 文件系统类型-文件系统数据和文件系统元数据位于不同的设备上
对于简单的 Sun QFS 文件系统(例如,在单个分区上),文件系统是在 mcf 文件中由 ms 的设备类型值定义的。在 ms 文件系统中,仅允许使用 md 设备类型,它将元数据和文件数据都写入 md 设备。默认情况下,md 设备上的 DAU 是 64 KB。
在多个分区上安装的较复杂 Sun QFS 文件系统在 mcf 文件中被定义为设备类型 ma。在 ma 文件系统中,元数据写入 mm 设备,数据可以写入 md、mr 或 g XXX 设备。
在 ma 文件系统中,您可以配合使用以下设备:
mm 和 mr 设备
mm 和 g XXX 设备
mm、mr 和 g XXX 设备
mm 和 md 设备
有关这些设备类型的更多信息,请参见第 2 章。
md 和 mm 设备使用双重分配方案,如下所示:
在 md 数据设备上,小分配单位为 4 KB,大分配单位为一个 DAU。默认 DAU 大小是 64 KB。在使用 sammkfs 命令的 -aallocation-unit 选项对文件系统进行初始化时,您可以覆盖此默认设置。DAU 大小可以为 16、32 或 64 KB。
在 md 设备上创建文件时,系统将文件的前八个地址分配在小分配单位中。如果需要更多空间,则文件系统使用一个或多个大分配单位 (DAU) 扩展文件。这样,在将由许多小文件产生出来的磁盘碎片降到最低的同时,提高了大文件的 I/O 处理性能。
在 mm 元数据设备上,小分配单位是 4 KB,大分配单位是 16 KB。双重分配方案使系统可以更有效地将元数据写入磁盘,并有助于将磁盘碎片降到最低。
根据文件系统所存储的文件数据的具体类型,较大的 DAU 大小可显著提高文件系统性能。有关调整文件系统性能的信息,请参见第 7 章。
只有 ma Sun QFS 文件系统可以包含使用单一分配方案的设备。这些文件系统由相互独立的元数据设备和数据设备组成,如下所示:
元数据设备只能定义为设备类型 mm。
数据设备可定义为设备类型 md、mr 或 g XXX。md 设备的 DAU 大小仅限于 16 KB、32 KB 或 64 KB。
mr 和 g XXX 设备遵循单一分配方案。您可以在文件系统中将 mr 和 g XXX 设备配合使用,但不能将 md 设备与 mr 或 g XXX 设备配合使用。对于 ma 文件系统中的设备,mr 和 gXXX 设备可以设置为最小 8 KB 的 DAU 分配。对于大多数文件大小等于或小于 8 KB 的工作负荷,该设置为最佳设置。
使用 mr 和 g XXX 数据设备的文件系统的 DAU 大小是可配置的。可在数据设备上使用的 DAU 大小取决于 mcf 文件中分配给每个数据设备的设备类型值。下表显示了这些 DAU 大小。
表 1-2 设备类型值和 DAU 大小
|
注 - 如果曾使用该软件的版本 3.5 创建文件系统,或使用该软件版本 4 中的 sammkfs 兼容模式标志构建了文件系统,则意味着使用的可能是第 1 版超级块。在第 1 版超级块中,mm 设备不使用双重分配方案。mm 设备的分配为 16 KB。只有在第 2 版超级块中,您才可以在 Sun QFS 文件系统中定义 md 设备。要查明是否在使用第 1 版超级块,请使用 samfsinfo 命令。
数据对齐指将RAID 控制器的分配单元与文件系统的分配单元相匹配。最佳的文件系统对齐公式如下:
allocation-unit = RAID-stripe-width x number-of-data-disks(分配单元 = RAID 分散读写宽度 x 数据磁盘数)
例如,假设 RAID-5 单元有九块磁盘,其中一块是奇偶校验磁盘,则数据磁盘数量为 8。如果 RAID 分散读写宽度为 64 KB,则最佳分配单元为 64 乘以 8,即为 512 KB。
对于数据文件,则是通过分散读写模式或循环模式在同一文件系统中的每个分散读写组 (gXXX) 或数据磁盘(mr 或 md)中进行分配的。
由于不匹配的对齐可导致读取-修改-写入操作,因此它对性能有负面影响。
ms 和 ma 文件系统的默认分散读写宽度不同。分散读写宽度由 mount 命令的 -o stripe= n 选项指定。分散读写宽度设为 0 时使用循环分配。
在 ms 文件系统上,分散读写宽度在挂载时设置。下表显示了默认的分散读写宽度。
表 1-3 ms 文件系统的默认分散读写宽度
|
例如,如果在默认设置下运行 sammkfs 命令,则默认的大 DAU 为 64 KB。如果在运行 mount 命令时未指定分散读写宽度,则会使用默认值,在挂载时将分散读写宽度设为 2。
注 -
要在 ms 文件系统的磁盘中分散读写元数据信息,请将分散读写宽度设置为大于零。
如果将表 1-3 中第一列的数值与第二列的数值相乘,则得出的结果为 128 KB。如果写入磁盘的数据量不低于 128 KB,则 Sun QFS 文件系统可最有效地运行。
在 ma 文件系统上,具体在挂载时设置怎样的分散读写宽度取决于是否配置了分散读写组。分散读写组是一组设备的集合、这些设备以单个组的形式对数据进行分散读写。有关分散读写组的更多信息,请参见文件分配方法。本节描述了未使用分散读写组配置的 Sun QFS 文件系统的分散读写宽度。
如果未配置分散读写组,则 ma 文件系统上 DAU 和分散读写宽度的关系类似于 ms 文件系统上 DAU 和分散读写宽度的关系。差别在于,前者的 DAU 可大于 64 KB,而且可以按 8 KB 块增量进行配置。DAU 大小的最大值为 65,528 KB。
在默认情况下,如果不指定分散读写宽度,则写入磁盘的数据量为 128 KB 或接近 128 KB。如果对于每个 I/O 请求,写操作至少可写入一个完整的分散读写单元,则 Sun QFS 文件系统将最有效。下表显示了默认的分散读写宽度。
表 1-4 未使用分散读写组的 ma 文件系统上的默认分散读写宽度
|
如果在文件系统配置了分散读写组,则可分配的最小空间量为 DAU 大小乘以分散读写组中的设备数。使用分散读写组时分配量可以非常大。
如果使用分散读写组,数据一次可写入几个磁盘设备,就好像这些是一个设备。分散读写组上的分配等于 DAU 大小乘以分散读写组中的元素数量。
-o stripe= n 挂载选项决定了在分配转到不同分散读写组之前每个分散读写组上可发生的分配数。如果使用 -o stripe=0 挂载文件系统,则分配始终面向一个分散读写组。
在默认情况下,设置为 -o stripe=0,即指定循环分配方法。设置值最低可以为 -o stripe=0(禁用分散读写),最高为 -o stripe=255。如果存在不匹配的分散读写组,系统将设置 -o stripe=0。此时,文件只能驻留在一个分散读写组上。
有关更多信息,请参见文件分配方法。
可以使用 mount_samfs 命令的 -o mm_stripe= n 选项,在元数据磁盘上分散读写元数据信息。默认的分散读写宽度是 -o mm_stripe=1,表示文件系统在转到下一个元数据磁盘前,将一个 16 KB 的 DAU 写入元数据磁盘。较小的 4 KB DAU 用于元数据磁盘。
在默认情况下,如果有多个元数据设备,则元数据按 mount 命令的 - o mm_stripe= n 选项指定的内容进行分配。设置值最低可以为 -o mm_stripe=0(禁用分散读写),最高为 -o mm_stripe=255。