跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability 文档 / 管理指南 / 存储和数据复制 / GFS2
适用范围 SUSE Linux Enterprise High Availability 15 SP6

22 GFS2

全局文件系统 2 或称 GFS2 是适用于 Linux 计算机群集的共享磁盘文件系统。GFS2 允许所有节点直接同时访问同一个共享块存储。GFS2 不提供断开操作模式,也没有客户端角色或服务器角色。GFS2 群集中的所有节点以对等体的形式运行。GFS2 最多支持 32 个群集节点。在群集中使用 GFS2 需要通过硬件来访问共享存储设备,并需要通过一个锁管理器来控制对存储空间的访问。

如果性能是其中一个主要要求,SUSE 建议为群集环境使用 OCFS2 而不要使用 GFS2。我们的测试表明,与采用此设置的 GFS2 相比,OCFS2 的表现更好。

重要
重要:GFS2 支持

SUSE 只支持只读模式的 GFS2。不支持写入操作。

22.1 GFS2 软件包和管理实用程序

要使用 GFS2,请确保群集的每个节点上均已安装适用于您的内核的 gfs2-utils 和匹配的 gfs2-kmp-* 软件包。

gfs2-utils 软件包提供以下实用程序,用于管理 GFS2 卷。有关语法信息,请参见其手册页。

fsck.gfs2

检查文件系统的错误并进行选择性的修改。

gfs2_jadd

将其他日记添加到 GFS2 文件系统。

gfs2_grow

产生 GFS2 文件系统。

mkfs.gfs2

在设备上创建 GFS2 文件系统,这通常是一个共享设备或分区。

tunegfs2

用于查看和调整 GFS2 文件系统参数,例如 UUIDlabellockprotolocktable

22.2 配置 GFS2 服务和 STONITH 资源

在创建 GFS2 卷之前,必须先配置 DLM 和 STONITH 资源。

过程 22.1︰ 配置 STONITH 资源
注意
注意:需要 STONITH 设备

您需要配置屏蔽设备。如果未实施 STONITH 机制(如 external/sbd),配置将会失败。

  1. 启动外壳,并以 root 用户或同等身份登录。

  2. 过程 13.3 “初始化 SBD 设备”中所述,创建 SBD 分区。

  3. 运行 crm configure.

  4. external/sbd 配置为屏蔽设备:

    crm(live)configure# primitive sbd_stonith stonith:external/sbd \
        params pcmk_delay_max=30 meta target-role="Started"
  5. 使用 show 查看所做的更改。

  6. 如果所有设置均正确无误,请使用 commit 提交更改,然后使用 quit 退出 crm 实时配置。

有关为 DLM 配置资源的细节,请参见第 20.2 节 “配置 DLM 群集资源”

22.3 创建 GFS2 卷

第 22.2 节 “配置 GFS2 服务和 STONITH 资源”中所述将 DLM 配置为群集资源后,将系统配置为使用 GFS2 并创建 GFS2 卷。

注意
注意:用于存储应用程序和数据文件的 GFS2 卷

我们建议您通常应将应用程序文件和数据文件存储在不同的 GFS2 卷上。如果应用程序卷和数据卷具有不同的装入要求,则必须将它们存储在不同的卷上。

开始之前要准备计划用于 GFS2 卷的块设备。将这些设备留作可用空间。

然后按过程 22.2 “创建并格式化 GFS2 卷”中所述,使用 mkfs.gfs2 创建并格式化 GFS2 卷。下面列出了此命令最重要的参数。有关详细信息和命令语法,请参见 mkfs.gfs2 手册页。

锁定协议名称 (-p)

要使用的锁定协议的名称。可接受的锁定协议包括 lock_dlm(用于共享存储);如果您将 GFS2 用作本地文件系统(只有 1 个节点),则可以指定 lock_nolock 协议。如果未指定此选项,将采用 lock_dlm 协议。

锁定表名称 (-t)

与您正在使用的锁定模块对应的锁定表字段。其为 clustername:fsnameclustername 值必须与群集配置文件 /etc/corosync/corosync.conf 中的值匹配。只允许此群集的成员使用此文件系统。fsname 值是唯一的文件系统名称(1 到 16 个字符),用于将此 GFS2 文件系统与创建的其他文件系统区分开。

日志数量 (-j)

要为 gfs2_mkfs 创建的日志数量。要挂载该文件系统的每台计算机至少需要一个日志。如果未指定此选项,将创建一个日志。

过程 22.2︰ 创建并格式化 GFS2 卷

只在群集节点之上执行以下步骤。

  1. 打开终端窗口并以 root 用户身份登录。

  2. 使用命令 crm status 检查群集是否已上线。

  3. 使用 mkfs.gfs2 实用程序创建并格式化卷。有关此命令的语法的信息,请参见 mkfs.gfs2 手册页。

    例如,要创建最多支持 32 个群集节点的新 GFS2 文件系统,请使用以下命令:

    # mkfs.gfs2 -t hacluster:mygfs2 -p lock_dlm -j 32 /dev/disk/by-id/DEVICE_ID

    hacluster 名称与文件 /etc/corosync/corosync.conf 中的 cluster_name 项相关(这是默认设置)。

    始终使用稳定的设备名称(例如 /dev/disk/by-id/scsi-ST2000DM001-0123456_Wabcdefg)。

22.4 挂载 GFS2 卷

可以手动挂载 GFS2 卷,也可以按过程 22.4 “使用群集管理器挂载 GFS2 卷”中所述使用群集管理器挂载。

过程 22.3︰ 手动挂载 GFS2 卷
  1. 打开终端窗口并以 root 用户身份登录。

  2. 使用命令 crm status 检查群集是否已上线。

  3. 使用 mount 命令从命令行挂载卷。

警告
警告:手动挂载的 GFS2 设备

如果您为了进行测试手动挂载了 GFS2 文件系统,在开始将其作为群集资源使用前,请务必将其卸载以恢复原状。

过程 22.4︰ 使用群集管理器挂载 GFS2 卷

要使用高可用性软件挂载 GFS2 卷,请在群集中配置 OCF 文件系统资源。以下过程使用 crm 外壳配置群集资源。或者,您可以使用 Hawk2 配置资源。

  1. 启动外壳,并以 root 用户或同等身份登录。

  2. 运行 crm configure.

  3. 配置 Pacemaker 以在群集中的每个节点上挂载 GFS2 文件系统:

    crm(live)configure# primitive gfs2-1 ocf:heartbeat:Filesystem \
      params device="/dev/disk/by-id/DEVICE_ID" directory="/mnt/shared" fstype="gfs2" \
      op monitor interval="20" timeout="40" \
      op start timeout="60" op stop timeout="60" \
      meta target-role="Stopped"
  4. gfs2-1 原始资源添加到您在过程 20.1 “配置 DLM 的基础组”中创建的 g‑storage 组。

    crm(live)configure# modgroup g-storage add gfs2-1

    受限于基础组的内部共置和顺序约束,gfs2-1 资源仅可在已有 dlm 资源在运行的节点上启动。

  5. 使用 show 查看所做的更改。

  6. 如果所有设置均正确无误,请使用 commit 提交更改,然后使用 quit 退出 crm 实时配置。