适用于 SUSE Linux Enterprise High Availability Extension 12 SP5

19 GFS2

摘要

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

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

19.1 GFS2 包和管理实用程序

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

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

表 19.1︰ GFS2 实用程序

GFS2 实用程序

描述

fsck.gfs2

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

gfs2_jadd

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

gfs2_grow

产生 GFS2 文件系统。

mkfs.gfs2

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

tunegfs2

允许查看和处理 GFS2 文件系统参数,例如 UUIDlabellockprotolocktable

19.2 配置 GFS2 服务和 STONITH 资源

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

过程 19.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 配置资源组的细节,请参见过程 17.1 “配置 DLM 的基础组”

19.3 创建 GFS2 卷

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

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

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

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

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

表 19.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 创建的日记数量。要装入该文件系统的每台计算机至少需要一个日记。如果未指定此选项,将创建一个日记。

过程 19.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 相关(这是默认设置)。

19.4 装入 GFS2 卷

可以手动装入 GFS2 卷,也可以按过程 19.4 “使用群集管理器装入 GFS2 卷”中所述使用群集管理器将其装入。

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

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

  3. 使用 mount 命令从命令行装入卷。

警告
警告:手动装入的 GFS2 设备

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

过程 19.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. 创建一个基本组,该组包含您在过程 17.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 当前配置。

打印此页