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

20 GFS2

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

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

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

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

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

表 20.1︰ GFS2 实用程序

GFS2 实用程序

说明

fsck.gfs2

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

gfs2_jadd

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

gfs2_grow

产生 GFS2 文件系统。

mkfs.gfs2

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

tunegfs2

可用于查看和操作 GFS2 文件系统参数(例如 UUIDlabellockprotolocktable)。

20.2 配置 GFS2 服务和 STONITH 资源

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

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

您需要配置屏蔽设备。没有一个适当的 STONITH 机制(如 external/sbd),则配置会失败。

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

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

  3. 运行 crm configure

  4. external/sbd 配置为屏蔽设备,并将 /dev/sdb2 作为存储检测信号和屏蔽的共享储存上的专用分区:

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

  6. 如果全部都正确,请使用 commit 提交更改,并使用 exit 退出 crm 当前配置。

有关为 DLM 配置资源组的细节,请参见过程 18.1 “配置 DLM 的基础组”

20.3 创建 GFS2 卷

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

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

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

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

然后,按过程 20.2 “创建并格式化 GFS2 卷”中所述使用 mkfs.gfs2 创建并格式化 GFS2 卷。此命令最重要的参数列于表 20.2 “重要的 GFS2 参数”中。有关更多信息和命令语法,请参见 mkfs.gfs2 手册页。

表 20.2︰ 重要的 GFS2 参数

GFS2 参数

描述和建议

锁定协议名称 (-p)

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

锁定表名称 (-t)

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

日志数量 (-j)

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

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

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

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

  2. 使用命令 crm status 检查群集是否联机。

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

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

    root # mkfs.gfs2 -t hacluster:mygfs2 -p lock_dlm -j 32 /dev/sdb1

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

20.4 挂载 GFS2 卷

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

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

  2. 使用命令 crm status 检查群集是否联机。

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

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

如果因方便测试而手动挂载了 GFS2 文件系统,在开始将其作为群集资源使用前,请务必再将其卸载。

过程 20.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/sdb1" directory="/mnt/shared" fstype="gfs2" \
      op monitor interval="20" timeout="40" \
      op start timeout="60" op stop timeout="60" \
      meta target-role="Stopped"
  4. 创建一个基本组,该组包含您在过程 18.1 “配置 DLM 的基础组”中创建的 dlm 基元以及 gfs2-1 基元。克隆组:

    crm(live)configure# group g-storage dlm  gfs2-1
         clone cl-storage g-storage \
         meta interleave="true"

    由于基本组具有内部共置和顺序约束,Pacemaker 将仅在同样已运行 dlm 资源的节点上启动 gfs2-1 资源。

  5. 使用 show 复查更改。

  6. 如果全部都正确,请使用 commit 提交更改,并使用 exit 退出 crm 当前配置。