Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
全局文件系统 2
Red Hat Enterprise Linux 5
红帽全局文件系统 2
版 3
摘要
本书提供了有关为红帽企业版 Linux 5 安装、配置和维护红帽 GFS2(红帽全局文件系统 2)的信息。
简介
欢迎进入《全局文件系统配置及管理》文档。本书提供有关配置及维护红帽 GFS2(红帽全局文件系统 2)的信息。红帽 GFS2 可在单一节点或者作为 RHEL 5.3 以及之后版本的红帽群集套件中群集配置的一部分运行。有关红帽群集套件的详情请参考《红帽群集套件总览》以及《配置和管理红帽群集》。
所有官方红帽企业版 Linux 手册和发行注记的 HTML 以及 PDF 版本都可以在线查询,地址 http://www.redhat.com/docs/。
1. 读者
本书主要面向熟悉以下活动的 Linux 系统管理员:
- Linux 系统管理流程,其中包括内核配置。
- 安装和配置共享存储网络,比如光纤通道 SAN。
2. 相关文档
有关使用红帽企业版 Linux 的详细信息请参考以下资源:
- 《红帽企业版 Linux 安装指南 — 提供关于安装红帽企业版 Linux 的信息。
- 《红帽企业版 Linux 部署指南》 — 提供关于部署、配置及管理红帽企业版 Linux 5 的信息。
有关使用红帽群集套件的详细信息请参考以下资源:
- 《红帽群集套件总览》 — 提供红帽群集套件的高级总览。
- 《配置和管理红帽群集》 — 提供有关安装、配置和管理红帽群集组件的信息。
- LVM Administrator's Guide: Configuration and Administration — Provides a description of the Logical Volume Manager (LVM), including information on running LVM in a clustered environment.
- 《全局文件系统:配置和管理》 — 提供有关安装、配置和维护红帽 GFS(红帽全局文件系统)的信息。
- 《使用设备映射器多路径》 — 提供有关使用红帽企业版 Linux 设备映射器多路径特性的信息。
- 《使用带全局文件系统的 GNBD》 — 提供使用带红帽 GFS 的全局网络块设备(GNBD)的总览。
- 《Linux 虚拟服务器管理》 — 提供使用 Linux 虚拟服务器(LVS)配置高性能系统和服务的信息。
- 《红帽群集套件发行注记》 — 提供有关红帽群集套件的当前发行版本。
在Red Hat Enterprise Linux 文档光盘和在线文档 http://www.redhat.com/docs/ 中都含有Red Hat Cluster Suite文档和其它 Red Hat 文档的 HTML、PDF 和 RPM 版本。
3. 反馈
我们很乐于了解您有关打印错误或者可使本手册发挥更好作用的想法。请在 Bugzilla(http://bugzilla.redhat.com/bugzilla/)中根据
rh-cs
提交您的报告。
Be sure to mention the manual's identifier:
rh-gfs2(EN)-5 (2009-01-05T15:15)
By mentioning this manual's identifier, we know exactly which version of the guide you have.
如果您有任何可改进此文档的建议,请尽量说得具体一些。如果您发现任何错误,请将错误所在部分号码以及上下文包括在内,以便我们比较容易找到这些错误之处。
第 1 章 GFS2 总览
红帽 GFS2 文件系统是固有文件系统,直接和 Linux 内核文件系统界面(VFS 层)相接。GFS2 文件系统可作为单独的系统使用,也可作为群集配置的一部分。当作为群集文件系统使用时,GFS2 采用分布式元数据和多日志。
A GFS2 file system can be created on an LVM logical volume. A logical volume is an aggregation of underlying block devices that appears as a single logical device. For information on the LVM volume manager, see the LVM Administrator's Guide.
GFS2 是基于 64 位构架,理论上可提供 8 EB 文件系统。但是,目前支持的最大 GFS2 文件系统为 25 TB。如果您的系统要求使用 25 TB 以上的 GFS2 文件系统,请联络您的红帽服务代表。
当决定您的文件系统大小时,您应该考虑您的恢复需求。在一个很大的文件系统中运行
fsck
命令需要很长时间且消耗大量内存。另外,在磁盘或者磁盘子系统失败事件中,恢复时间受您的备份介质速度的限制。
当在红帽群集套件中进行配置时,可使用红帽群集套件配置和管理工具配置和管理红帽 GFS2 节点。然后红帽 GFS2 会提供在红帽群集的 GFS2 节点间共享的数据,即在 GFS2 节点间单一、一致的文件系统名称查看。这样就允许不同节点中的进程可以与在本地文件系统中同一节点中的进程相同的方法共享 GFS2 文件,其中没有明显的差别。有关红帽群集套件的详情请参考《配置和管理红帽群集》。
LVM logical volumes in a Red Hat Cluster suite are managed with CLVM, which is a cluster-wide implementation of LVM, enabled by the CLVM daemon,
clvmd
running in a Red Hat Cluster Suite cluster. The daemon makes it possible to use LVM2 to manage logical volumes across a cluster, allowing all nodes in the cluster to share the logical volumes. to any directory on your system. For information on the LVM volume manager, see the LVM Administrator's Guide.
gfs2.ko
内核模块部署 GFS2 文件系统,并在 GFS2 群集节点中载入。
本章提供一些作为背景资料的基本简短资料以便帮助您了解 GFS2,其中包括以下部分:
1.1. 设定 GFS2 前
在您安装和设定 GFS2 之前,请记录您的 GFS2 文件系统的以下重要特性:
- GFS 节点
- 决定红帽群集套件中的哪个节点将挂载 GFS2 文件系统。
- 文件系统数
- 决定最初创建多少个 GFS2 文件系统(以后可以添加更多的文件系统)。
- 文件系统名称
- 为每个文件系统决定一个特定的名称。该名称必须与群集中的所有
lock_dlm
文件系统以及每个本地节点中的所有文件系统(lock_dlm
和lock_nolock
)不同。以参数变量的格式要求每个文件系统名称。例如:在本书的一些示例步骤中使用文件系统名称mydata1
和mydata2
。 - 日志
- Determine the number of journals for your GFS2 file systems. One journal is required for each node that mounts a GFS2 file system. GFS2 allows you to add journals dynamically at a later point as additional servers mount a filesystem. For information on adding journals to a GFS2 file system, see 第 3.6 节 “在文件系统中添加日志”.
- GNBD 服务器节点
- 如果您正在使用 GNBD,就要确定您需要多少个 GNBD 服务器节点。请注意每个用来设定 GNBD 客户端的 GNBD 服务器的主机名和 IP 地址。有关使用带 GFS2 的 GNBD 的详情请参考《使用带全局文件系统的 GNBD》文档。
- 存储设备和分区
- 确定用于在文件系统中创建逻辑卷(使用 CLVM)的存储设备和分区。
注意
当同时在同一个目录中进行多个生成和删除操作时,您可能会看到 GFS2 的性能下降。如果这导致您系统性能出现问题,您应该尽量将某个节点中的文件生成和删除定位到特定目录。
1.2. GFS 和 GFS2 之间的差别
这部分列出了相比 GFS,GFS2 提供的改进和不同。
Migrating from GFS to GFS2 requires that you convert your GFS file systems to GFS2 with the
gfs2_convert
utility. For information on the gfs2_convert
utility, see 附录 A, 将文件系统从 GFS 转换为 GFS2.
1.2.1. GFS2 命令名称
In general, the functionality of GFS2 is identical to GFS. The names of the file system commands, however, specify GFS2 instead of GFS. 表 1.1 “GFS 和 GFS2 命令” shows the equivalent GFS and GFS2 commands.
表 1.1. GFS 和 GFS2 命令
GFS 命令 | GFS2 命令 | 描述 | ||||
---|---|---|---|---|---|---|
mount | mount | 挂载文件系统。 系统可以确定文件系统的类型是 GFS 还是 GFS2。有关 GFS2 挂载选项的详情请参考 gfs2_mount(8) man page。 | ||||
umount | umount | 卸载文件系统 | ||||
|
| 检查并修复卸载的文件系统。 | ||||
gfs_grow | gfs2_grow | 增大挂载的文件系统。 | ||||
gfs_jadd | gfs2_jadd | 在某个挂载的文件系统中添加日志 | ||||
|
| 在存储设备中创建文件系统。 | ||||
gfs_quota | gfs2_quota | 在挂载的文件系统中管理配额。 | ||||
gfs_tool | gfs2_tool | 配置、调试文件系统或者收集有关文件系统的信息。 | ||||
gfs_edit | gfs2_edit | 显示、输出或者编辑文件系统内部结构。gfs2_edit 命令可用于 GFS 文件系统,也可用于 GFS2 文件系统。 |
GFS2 文件系统命令支持选项的完整列表请参考那些命令的 man page。
1.2.2. GFS 和 GFS2 之间的其它不同之处
This section summarizes the additional differences in GFS and GFS2 administration that are not described in 第 1.2.1 节 “GFS2 命令名称”.
上下文关联路径名
GFS2 file systems do not provide support for context-dependent path names, which allow you to create symbolic links that point to variable destination files or directories. For this functionality in GFS2, you can use the
bind
option of the mount
command. For information on managing pathnames in GFS2, see 第 3.11 节 “绑定挂载以及上下文关联路径名”.
gfs2.ko 模块
使用 GFS 文件系统的内核模块是
gfs.ko
。使用 GFS2 文件系统的内核模块是 gfs2.ko
。
在 GFS2 中启用配额强制
In GFS2 file systems, quota enforcement is disabled by default and must be explicitly enabled. To enable and disable quotas for GFS2 file systems, you use the
quota=on|off|account
option for the mount
command. For information on enabling and disabling quota enforcement, see 第 3.4.4 节 “启用/禁用配额强制”.
数据日志
GFS2 file systems support the use of the
chattr
command to set and clear the j
flag on a file or directory. Setting the +j
flag on a file enables data journaling on that file. Setting the +j
flag on a directory means "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. Using the chattr
command is the preferred way to enable and disable data journaling on a file.
动态添加日志
In GFS2 file systems, journals are plain (though hidden) files instead of embedded metadata. This means that journals can be dynamically added as additional servers mount a filesystem. For information on adding journals to a GFS2 file system, see 第 3.6 节 “在文件系统中添加日志”.
删除 atime_quantum 参数
GFS2 文件系统不支持
atime_quantum
可调节参数,GFS 文件系统可使用该参数指定 atime
更新的频率。在 GFS2 中支持 relatime
和 noatime
挂载选项。建议您使用 relatime
挂载选项获得与在 GFS 中使用 atime_quantum
参数时得到的类似行为。
mount 命令的 data= 选项
在挂载 GFS2 文件系统时,您可以指定
mount
命令的 data=ordered
或者 data=writeback
选项。当设定 data=ordered
时,传输中修改的用户数据会在传输被递交到磁盘前被冲入磁盘。这样可以让用户无法在崩溃后的文件中看到未初始化的块。设定 data=writeback
时,用户数据会在磁盘有数据后的任何时候被写入磁盘。这样无法提供 ordered
模式可提供的一致性保障,但对某些工作负载来说可稍微加快一些速度。默认设置是 ordered
模式。
gfs2_tool 命令
gfs2_tool
为 GFS2 支持的选项组与 gfs_tool
命令为 GFS 支持的选项组不同:
gfs2_tool
命令支持journals
参数,它可输出当前配置日志有关信息,其中包括文件系统包含的日志数。gfs2_tool
命令不支持counters
标签,而gfs_tool
命令可使用该标签显示 GFS 统计。- The
gfs2_tool
command does not support theinherit_jdata
flag. To flag a directory as "inherit jdata", you can set thejdata
flag on the directory or you can use thechattr
command to set the+j
flag on the directory. Using thechattr
command is the preferred way to enable and disable data journaling on a file.
gfs2_edit 命令
gfs2_edit
命令为 GFS2 支持的选项组与 gfs_edit
命令为 GFS 支持的选项组不同。
1.2.3. GFS2 性能改进
GFS2 文件系统的很多特性和 GFS 文件系统在界面上没有什么不同,但文件系统性能会有提高。
GFS2 文件系统在以下方面提供了更好的性能:
- 在大量使用单一目录时有较好的性能。
- 更快的同步 I/O 操作
- 更快的缓存读取(无锁定消耗)
- 对预先分配的文件有更快的直接 I/O (提供合理的较大 I/O 值,比如 4M 大的块)
- 普遍更快的 I/O 操作
- 执行
df
命令的速度更快,因为statfs
调用的速度更快。 - 与 GFS 相比,我们改进了
atime
模式以减少atime
生成的写入 I/O 操作数量。
GFS2 文件系统在以下方面提供更广泛和主流的支持:
- GFS2 是上游内核(整合到 2.6.19)的一部分。
- GFS2 支持以下特性:
- SELinux 扩展的属性。
lsattr
() 和chattr
() 属性是通过标准ioctl
() 调用设置的。- 纳秒时间戳
GFS2 为文件系统的内在效率提供以下改进。
- GFS2 使用更少的内核内存
- GFS2 需要非元数据生成数分配 GFS2 元数据不需要读取。多日志中的元数据块副本是由从锁定释放前的日志中调用的块管理的。
- GFS2 的日志管理程序更为简单,它对未链接的内节点或者配额修改一无所知。
gfs2_grow
和gfs2_jadd
命令使用锁定来防止多个事件同时运行。- 为类似
creat
() 和mkdir
() 的调用简化了 ACL 编码打开。 - 在没有重新挂载日志的情况下恢复未连接的内节点以及配额和
statfs
的更改。
第 2 章 开始
本章论述了初始设定 GFS2 的步骤,其中包括以下部分:
2.1. 前提任务
Before setting up Red Hat GFS2, make sure that you have noted the key characteristics of the GFS2 nodes (refer to 第 1.1 节 “设定 GFS2 前”). Also, make sure that the clocks on the GFS2 nodes are synchronized. It is recommended that you use the Network Time Protocol (NTP) software provided with your Red Hat Enterprise Linux distribution.
注意
GFS2 节点中的系统时钟间的差别必须在几分钟之内以便防止内节点时间戳更新。不必要的内节点时间戳更新会严重影响群集的性能。
2.2. 初始设定任务
初始 GFS2 设定包含以下任务:
- 设定逻辑卷。
- 生成 GFS2 文件系统。
- 挂载文件系统。
开始按照以下步骤设定 GFS2。
- 使用 LVM 为每个红帽 GFS2 文件系统生成逻辑卷。
注意
您可以使用红帽群集套件中的init.d
脚本自动激活和失活逻辑卷。有关init.d
脚本的详情请参考《配置和管理红帽群集》。 - Create GFS2 file systems on logical volumes created in Step 1. Choose a unique name for each file system. For more information about creating a GFS2 file system, refer to 第 3.1 节 “生成文件系统”.您可以使用以下格式之一创建一个群集 GFS2 文件系统:
mkfs.gfs2 -p lock_dlm -t
ClusterName:FSName
-jNumberJournals BlockDevice
mkfs -t gfs2 -p lock_dlm -t
LockTableName
-jNumberJournals BlockDevice
您可以使用以下任意格式之一创建本地 GFS2 文件系统:mkfs.gfs2 -p lock_nolock -j
NumberJournals BlockDevice
mkfs -t gfs2 -p lock_nolock -j
NumberJournals BlockDevice
For more information on creating a GFS2 file system, see 第 3.1 节 “生成文件系统”. - At each node, mount the GFS2 file systems. For more information about mounting a GFS2 file system, see 第 3.2 节 “挂载文件系统”.命令用法:
mount BlockDevice MountPoint
mount -o acl BlockDevice MountPoint
mount
命令的
选项允许操作文件 ACL。如果挂载某个文件系统是没有使用-o
acl
挂载选项,用户可以查看 ACL(使用-o
aclgetfacl
命令),但不可以设定它们(使用setfacl
命令)。注意
您可以使用红帽群集套件中的init.d
脚本自动挂载和卸载 GFS2 文件系统。有关init.d
脚本的详情请参考配置和管理红帽群集。
第 3 章 管理 GFS2
本章论述了管理 GFS2 的任务和命令,由以下部分组成:
3.1. 生成文件系统
您可使用
mkfs.gfs2
命令创建文件系统。您还可以使用指定了 -t gfs2
选项的 mkfs
命令。文件系统是在活跃的 LVM 卷中创建的。运行 mkfs.gfs2
命令时需要以下信息:
- 锁定协议/模块名称(群集的锁定协议为
lock_dlm
) - 群集名称(当作为群集配置的一部分运行时)
- 日志数目(每个可能挂载文件系统的节点都需要一个日志)
当创建一个 GFS 文件系统时,您可以直接使用
mkfs.gfs2
,或者使用带 -t
参数的 mkfs
命令,并使用 gfs2 文件系统选项将文件系统类型指定为 gfs2
。
用法
当创建群集的 GFS2 文件系统时,您可以使用以下任意格式之一:
mkfs.gfs2 -pLockProtoName
-tLockTableName
-jNumberJournals BlockDevice
mkfs -t gfs2 -pLockProtoName
-tLockTableName
-jNumberJournals BlockDevice
当创建本地 GFS2 文件系统时,您可以使用以下任意格式之一:
mkfs.gfs2 -pLockProtoName
-jNumberJournals BlockDevice
mkfs -t gfs2 -pLockProtoName
-jNumberJournals BlockDevice
警告
请确定您非常熟悉
LockProtoName
和 LockTableName
参数的使用。不正确的 LockProtoName
和 LockTableName
参数使用可能导致文件系统或者锁定空间崩溃。
LockProtoName
- 指定要使用的锁定协议名称,群集的锁定协议为
lock_dlm
。 LockTableName
- 这个参数是用来指定群集配置中的 GFS2 文件系统。它有两部分,用冒号隔开(没有空格)如下:
ClusterName:FSName
ClusterName
,用来创建 GFS2 文件系统的红帽群集名称。FSName
,文件系统名称,长度可在 1-16 个字符之间。该名称必须与群集中所有lock_dlm
文件系统以及每个本地节点中的所有文件系统(lock_dlm
和lock_nolock
)不同。
Number
- Specifies the number of journals to be created by the
mkfs.gfs2
command. One journal is required for each node that mounts the file system. For GFS2 file systems, more journals can be added later without growing the filesystem, as described in 第 3.6 节 “在文件系统中添加日志”. BlockDevice
- 指定逻辑卷或者物理卷。
示例
在这些示例中,
lock_dlm
是文件系统使用的锁定协议,因为这是一个群集的文件系统。群集名称为 alpha
,文件系统名为mydata1
。文件系统包含八个日志,日志是在 /dev/vg01/lvol0
中生成的。
mkfs.gfs2 -p lock_dlm -t alpha:mydata1 -j 8 /dev/vg01/lvol0
mkfs -t gfs2 -p lock_dlm -t alpha:mydata1 -j 8 /dev/vg01/lvol0
在这些示例中,生成了第二个
lock_dlm
文件系统,它可用于群集 alpha
。文件系统名为mydata2
。文件系统包含八个日志,日志是在 /dev/vg01/lvol1
中生成的。
mkfs.gfs2 -p lock_dlm -t alpha:mydata2 -j 8 /dev/vg01/lvol1
mkfs -t gfs2 -p lock_dlm -t alpha:mydata2 -j 8 /dev/vg01/lvol1
全部选项
表 3.1 “命令选项:
mkfs.gfs2
” describes the mkfs.gfs2
command options (flags and parameters).
表 3.1. 命令选项:mkfs.gfs2
标签 | 参数 | 描述 | |||||||
---|---|---|---|---|---|---|---|---|---|
-c | Megabytes | Sets the initial size of each journal's quota change file to Megabytes . | |||||||
-D | 启用调试输出。 | ||||||||
-h | 帮助,显示可用选项。 | ||||||||
-J | MegaBytes | 以 MB 为单位指定日志大小。默认日志大小为 128MB,最小为 8MB。较大的日志可提高性能,但会比较小的日志占用更多的内存。 | |||||||
-j | Number | 指定由 mkfs.gfs2 命令生成的日志数目。挂载文件系统的每个节点都需要一个日志。如果没有指定该选项,则会生成一个日志。对于 GFS2 文件系统,您可以后添加附加日志而不会增大文件系统。 | |||||||
-O | 防止 mkfs.gfs2 命令在写入文件系统前进行确认。 | ||||||||
-p | LockProtoName |
| |||||||
-q | 静默,什么都不显示。 | ||||||||
-r | MegaBytes | 以 MB 为单位指定源组群大小,最小值为 32MB,最大值为 2048MB。在大型文件系统中源组群越大性能越高。如果没有指定这个信息,mkfs.gfs2 会根据文件系统大小选择源组群大小:中等大小的文件系统的源组群为 256MB,大一点的文件系统会有较大的源组群以获得更好的性能。 | |||||||
-t | LockTableName |
| |||||||
-u | MegaBytes | Specifies the initial size of each journal's unlinked tag file. | |||||||
-V | 显示命令版本信息。 |
3.2. 挂载文件系统
Before you can mount a GFS2 file system, the file system must exist (refer to 第 3.1 节 “生成文件系统”), the volume where the file system exists must be activated, and the supporting clustering and locking systems must be started (refer to Configuring and Managing a Red Hat Cluster). After those requirements have been met, you can mount the GFS2 file system as you would any Linux file system.
要处理文件 ACL,您必须使用
-o acl
挂载信息挂载文件系统。如果挂载文件系统时没有使用 -o acl
选项,用户可以查看 ACL(使用 getfacl
),但不能对其进行设置(使用 setfacl
)。
用法
Mounting Without ACL Manipulation
mount BlockDevice MountPoint
Mounting With ACL Manipulation
mount -o acl BlockDevice MountPoint
-o acl
- GFS2 允许处理文件 ACL 的特定选项。
BlockDevice
- 指定 GFS2 文件系统所在的块设备。
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
示例
在这个示例中,位于
/dev/vg01/lvol0
的 GFS2 文件系统被挂载到 /mygfs2
目录中。
mount /dev/vg01/lvol0 /mygfs2
完整用法
mountBlockDevice MountPoint
-ooption
The
-o option
argument consists of GFS2-specific options (refer to 表 3.2 “GFS2 特定挂载选项”) or acceptable standard Linux mount -o
options, or a combination of both. Multiple option
parameters are separated by a comma and no spaces.
注意
mount
命令是 Linux 系统命令。除了使用这部分论述的 GFS2 特定选项,您还可以使用其它标准 mount
命令选项(例如:-r
)。有关其它 Linux mount
命令选项请参考 mount
man page。
表 3.2 “GFS2 特定挂载选项” describes the available GFS2-specific
-o option
values that can be passed to GFS2 at mount time.
表 3.2. GFS2 特定挂载选项
选项 | 描述 | ||
---|---|---|---|
acl | 允许处理文件 ACL。如果挂载文件系统时没有使用 acl 挂载选项,那么用户可以查看 ACL(使用 getfacl ),但不能对其进行设置(使用 setfacl )。 | ||
data=[ordered|writeback] | 当设定 data=ordered 时,处理中修改的用户数据会在处理被递交到磁盘前被冲入磁盘。这样可以让用户无法在崩溃后的文件中看到未初始化的块。设定 data=writeback 时,用户数据会在磁盘有数据后的任何时候被写入磁盘。这样无法提供 ordered 模式可提供的一致性保障,但可稍微提高一些工作量的速度。默认设置是 ordered 模式。 | ||
| 强制 GFS2 将文件系统视为多主机文件系统。默认情况是使用 lock_nolock 自动打开 localcaching 和 localflocks 标签。 | ||
| 告知 GFS2 它正作为本地文件系统运行。然后 GFS2 可以打开运行在群集模式中时不可用的所选最佳功能。lock_nolock 可自动打开 localcaching 标签。 | ||
| 告知 GFS2 让 VFS(虚拟文件系统)层完成所有 flock 和 fcntl 操作。lock_nolock 可自动打开 localflocks 标签。 | ||
lockproto= LockModuleName | 允许用户指定文件系统要使用的锁定协议。如果没有指定 LockModuleName ,则会从文件系统的超级块中读取锁定协议。 | ||
locktable= LockTableName | 允许用户指定文件系统要使用的锁定表。 | ||
quota=[off/account/on] | 为文件系统打开或者关闭配额。在 account 状态中配置配额可让文件系统正确维护对每个 UID/GID 使用统计,忽略限制和警告值。默认值为 off 。 | ||
upgrade | 升级文件系统的磁盘格式以便可被新版本的 GFS2 使用。 |
3.3. 卸载文件系统
可使用与卸载 Linux 文件系统相同的方法卸载 GFS2 文件系统 — 即使用
umount
命令。
注意
umount
是 Linux 系统命令。有关此命令的详情请参考 Linux umount
命令 man page。
用法
umount MountPoint
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
3.4. GFS2 配额管理
文件系统配额是用来限制某个用户或者组群使用的文件系统空间。对用户或者组群没有配额限制除非对其进行设置。GFS2 会不断跟踪每个用户或者组群使用的空间,即使没有设定限制也是如此。GFS2 以互动的方式更新配额信息,因此系统崩溃并不需要重建配额使用。
To prevent a performance slowdown, a GFS2 node synchronizes updates to the quota file only periodically. The "fuzzy" quota accounting can allow users or groups to slightly exceed the set limit. To minimize this, GFS2 dynamically reduces the synchronization period as a "hard" quota limit is approached.
GFS2 使用其
gfs2_quota
命令管理配额。其它 Linux 配额工具在 GFS2 中无法使用。
3.4.1. 设定配额
每个用户 ID(UID)或者 组群 ID(GID)都有两个配额设定可用:硬限制和警告限制。
硬限制是可以使用的空间量。文件系统将不会允许用户或者组群使用超过该磁盘空间量的空间。硬限制值为 0 表示没有强制限制。
警告限制通常是一个小于硬限制的值。文件系统会在达到警告限制时通知用户或者组群,提醒他们使用的空间量。警告限制为 0 表明没有强制限制。
请使用
gfs2_quota
命令设定限制。该命令只需要在挂载 GFS2 的单一节点中运行。
By default, quota enforcement is not set on GFS2 file systems. To enable quota accounting, use the
quota=
of the mount
command when mounting the GFS2 file system, as described in 第 3.4.4 节 “启用/禁用配额强制”.
用法
Setting Quotas, Hard Limit
gfs2_quota limit -uUser
-lSize
-fMountPoint
gfs2_quota limit -gGroup
-lSize
-fMountPoint
Setting Quotas, Warn Limit
gfs2_quota warn -uUser
-lSize
-fMountPoint
gfs2_quota warn -gGroup
-lSize
-fMountPoint
User
- 要限制或者警告的用户 ID。可以是密码文件中的用户名,也可以是 UID 号码。
Group
- 要限制或者警告的组群 ID。可以是密码文件中的组群名,也可以是 GID 号码。
Size
- 指定限制或者警告配额的新数值。默认情况该数值的单位是 MB。附加的
-k
、-s
和-b
标签可将单位分别改为 kb、扇区和文件系统块。 MountPoint
- 指定要执行动作的 GFS2 文件系统。
示例
这个示例为用户 Bert 在文件系统
/mygfs2
中设定的硬限制为 1024MB(1GB)。
gfs2_quota limit -u Bert -l 1024 -f /mygfs2
这个示例为文件系统
/mygfs2
的组群 ID 21 设定的警告限制为 50kb。
gfs2_quota warn -g 21 -l 50 -k -f /mygfs2
3.4.2. 显示配额限制和用法
使用
gfs2_quota get
命令可为特定用户或者组群显示配额限制和当前使用。还可使用 gfs2_quota list
命令显示配额文件的完整内容,此时会列出包括所有非零硬限制、警告限制和列出数值的 ID。
用法
Displaying Quota Limits for a User
gfs2_quota get -uUser
-fMountPoint
Displaying Quota Limits for a Group
gfs2_quota get -gGroup
-fMountPoint
Displaying Entire Quota File
gfs2_quota list -f MountPoint
User
- 显示特定用户信息的用户 ID,它可以是密码文件中的用户名,也可以是 UID 号码。
Group
- 显示特定组群信息的组群 ID,它可以是密码文件中的组群名,也可以是 GID 号码。
MountPoint
- 指定要执行动作的 GFS2 文件系统。
命令输出
gfs2_quota
命令中的 GFS2 配额信息显示如下:
userUser
: limit:LimitSize
warn:WarnSize
value:Value
groupGroup
: limit:LimitSize
warn:WarnSize
value:Value
LimitSize
、WarnSize
和 Value
数字(数值)默认使用 MB 为单位。在命令行中添加 -k
、-s
和 -b
标签可将单位分别改为 kb、扇区和文件系统块。
User
- 数据关联的用户名或者 ID。
Group
- 数据关联的组群名称或者 ID。
LimitSize
- 用户或者组群的硬限制设定,如果没有限制则将其设为 0。
Value
- 用户或者组群使用的实际磁盘空间量。
注释
如果在命令行中加入
-n
选项,那么在显示配额信息时,gfs2_quota
将无法将 UID 和 GID 解析为名称。
Space allocated to GFS2's hidden files can be left out of displayed values for the root UID and GID by adding the
-d
option to the command line. This is useful when trying to match the numbers from gfs2_quota
with the results of a du
command.
示例
这个示例将显示所有带限制设定或者使用文件系统
/mygfs2
磁盘空间的用户和组群的配额信息。
gfs2_quota list -f /mygfs2
这个示例将以扇区为单位显示文件系统
/mygfs2
中组群 users
的配额信息。
gfs2_quota get -g users -f /mygfs2 -s
3.4.3. 同步的配额
GFS2 在其磁盘自身内在文件中保存所有配额信息。GFS2 节点不需要在每次文件系统写入时更新这个配额文件,它会每 60 秒更新一次这个配额文件。这在避免节点间在写入配额文件时发生冲突是很有必要的,这种冲突会降低节点性能。
如果某个用户或者组群的配额使用接近了配额限制,GFS2 会自动减小配额文件更新的时间周期以便防止超过这个限制。一般配额同步的时间周期为一个可调整的参数,您可以使用
gfs2_tool
命令修改 quota_quantum
。默认情况下,时间周期为 60 秒。同时,必须在每个节点以及每次挂载文件系统时设定 quota_quantum
参数。(修改的 quota_quantum
参数在卸载后不可持续。)
您可以使用
gfs2_quota sync
命令在 GFS2 执行自动更新时将某个节点的配额信息与磁盘配额文件同步。
用法
Synchronizing Quota Information
gfs2_quota sync -f MountPoint
MountPoint
- 指定要执行动作的 GFS2 文件系统。
Tuning the Time Between Synchronizations
gfs2_tool settuneMountPoint
quota_quantumSeconds
MountPoint
- 指定要执行动作的 GFS2 文件系统。
Seconds
- 指定 GFS2 对常规配额文件进行同步化的新时间周期。数值越小,竞争越激烈,同时还会降低性能。
示例
这个示例是将其正在运行节点中的配额信息与文件系统
/mygfs2
同步。
gfs2_quota sync -f /mygfs2
这个示例将单一节点中的文件系统
/mygfs2
的常规配额文件更新的默认时间周期改为一小时(3600 秒)。
gfs2_tool settune /mygfs2 quota_quantum 3600
3.4.4. 启用/禁用配额强制
在 GFS2 文件系统中,默认是禁用配额强制。要启用文件系统的配额强制,请在挂载文件系统时指定
quota=on
选项。
用法
mount -o quota=on BlockDevice MountPoint
要在挂载文件系统时禁用配额强制,请使用
quota=off
选项。这是默认设置。
mount -o quota=off BlockDevice MountPoint
-o quota={on|off}
- 指定挂载文件系统是启用还是禁用配额强制。
BlockDevice
- 指定 GFS2 文件系统所在的块设备。
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
示例
在这个示例中,
/dev/vg01/lvol0
中的 GFS2 文件系统被挂载到 /mygfs2
目录中并启用了配额强制。
mount -o quota=on /dev/vg01/lvol0 /mygfs2
3.4.5. 启用配额核算
有可能在没有强制限制和警告值的情况下为每个用户和组群跟踪磁盘用量并维护配额核算。要做到这一点,请使用
quota=account
选项挂载文件系统。
用法
mount -o quota=account BlockDevice MountPoint
-o quota=account
- 即使在没有强制配额限制的情况下,也请指定文件系统来维护用户和组群的用量统计。
BlockDevice
- 指定 GFS2 文件系统所在的块设备。
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
示例
在这个示例中,
/dev/vg01/lvol0
中的 GFS2 文件系统被挂载到 /mygfs2
目录中并启用了配额核算。
mount -o quota=account /dev/vg01/lvol0 /mygfs2
3.5. 增大的文件系统
gfs2_grow
是在其所在文件系统设备被扩展后用来扩展 GFS2 文件系统的。在现有 GFS2 文件系统中运行 gfs2_grow
命令则会填满目前文件系统终点和带新初始的 GFS2 文件系统扩展设备终点之间的所有剩余空间。当完成填充工作后,会为文件系统更新源索引。群集中的所有节点则可以使用以添加的额外存储空间。
gfs2_grow
必须在挂载的文件系统中运行,但只需要在群集的一个节点中运行。其它节点可感觉到扩展的发生,并可自动使用新的空间。
用法
gfs2_grow MountPoint
MountPoint
- 指定要执行动作的 GFS2 文件系统。
注释
在运行
gfs2_grow
命令前请您:
- 备份文件系统中的重要数据。
- 运行
df
命令确定要进行扩展的文件系统的容量。MountPoint
- Expand the underlying cluster volume with LVM. For information on administering LVM volumes, see the LVM Administrator's Guide
运行
gfs2_grow
命令后,请运行 df
命令查看文件系统中新的可用空间。
示例
在这个示例中扩展了
/mygfs2fs
目录中的文件系统。
[root@dash-01 ~]# gfs2_grow /mygfs2fs
FS: Mount Point: /mygfs2fs
FS: Device: /dev/mapper/gfs2testvg-gfs2testlv
FS: Size: 524288 (0x80000)
FS: RG size: 65533 (0xfffd)
DEV: Size: 655360 (0xa0000)
The file system grew by 512MB.
gfs2_grow complete.
完整用法
gfs2_grow [Options
] {MountPoint
|Device
} [MountPoint
|Device
]
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
Device
- 指定文件系统的设备节点。
表 3.3 “扩展文件系统是可用的 GFS2 特定选项” describes the GFS2-specific options that can be used while expanding a GFS2 file system.
表 3.3. 扩展文件系统是可用的 GFS2 特定选项
选项 | 描述 |
---|---|
-h | 帮助,显示简短用法信息。 |
-q | 静默,降低详细等级。 |
-r MegaBytes | 指定新源组群大小,默认值为 256MB。 |
-T | 测试。完成所有计算,但不要向磁盘中写入数据,也不要扩展文件系统。 |
-V | 显示命令版本信息。 |
3.6. 在文件系统中添加日志
gfs2_jadd
命令可用来在 GFS2 文件系统中添加日志。您可以在任意点动态添加 GFS2 文件系统,且不需要扩展基础逻辑卷。gfs2_jadd
必须在挂载的文件系统中运行,但只需要在群集的一个节点中运行。其它节点可感觉到扩展的发生。
在向 GFS 文件系统中添加日志前,您可以使用
gfs2_tool
命令的 journals
选项找出 GFS2 文件系统目前含有多少日志。以下示例显示挂载在 /mnt/gfs2
的文件系统的日志数目和大小。
[root@roth-01 ../cluster/gfs2]# gfs2_tool journals /mnt/gfs2
journal2 - 128MB
journal1 - 128MB
journal0 - 128MB
3 journal(s) found.
用法
gfs2_jadd -j Number MountPoint
Number
- 指定要添加的新日志数目。
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
示例
这个示例中,在
/mygfs2
目录的文件系统中添加了一个日志。
gfs2_jadd -j1 /mygfs2
这个示例中,在
/mygfs2
目录的文件系统中添加了两个日志。
gfs2_jadd -j2 /mygfs2
完整用法
gfs2_jadd [Options
] {MountPoint
|Device
} [MountPoint
|Device
]
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
Device
- 指定文件系统的设备节点。
表 3.4 “添加日志时可用的 GFS2 特定选项” describes the GFS2-specific options that can be used when adding journals to a GFS2 file system.
表 3.4. 添加日志时可用的 GFS2 特定选项
标签 | 参数 | 描述 |
---|---|---|
-h | 帮助,显示简短用法信息。 | |
-J | MegaBytes | 以 MB 为单位指定新日志的大小。默认日志大小为 128MB,最小值为 32MB。要在文件系统添加不同大小的日志,必须为每个不同大小的日志运行 gfs2_jadd 命令。指定的大小会不断下降,因此在生成文件系统时会指定多个日志区段。 |
-j | Number | 用 gfs2_jadd 命令指定要添加的新日志数目,默认值为 1。 |
-q | 静默,降低详细等级。 | |
-V | 显示命令版本信息。 |
3.7. 数据日志
Ordinarily, GFS2 writes only metadata to its journal. File contents are subsequently written to disk by the kernel's periodic sync that flushes file system buffers. An
fsync()
call on a file causes the file's data to be written to disk immediately. The call returns when the disk reports that all data is safely written.
数据日志可减小
fsync()
时间,特别是对于小文件,因为文件数据在写入元数据外还要写入日志。数据写入日志后 fsync()
就会返回,这样就比将文件数据写入主文件系统要迅速。
依赖
fsync()
同步文件数据的应用程序可能因使用数据日志而使性能有所提高。在被标记的目录及其所有子目录中生成的 GFS2 文件可自动启用数据日志。现有长度为 0 的文件也可以打开或者关闭其数据日志功能。
Enabling data journaling on a directory sets the directory to "inherit jdata", which indicates that all files and directories subsequently created in that directory are journaled. You can enable and disable data journaling on a file or a directory with either of the following methods:
- 在文件或者目录中执行
chattr +j
或者chattr -j
- 使用
gfs2_tool setflag
或者gfs2_tool clearflag
命令为文件或者目录设定或者清除jdata
标签
使用
chattr
命令是在某个文件或者目录中启用和禁用数据日志的首选方法。
3.7.1. 使用 chattr
命令启用和禁用数据日志
您可以使用
chattr
命令为某个文件启用或者禁用数据日志。以下命令为 /mnt/gfs2/gfs2_dir/newfile
文件启用了数据日志功能,并检查是否正确设定了标签。
[root@roth-01 ~]#chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
以下命令禁用了
/mnt/gfs2/gfs2_dir/newfile
文件中的数据日志,并查看是否正确设定了标签。
[root@roth-01 ~]#chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
您还可以使用
chattr
在目录中设定 jdata
标签。当您为某个目录设定此标签时,之后在那个目录中创建的所有文件和目录也都会进行日志操作。以下一组命令可在 gfs2_dir
目录中设定 j
标签,然后查看是否正确设定了该标签。此后,该命令会在 /mnt/gfs2/gfs2_dir
目录中创建一个名为 newfile
新文件,然后查看是否将为该文件设定了 j
标签。因为是为该目录设定的 j
标签,然后应该也为 newfile
启用日志操作。
[root@roth-01 ~]#chattr -j /mnt/gfs2/gfs2_dir
[root@roth-01 ~]#lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir [root@roth-01 ~]#touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
3.7.2. 使用 gfs2_tool
启用或者禁用数据日志
以下命令在 GFS2 文件
/mnt/gfs2/gfs2file
中启用了数据日志
[root@roth-01 ~]# gfs2_tool setflag jdata /mnt/gfs2/gfs2file
您可以使用
lsattr
命令确认设定了 jdata
标签。
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2file
当为该目录设定
jdata
标签时,之后在那个目录中创建的所有文件和目录都进行日志操作。
以下命令会在
/mnt/gfs2
目录中生成名为 gfs2_dir
的新子目录,并为该目录设定 jdata
标签,然后确认标签设置是正确的。此后,这些命令在该目录中生成文件 gfs2file
,然后确认为那个文件正确设定了标签。
[root@roth-01 ~]#mkdir /mnt/gfs2/gfs2_dir
[root@roth-01 ~]#gfs2_tool setflag jdata /mnt/gfs2/gfs2_dir
[root@roth-01 ~]#lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir [root@roth-01 ~]#touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]#lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
要从某个文件或者目录中清除
jdata
标签,您可以使用 gfs2_tool clearflag jdata
命令,如下示例中所示:
[root@roth-01 ~]#gfs2_tool clearflag jdata /mnt/gfs2/gfs2file
[root@roth-01 ~]#lsattr /mnt/gfs2
------------- /mnt/gfs2/gfs2file
3.8. 配置 atime
更新
每个文件内节点和目录内节点都有三个与之相关的时间戳:
ctime
— 最后一次修改内节点状态的时间mtime
— 最后一次修改文件(或者目录)数据的时间atime
— 最后一次访问文件(或者目录)数据的时间
如果启用了
atime
更新,因为在 GFS2 和其它 Linux 文件系统中这是默认设置,那么每次在读取文件时都需要更新其内节点。
因为有些应用程序使用
atime
提供的信息,那些更新可能会需要大量不必要的写入流量和文件锁定流量。那个流量可能会降低性能,因此请尽量关闭或降低 atime
更新频率。
有两个可用来降低
atime
更新效果的方法:
- 使用
relatime
(relative atime)挂载,可在前一个atime
更新比mtime
或者ctime
更新旧时更新atime
。 - 使用
noatime
挂载,可在那个文件系统中禁用atime
更新。
3.8.1. 使用 relatime
挂载
当挂载文件系统时,可指定
relatime
(相对 atime,relative atime)Linux 挂载选项。如果前一个 atime
更新比 mtime
或者 ctime
更新旧,这就可指定更新 atime
。
用法
mount BlockDevice MountPoint
-o relatime
BlockDevice
- 指定 GFS2 文件系统所在的块设备。
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
示例
在这个示例中,GFS2 文件系统位于
/dev/vg01/lvol0
,并挂载到目录 /mygfs2
。只有在前一个 atime
更新比 mtime
或者 ctime
更新旧时才会进行 atime
更新。
mount /dev/vg01/lvol0 /mygfs2 -o relatime
3.8.2. 使用 noatime
挂载
当挂载文件系统时,可指定 Linux 挂载选项
noatime
,它可在那个文件系统中禁用 atime
更新。
用法
mount BlockDevice MountPoint
-o noatime
BlockDevice
- 指定 GFS2 文件系统所在的块设备。
MountPoint
- 指定要挂载 GFS2 文件系统的目录。
示例
在这个示例中,GFS2 文件系统位于
/dev/vg01/lvol0
,并挂载到录 /mygfs2
中,并关闭 atime
更新。
mount /dev/vg01/lvol0 /mygfs2 -o noatime
3.9. 在文件系统中挂起一个动作
您可以使用
gfs2_tool freeze
命令挂起对某个文件系统的写入动作。挂起写入动作允许使用基于硬件的设备快照捕获处于一致状态的文件系统。gfs2_tool unfreeze
命令可终止挂起。
用法
Start Suspension
gfs2_tool freeze MountPoint
End Suspension
gfs2_tool unfreeze MountPoint
MountPoint
- 指定文件系统。
示例
这个示例挂起了对文件系统
/mygfs2
的写入动作。
gfs2_tool freeze /mygfs2
这个示例终止了对文件系统
/mygfs2
写入动作的挂起。
gfs2_tool unfreeze /mygfs2
3.10. 修复文件系统
当挂载文件系统节点失败时,文件系统日志允许快速恢复。但如果存储设备断电或者断开物理连接,则会发生文件系统崩溃。(无法使用日志进行存储子系统失败修复。)当这种崩溃发生时,您可以使用
fsck.gfs2
命令修复 GFS2 文件系统。
警告
fsck.gfs2
命令必须只能在从所有节点中卸载的文件系统中运行。
注意
如果您以前有在 GFS 文件系统中使用 gfs_fsck 命令的经验,请注意
fsck.gfs2
命令在以下方面和之前发布的 gfs_fsck
有所不同:
- 您不能使用 Ctrl+C 设定互动模式。按 Ctrl+C 会取消
fsck.gfs2
命令。不要 按 Ctrl+C,除非您想要取消该命令。 - 您可以使用
-v
标签提高详细等级。添加第二个-v
标签会再次提高等级。 - 您可以使用
-q
标签降低详细等级。添加第二个-q
标签会再次降低等级。 -n
会以只读方式打开某个文件系统并自动对所有查询回答no
。该选项提供了在不允许fsck.gfs2
命令生效的前提下使用命令找出错误的方法。
有关其它命令选项详情请参考
fsck.gf2
man page。
用法
fsck.gfs2 -y BlockDevice
-y
-y
标签可使对所有问题的回答都为yes
。如果指定-y
标签,fsck.gfs2
命令则不会在进行修改前提示您进行回答。BlockDevice
- 指定 GFS2 文件系统所在的块设备。
示例
在这个示例中,修复了位于块设备
/dev/testvol/testlv
中的 GFS2 文件系统。所有关于修复查询的回答都自动为 yes
。
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete
3.11. 绑定挂载以及上下文关联路径名
GFS2 文件系统不提供对上下文关联路径名(CDPN)的支持,CDPN 允许您生成指向不同目的地文件或者目录的符号链接。在 GFS2 中使用
mount
命令的 bind
选项实现此功能。
mount
命令的 bind
选项允许您在不同位置重新挂载部分文件结构,且使其在初始位置仍可用。该命令的格式如下:
mount --bind olddir newdir
执行此命令后,
olddir
目录中的内容在两个位置可用:olddir
和 newdir
。您还可以使用这个选项生成在两个位置可用的独立文件。
例如:在执行以下命令后,
/root/tmp
中的内容将和之前挂载的 /var/log
目录内容一致。
[root@menscryfa ~]#cd ~root
[root@menscryfa ~]#mkdir ./tmp
[root@menscryfa ~]#mount --bind /var/log /tmp
另外,您可以使用
/etc/fstab
文件中的条目在挂载时得到同样的结果。/etc/fstab
中的以下条目可使 /root/tmp
的内容和 /var/log
目录中的内容一致。
/var/log /root/tmp none bind 0 0
在您挂载文件系统后,您可以使用
mount
命令查看该文件系统是否被挂载了,如下示例所示:
[root@menscryfa ~]# mount | grep /tmp
/var/log on /root/tmp type none (rw,bind)
对于支持上下文关联路径名的文件系统,您可以将
/bin
目录定义为上下文关联路径名,并根据系统构架将其解析为以下路径之一:
/usr/i386-bin /usr/x86_64-bin /usr/ppc64-bin
您可以通过生成空
/bin
目录得到同样的结果。然后使用脚本或者在 /etc/fstab
文件中的条目,将每个独立构架目录使用 mount -bind
命令挂载到 /bin
目录。例如:您可以使用以下命令作为脚本中的一行:
mount --bind /usr/i386-bin /bin
另外,您还可以使用以下行作为
/etc/fstab
文件的条目:
/usr/1386-bin /bin none bind 0 0
绑定挂载可为您提供比上下文关联路径名更大的灵活性,因为您可以使用此特性根据您定义的条件挂载不同的目录(比如文件系统的
%fill
值)。上下文关联路径名对其可处理的环境有更多的限制。请注意:您将需要根据条件(比如 %fill
)编写您自己的挂载脚本。
警告
当您使用
bind
选项挂载文件系统,且起始文件系统以 rw
挂载时,新的文件系统也会被以 rw
形式挂载,即使您使用的是 ro
标签,ro
则被静默忽略了。在这种情况下,可能会在 /proc/mounts
目录中将新的文件系统标记为 ro
而引起误导。
附录 A. 将文件系统从 GFS 转换为 GFS2
要将 GFS 文件系统转换为 GFS2 文件系统请使用
gfs2_convert
命令。
- 将 GFS 文件系统从群集中的所有节点中卸载。
- 在 GFS 文件系统中执行
gfs_fsck
命令以确定没有文件系统崩溃。 - 重新挂载并备份现有 GFS 文件系统。
- 卸载文件系统并执行
gfs2_convert
。该系统会显示警告信息并在将gfsfilesystem
gfsfilesystem
转换为 GFS2 之前进行确认。
以下示例是在块设备
/dev/testvg/testlv
中将 GFS 文件系统转换为 GFS2 文件系统。
[root@dash-01 ~]#gfs2_convert /dev/testvg/testlv
gfs2_convert version 2 (built Sep 25 2007 12:41:29) Copyright (C) Red Hat, Inc. 2004-2006 All rights reserved. This program will convert a gfs1 filesystem to a gfs2 filesystem. WARNING: This can't be undone. It is strongly advised that you: 1. Back up your entire filesystem first. 2. Run gfs_fsck first to ensure filesystem integrity. 3. Make sure the filesystem is NOT mounted from any node. 4. Make sure you have the latest software versions. Convert /dev/testvg/testlv from GFS1 to GFS2? (y/n)y
Converting resource groups. Converting inodes. 6 inodes converted. Fixing file and directory information. 1 directories, 2 dirents fixed. Converting journals. Converting journal space to rg space. Building system structures. Removing obsolete gfs1 structures. Committing changes to disk. /dev/gfs2testvg/gfs2testlv: filesystem converted successfully to gfs2. [root@dash-01 ~]#
附录 B. 修订记录
修订历史 | |||
---|---|---|---|
修订 3-10.400 | 2013-10-31 | Rüdiger Landmann | |
| |||
修订 3-10 | 2012-07-18 | Anthony Towns | |
| |||
修订 1.0-0 | Thu Jan 29 2009 | ||
|
索引
A
- adding journals to a file system,在文件系统中添加日志
- atime, configuring updates,配置 atime 更新
- mounting with noatime ,使用 noatime 挂载
- mounting with relatime ,使用 relatime 挂载
- audience,读者
B
C
- configuration, before,设定 GFS2 前
- configuration, initial,开始
- prerequisite tasks,前提任务
D
- data journaling,数据日志
F
- feedback,反馈
- file system
- adding journals,在文件系统中添加日志
- atime, configuring updates,配置 atime 更新
- mounting with noatime ,使用 noatime 挂载
- mounting with relatime ,使用 relatime 挂载
- bind mounts,绑定挂载以及上下文关联路径名
- context-dependent path names (CDPNs),绑定挂载以及上下文关联路径名
- data journaling,数据日志
- growing,增大的文件系统
- making,生成文件系统
- mounting,挂载文件系统
- quota management,GFS2 配额管理
- displaying quota limits,显示配额限制和用法
- enabling quota accounting,启用配额核算
- enabling/disabling quota enforcement,启用/禁用配额强制
- setting quotas,设定配额
- synchronizing quotas,同步的配额
- repairing,修复文件系统
- suspending activity,在文件系统中挂起一个动作
- unmounting,卸载文件系统
G
- GFS2
- atime, configuring updates,配置 atime 更新
- mounting with noatime ,使用 noatime 挂载
- mounting with relatime ,使用 relatime 挂载
- managing,管理 GFS2
- quota management,GFS2 配额管理
- displaying quota limits,显示配额限制和用法
- enabling quota accounting,启用配额核算
- enabling/disabling quota enforcement,启用/禁用配额强制
- setting quotas,设定配额
- synchronizing quotas,同步的配额
- GFS2 file system maximum size,GFS2 总览
- GFS2-specific options for adding journals table,完整用法
- GFS2-specific options for expanding file systems table,完整用法
- growing a file system,增大的文件系统
I
- initial tasks
- setup, initial,初始设定任务
- introduction,简介
- audience,读者
M
- making a file system,生成文件系统
- managing GFS2,管理 GFS2
- maximum size, GFS2 file system,GFS2 总览
- mkfs.gfs2 command options table,全部选项
- mount table,完整用法
- mounting a file system,挂载文件系统
O
- overview,GFS2 总览
- configuration, before,设定 GFS2 前
P
- path names, context-dependent (CDPNs),绑定挂载以及上下文关联路径名
- preface (见 introduction)
- prerequisite tasks
- configuration, initial,前提任务
Q
- quota management,GFS2 配额管理
- displaying quota limits,显示配额限制和用法
- enabling quota accounting,启用配额核算
- enabling/disabling quota enforcement,启用/禁用配额强制
- setting quotas,设定配额
- synchronizing quotas,同步的配额
R
- repairing a file system,修复文件系统
S
- setup, initial
- initial tasks,初始设定任务
- suspending activity on a file system,在文件系统中挂起一个动作
T
- tables
- GFS2-specific options for adding journals,完整用法
- GFS2-specific options for expanding file systems,完整用法
- mkfs.gfs2 command options,全部选项
- mount options,完整用法
U
- unmounting a file system,卸载文件系统
法律通告
Copyright © 2009 Red Hat Inc..
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.