如何在 Red Hat Cluster 中配置 GFS2 分区

重启 gfs2 服务

# /etc/init.d/gfs2 start
Mounting GFS2 filesystem (/GFS):                           [  OK  ]

在集群的两个节点上验证设置

[root@node1 ~]# cd /GFS/
[root@node1 GFS]# ls
[root@node1 GFS]# touch test
[root@node2 ~]# cd /GFS/
[root@node2 GFS]# ls
test

如我们所见,文件变更同时反映在集群的两个节点上。

软件包

设置 GFS 文件系统所需的软件包是 RHEL 5 和 6 中的 gfs2-utils

# yum -y install gfs2-utils

说明:

尽管 GFS2 文件系统可以在独立系统中实现或者作为集群配置的一部分,但对于 Red Hat Enterprise Linux 6 发行版,Red Hat 不支持将 GFS2 用作单节点文件系统。
Red Hat 确实支持许多针对单节点优化的高性能单节点文件系统,因此通常比集群文件系统具有更低的开销。
在只有一个节点需要挂载文件系统的情况下,红帽建议优先使用这些文件系统而不是 GFS2.

在共享存储上继续执行以下步骤。

# fdisk -l
Disk /dev/sdc: 11.1 GB, 11106516992 bytes
64 heads, 32 sectors/track, 10592 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes/512 bytes
I/O size (minimum/optimal): 512 bytes/512 bytes
Disk identifier: 0x00000000

GFS2文件系统

GFS2基于64位架构,理论上可以容纳一个8EB的文件系统。
但是,当前支持的用于 64 位硬件的 GFS2 文件系统的最大大小为 100 TB。
当前支持的用于 32 位硬件的 GFS2 文件系统的最大大小为 16 TB。

说明:

Red Hat 不支持将 GFS2 用于超过 16 个节点的集群文件系统部署。

在设置 GFS2 之前

文件系统名称

为每个文件系统确定一个唯一的名称。
该名称对于群集上的所有 lock_dlm 文件系统必须是唯一的。
每个文件系统名称都需要以参数变量的形式存在。

日志(使用 -j 参数)

确定 GFS2 文件系统的日志数量。
每个挂载 GFS2 文件系统的节点都需要一个日志。
GFS2 允许我们稍后在添加服务器安装文件系统时动态添加日志。

日志大小(使用 -J 参数 默认 128 MB)

当我们运行 mkfs.gfs2 命令创建 GFS2 文件系统时,我们可以指定日志的大小。
如果我们不指定大小,则默认为 128MB,这对于大多数应用程序来说应该是最佳的。

一些系统管理员可能认为 128MB 过多,并试图将日志的大小减少到最小 8MB 或者更保守的 32MB。
虽然这可能有效,但它会严重影响性能。
像许多日志文件系统一样,每次 GFS2 写入元数据时,元数据都会在它就位之前提交到日志。
这确保了如果系统崩溃或者断电,当日志在挂载时自动重播时,我们将恢复所有元数据。
但是,填充 8MB 日志并不需要太多文件系统活动,并且当日志已满时,性能会降低,因为 GFS2 必须等待写入存储。

一般建议使用默认的日志大小 128MB。
如果文件系统非常小(例如,5GB),拥有 128MB 的日志可能不切实际。
如果我们有一个更大的文件系统并且可以负担得起空间,那么使用 256MB 日志可能会提高性能。

块大小(使用 -b 参数)

mkfs.gfs2 命令尝试根据设备拓扑估计最佳块大小。
通常,4K 块是首选的块大小,因为 4K 是 Linux 的默认页面大小(内存)。
如果块大小是 4K,内核必须做更少的工作来操作缓冲区。

资源组的大小和数量

当使用 mkfs.gfs2 命令创建 GFS2 文件系统时,它将存储划分为称为资源组的统一切片。
它尝试估计最佳资源组大小(范围从 32MB 到 2GB)。
我们可以使用 mkfs.gfs2 命令的 -r 选项覆盖默认值。

锁定模式(使用 -p 参数)

LockProtoName 是要使用的锁定协议的名称。
可接受的锁定协议是 lock_dlm(用于共享存储),或者如果我们使用 GFS2 作为本地文件系统(仅限 1 个节点),我们可以指定 lock_nolock 协议。
如果未指定此选项,则将采用 lock_dlm 协议。

使用 GFS2 格式化分区

对于要配置为 GFS2 的分区,我们可以在集群的所有节点上使用以下命令。

格式化文件系统:GFS2
锁定协议:lock_dlm
集群名称:cluster1
文件系统名称:GFS
Journal:2
分区:/dev/sdc

[root@node1 ~]# mkfs.gfs2 -p lock_dlm -t cluster1:GFS -j 2  /dev/sdc
This will destroy any data on /dev/sdc.
It appears to contain: Linux GFS2 Filesystem (blocksize 4096, lockproto lock_dlm)
Are you sure you want to proceed? [y/n] y
Device:                    /dev/sdc
Blocksize:                 4096
Device Size                10.34 GB (2711552 blocks)
Filesystem Size:           10.34 GB (2711552 blocks)
Journals:                  2
Resource Groups:           42
Locking Protocol:          "lock_dlm"
Lock Table:                "cluster1:GFS"
UUID:                      82e1e74f-74d4-213a-acb5-d371526e0d34

在集群的所有节点上的 /etc/fstab 中填写挂载详细信息,因为一旦 gfs2 服务启动,它就会在 fstab 中查找 GFS 条目

# less /etc/fstab
/dev/sdc                /GFS                    gfs2    defaults        0 0
日期:2020-06-02 22:18:26 来源:oir作者:oir