JavaScript is required to for searching.
跳过导航链接
退出打印视图
Sun QFS 文件系统 5.3 配置和管理指南     Sun QFS and Sun Storage Archive Manager 5.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  文件系统概述

常规文件系统配置

文件系统特性

卷管理

支持分页和直接 I/O

大容量

快速文件系统恢复

元数据存储

vnode 接口

共享文件系统支持

其他文件系统特性

Sun QFS 文件系统设计基础

inode 文件和文件特征

指定磁盘分配单元

DAU 设置和文件系统的几何结构

msma 文件系统

双重分配方案和单一分配方案

数据对齐

数据磁盘上的分散读写宽度

ms 文件系统上的分散读写宽度

未使用分散读写组的 ma 文件系统上的分散读写宽度

使用分散读写组的 ma 文件系统上的分散读写宽度

元数据磁盘上的分散读写宽度

文件分配方法

元数据分配

循环分配

分散读写分配

分散读写组

不匹配的分散读写组

不匹配的分散读写组示例

按逻辑单元号 (Logical Unit Number, LUN) 进行分配控制

2.  关于主配置文件

3.  mcf 文件示例

4.  配置文件系统

5.  配置共享文件系统

6.  管理文件系统配额

7.  高级文件系统主题

8.  SAM-QFS 中的 SMB 服务

9.  配置 WORM-FS 文件系统

10.  可调参数

11.  将 QFS 文件系统与 SANergy 一起使用 (SAN-QFS)

12.  共享文件系统中的挂载选项

13.  使用 samu 操作员实用程序

文件分配方法

Sun QFS 软件允许您指定循环分配方法和分散读写分配方法。下表显示了使用的默认文件分配方法。

表 1-5 默认分配方法

文件系统
元数据
文件数据
独立的文件系统
分散读写
分散读写
共享文件系统
分散读写
循环
分散读写组
分散读写
循环

元数据分配

元数据的分配方法因文件系统类型不同而有所差异:

Inode 的长度为 512 字节。目录的长度最初为 4 KB。下表显示了系统如何分配元数据。

表 1-6 元数据分配

元数据类型
ma 文件系统的分配增量
ms 文件系统的分配增量
Inode(.inodes 文件)
16 KB DAU
16 KB、32 KB 或 64 KB 的 DAU
间接块
16 KB DAU
16 KB、32 KB 或 64 KB 的 DAU
目录
4 KB 块和 16 KB DAU
4 KB,总量最高可达 32 KB,然后按照 DAU 大小分配

循环分配

循环分配方法每次将一个数据文件写到系列集中的每个连续设备。循环分配对多数据流很有用,因为在此类环境中,聚集性能可能超过分散读写性能。

循环磁盘分配方法允许将单个文件写入一个逻辑磁盘。下一个文件将写入下一个逻辑磁盘,依此类推。当写入的文件数量等于系列集中定义的设备数量时,文件系统会再次从选定的第一个设备开始。如果文件大小超出物理设备的容量,则文件的第一部分写入第一个设备,文件的剩余部分写入具有可用存储空间的下一个设备。写入文件的大小决定 I/O 的大小。

要显式指定循环分配,请在 /etc/vfstab 文件中包含 stripe=0

以下几幅图描述了 msma 文件系统中的循环分配。在两幅图中,文件 1 写入磁盘 1,文件 2 写入磁盘 2,文件 3 写入磁盘 3,并依次类推。当创建文件 6 时,将其写入磁盘 1,再次开始循环分配方案。

图 1-1 使用五个设备的 ms 文件系统中的循环分配

image:使用五个设备的 ms 文件系统中的循环分配

图 1-2 使用五个设备的 ma 文件系统中的循环分配

image:使用五个设备的 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 操作,请使用循环分配。

以下几幅图描述了使用分散读写分配的 msma 文件系统。在这些图中,文件的 DAU x stripe-width 字节写入磁盘 1,文件的 DAU x stripe-width 字节写入磁盘 2,依此类推。对于文件而言,分散读写的顺序是先进先出。分散读写可将 I/O 负荷分担到所有磁盘。

图 1-3 使用五个设备的 ms 文件系统中的分散读写

image:使用五个设备的 ms 文件系统中的分散读写

图 1-4 使用五个设备的 ma 文件系统中的分散读写

image:使用五个设备的ma文件系统中的分散读写

分散读写组

分散读写组是一种 Sun QFS 分配方法。此方法专为有特大 I/O 需求和 TB 级磁盘高速缓存的文件系统而设计。分散读写组允许您指定代表多个物理磁盘的设备类型值。多个分散读写组设备类型条目可组成一个 Sun QFS 文件系统。对于超大型 RAID 配置而言,分散读写组可节约位图空间和系统更新时间。

分散读写组是 Sun QFS 文件系统中设备的集合。分散读写组在 mcf 文件中被定义为 g XXX 设备,它允许在两个或多个设备上写入或读取一个文件。您最多可以在一个文件系统中指定 128 个分散读写组。

下图描述了使用分散读写组和循环分配的 ma 文件系统。在此图中,写入 qfs1 文件系统的文件都以循环方式分配到已定义的分散读写组 g0g1g2 中。每个组包括两个物理 RAID 设备。

图 1-5 Sun QFS 循环分散读写组

image:循环分散读写组

对于图中的配置,/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 文件系统的文件都被分散读写到组 g0g1g2。每组包括四个物理 RAID 设备。/etc/vfstab 中的挂载点选项被设置为 stripe=1 或更高。

图 1-6 Sun QFS 分散读写组分配

image: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 文件系统

image:在分散读写分配中使用不匹配分散读写组的 Sun QFS 文件系统

下表显示了此文件系统样例的特征。

表 1-7 文件系统样例特征

特征
说明
文件系统名称
avfs
分散读写组数量
两组。视频文件组为 g0。音频文件组为 g1
分散读写宽度
0
DAU
128 KB
g0 中的磁盘数量
八个
g0 的最小块大小
8 个磁盘 x 128 KB DAU = 1024 KB。即一个块写入操作所写入的数据量。每个磁盘接收 128 KB 数据,因此一次写入所有磁盘的数据总量为 1024 KB。
g1 中的磁盘数量
一个
g1 的最小块大小
1 个磁盘 x 128 KB DAU = 128 KB

请将下面一行添加到 /etc/vfstab 文件,这样环境便可识别 avfs 文件系统:

avfs    -    /avfs    samfs    -    no    stripe=0

请注意,在 /etc/vfstab 文件中,stripe=0 用于指定循环文件系统。由于不匹配的分散读写组不支持大于 0 的值,因此使用该值。

以下示例显示了文件系统 avfsmcf 文件。

示例 1-2 文件系统 avfsmcf 文件

# 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 文件后,您可以运行以下示例中显示的 sammkfsmount 命令,以创建并挂载 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)"

按逻辑单元号 (Logical Unit Number, LUN) 进行分配控制

如有必要,您可以使用 nalloc 命令(可禁止以后对该设备进行任何分配)来禁用对特定 Sun QFS 数据分区的分配。目前,此功能仅可用于数据分区,而不能用于元数据分区。

可以使用 allocon 命令重新启动对分区的分配。

分区的分配状态 (allocflag) 在每次引导期间中是不变的。

nallocalloc 命令可用于 samu 界面,而 samu on 命令也可将分配设置为启用状态。samu 屏幕可显示已禁用分区的 nalloc 状态。samtracesamfsinfo 的输出也包括分配状态。

有关 samu 界面的更多信息,请参见第 13 章