| 跳过导航链接 | |
| 退出打印视图 | |
|
Sun QFS 文件系统 5.3 配置和管理指南 Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文) |
Sun QFS 软件允许您指定循环分配方法和分散读写分配方法。下表显示了使用的默认文件分配方法。
表 1-5 默认分配方法
|
元数据的分配方法因文件系统类型不同而有所差异:
对于 ms 文件系统,元数据可跨不同 md 设备进行分配。
对于 ma 文件系统,元数据可跨不同 mm 设备进行分配。在 mm 设备上,不分配文件数据。
Inode 的长度为 512 字节。目录的长度最初为 4 KB。下表显示了系统如何分配元数据。
表 1-6 元数据分配
|
循环分配方法每次将一个数据文件写到系列集中的每个连续设备。循环分配对多数据流很有用,因为在此类环境中,聚集性能可能超过分散读写性能。
循环磁盘分配方法允许将单个文件写入一个逻辑磁盘。下一个文件将写入下一个逻辑磁盘,依此类推。当写入的文件数量等于系列集中定义的设备数量时,文件系统会再次从选定的第一个设备开始。如果文件大小超出物理设备的容量,则文件的第一部分写入第一个设备,文件的剩余部分写入具有可用存储空间的下一个设备。写入文件的大小决定 I/O 的大小。
要显式指定循环分配,请在 /etc/vfstab 文件中包含 stripe=0。
以下几幅图描述了 ms 和 ma 文件系统中的循环分配。在两幅图中,文件 1 写入磁盘 1,文件 2 写入磁盘 2,文件 3 写入磁盘 3,并依次类推。当创建文件 6 时,将其写入磁盘 1,再次开始循环分配方案。
图 1-1 使用五个设备的 ms 文件系统中的循环分配

图 1-2 使用五个设备的 ma 文件系统中的循环分配
默认情况下,Sun QFS 文件系统使用分散读写分配方法,将数据分布到文件系统系列集中的所有设备上。分散读写是一种以交错方式同时在多个设备写入文件的方法。
如果一个文件的处理需要所有设备的共同配合,则使用分散读写。使用分散读写设备的文件系统是以交错方式而不按顺序方式对块进行寻址。分散读写通常可提高性能,因为它允许多个 I/O 流将一个文件同时写入多个磁盘。DAU 和分散读写宽度决定 I/O 传输的大小。
在使用分散读写的文件系统中,文件 1 写入磁盘 1、磁盘 2、磁盘 3、磁盘 4 和磁盘 5。文件 2 也写入磁盘 1 至磁盘 5。DAU 乘以分散读写宽度决定写入块中每个磁盘的数据量。
当文件系统开始将文件写入 md 设备时,它首先尝试将文件写入小 DAU 单元 (4 KB)。如果前八个小 DAU 单元(32 KB)容纳不了文件,则文件系统会将文件的剩余部分写入一个或多个大 DAU 单元中。
当文件系统将文件写入 mr 设备时,它首先写入一个 DAU,然后写入下一个 DAU,依此类推。mr 设备的大小只有一个 DAU 大小。
与循环分配相比,当有多个活动文件时,分散读写分配会导致磁盘的磁头移动更为频繁。如果同时出现多个文件的 I/O 操作,请使用循环分配。
以下几幅图描述了使用分散读写分配的 ms 和 ma 文件系统。在这些图中,文件的 DAU x stripe-width 字节写入磁盘 1,文件的 DAU x stripe-width 字节写入磁盘 2,依此类推。对于文件而言,分散读写的顺序是先进先出。分散读写可将 I/O 负荷分担到所有磁盘。
图 1-3 使用五个设备的 ms 文件系统中的分散读写

图 1-4 使用五个设备的 ma 文件系统中的分散读写
分散读写组是一种 Sun QFS 分配方法。此方法专为有特大 I/O 需求和 TB 级磁盘高速缓存的文件系统而设计。分散读写组允许您指定代表多个物理磁盘的设备类型值。多个分散读写组设备类型条目可组成一个 Sun QFS 文件系统。对于超大型 RAID 配置而言,分散读写组可节约位图空间和系统更新时间。
分散读写组是 Sun QFS 文件系统中设备的集合。分散读写组在 mcf 文件中被定义为 g XXX 设备,它允许在两个或多个设备上写入或读取一个文件。您最多可以在一个文件系统中指定 128 个分散读写组。
下图描述了使用分散读写组和循环分配的 ma 文件系统。在此图中,写入 qfs1 文件系统的文件都以循环方式分配到已定义的分散读写组 g0、g1 和 g2 中。每个组包括两个物理 RAID 设备。
图 1-5 Sun QFS 循环分散读写组
对于图中的配置,/etc/vfstab 中的挂载点选项被设置为 stripe=0。以下示例显示了声明这些分散读写组的 mcf 文件。
示例 1-1 显示分散读写组的 mcf 文件
# Equipment Eq Eq Fam Dev Additional # Identifier Ord Type Set State Parameters # qfs1 10 ma qfs1 /dev/dsk/c0t1d0s6 11 mm qfs1 - /dev/dsk/c1t1d0s2 12 g0 qfs1 - /dev/dsk/c2t1d0s2 13 g0 qfs1 - /dev/dsk/c3t1d0s2 14 g1 qfs1 - /dev/dsk/c4t1d0s2 15 g1 qfs1 - /dev/dsk/c5t1d0s2 16 g2 qfs1 - /dev/dsk/c6t1d0s2 17 g2 qfs1 -
下图描述了使用分散读写组和分散读写分配的 Sun QFS ma 文件系统。写入 qfs1 文件系统的文件都被分散读写到组 g0、g1 和 g2。每组包括四个物理 RAID 设备。/etc/vfstab 中的挂载点选项被设置为 stripe=1 或更高。
图 1-6 Sun QFS 分散读写组分配
可以构建具有不匹配分散读写组(即每组中各个分散读写组的设备数量不同)的文件系统。Sun QFS 文件系统支持不匹配的分散读写组,但不支持在不匹配的组上进行分散读写。具有不匹配分散读写组的文件系统都作为循环文件系统挂载。
注 - 在包含不匹配分散读写组的文件系统上,单个文件无法在多个分散读写组上分配。如果文件所驻留的分散读写组空间已满,则它将无法扩展。如果存在不匹配的分散读写组,请使用 setfa 命令的 -g 选项,直接将文件分配到目标组。有关更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"setfa(1)"。
要确定分散读写组是否已满,请使用 samu 操作员实用程序,并访问 m 显示屏幕以显示海量存储的状态。
下一节的示例显示了如何使用不匹配分散读写组来设置文件系统,从而存储不同类型的文件。
假定您需要在包含视频和音频数据的站点创建文件系统。
由于视频文件非常大,因此要求的系统性能要比音频文件的要求高。考虑到分散读写组在大文件处理方面性能最优,所以您想使用一个大分散读写组在文件系统中存储这些视频文件。
而音频文件则比视频文件小,要求的系统性能相对也较低。因此,您想将音频文件存储在小分散读写组中。一个文件系统可同时支持视频文件和音频文件。
下图描述了所需的文件系统。这是一个通过分散读写分配方法且使用不匹配分散读写组的 ma 文件系统。
图 1-7 在分散读写分配中使用不匹配分散读写组的 Sun QFS 文件系统
下表显示了此文件系统样例的特征。
表 1-7 文件系统样例特征
|
请将下面一行添加到 /etc/vfstab 文件,这样环境便可识别 avfs 文件系统:
avfs - /avfs samfs - no stripe=0
请注意,在 /etc/vfstab 文件中,stripe=0 用于指定循环文件系统。由于不匹配的分散读写组不支持大于 0 的值,因此使用该值。
以下示例显示了文件系统 avfs 的 mcf 文件。
示例 1-2 文件系统 avfs 的 mcf 文件
# Equipment Eq Eq Fam Dev Additional # Identifier Ord Type Set State Parameters # avfs 100 ma avfs /dev/dsk/c00t1d0s6 101 mm avfs - # /dev/dsk/c01t0d0s6 102 g0 avfs - /dev/dsk/c02t0d0s6 103 g0 avfs - /dev/dsk/c03t0d0s6 104 g0 avfs - /dev/dsk/c04t0d0s6 105 g0 avfs - /dev/dsk/c05t0d0s6 106 g0 avfs - /dev/dsk/c06t0d0s6 107 g0 avfs - /dev/dsk/c07t0d0s6 108 g0 avfs - /dev/dsk/c08t0d0s6 109 g0 avfs - # /dev/dsk/c09t1d0s6 110 g1 avfs -
当准备好此文件系统的 mcf 文件后,您可以运行以下示例中显示的 sammkfs 和 mount 命令,以创建并挂载 avfs 文件系统。
示例 1-3 用于创建并挂载文件系统 avfs 的命令
# sammkfs -a 128 avfs # mount avfs
完成文件系统的挂载后,您可以使用以下示例中显示的命令,为两种文件类型创建两个目录。
示例 1-4 用于在文件系统 avfs 中创建目录的命令
# cd /avfs # mkdir video # mkdir audio
创建目录后,您可以使用以下示例中显示的 setfa 命令,为视频分配大分散读写组,为音频分配小分散读写组。由于属性有继承性,因此在这些目录中创建的文件将分配到各自的分散读写组中。
示例 1-5 用于设置文件属性的命令
# setfa -g0 video # setfa -g1 audio
有关 sammkfs 命令的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"sammkfs(1M)"。有关 mount 命令的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"mount_samfs(1M)"。有关 setfa 命令的更多信息,请参见《Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual》中的"setfa(1)"。
如有必要,您可以使用 nalloc 命令(可禁止以后对该设备进行任何分配)来禁用对特定 Sun QFS 数据分区的分配。目前,此功能仅可用于数据分区,而不能用于元数据分区。
可以使用 alloc 或 on 命令重新启动对分区的分配。
分区的分配状态 (allocflag) 在每次引导期间中是不变的。
nalloc 和 alloc 命令可用于 samu 界面,而 samu on 命令也可将分配设置为启用状态。samu 屏幕可显示已禁用分区的 nalloc 状态。samtrace 和 samfsinfo 的输出也包括分配状态。
有关 samu 界面的更多信息,请参见第 13 章。