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 卷。有关语法信息,请参见其手册页。
GFS2 实用程序 |
描述 |
---|---|
fsck.gfs2 |
检查文件系统的错误并进行选择性的修改。 |
gfs2_jadd |
将其他日记添加到 GFS2 文件系统。 |
gfs2_grow |
产生 GFS2 文件系统。 |
mkfs.gfs2 |
在设备上创建 GFS2 文件系统,这通常是一个共享设备或分区。 |
tunegfs2 |
允许查看和处理 GFS2 文件系统参数,例如 |
19.2 配置 GFS2 服务和 STONITH 资源 #
在创建 GFS2 卷之前,必须先配置 DLM 和 STONITH 资源。
您需要配置屏蔽设备。没有一个适当的 STONITH 机制(如 external/sbd
),则配置会失败。
启动壳层,并以
root
用户身份或同等身份登录。如过程 11.3 “初始化 SBD 设备”中所述,创建 SBD 分区。
运行
crm
configure
。将
external/sbd
配置为屏蔽设备,并将/dev/sdb2
作为存储检测信号和屏蔽的共享储存上的专用分区:crm(live)configure#
primitive
sbd_stonith stonith:external/sbd \ params pcmk_delay_max=30 meta target-role="Started"使用
show
复查更改。如果全部都正确,请使用
commit
提交更改,并使用exit
退出 crm 当前配置。
有关为 DLM 配置资源组的细节,请参见过程 17.1 “配置 DLM 的基础组”。
19.3 创建 GFS2 卷 #
按第 19.2 节 “配置 GFS2 服务和 STONITH 资源”中所述将 DLM 配置为群集资源后,将系统配置为使用 GFS2 并创建 GFS2 卷。
我们建议您通常应将应用程序文件和数据文件储存在不同的 GFS2 卷上。如果应用程序卷和数据卷具有不同的装入要求,则必须将它们储存在不同的卷上。
开始之前要准备计划用于 GFS2 卷的块设备。将这些设备留作可用空间。
然后,按过程 19.2 “创建并格式化 GFS2 卷”中所述使用 mkfs.gfs2
创建并格式化 GFS2 卷。此命令最重要的参数列于表 19.2 “重要的 GFS2 参数”中。有关更多信息和命令语法,请参见 mkfs.gfs2
手册页。
GFS2 参数 |
描述和建议 |
---|---|
锁定协议名称 ( |
要使用的锁定协议的名称。可接受的锁定协议包括 lock_dlm(用于共享储存);如果您将 GFS2 用作本地文件系统(只有 1 个节点),则可以指定 lock_nolock 协议。如果未指定此选项,假定采用 lock_dlm 协议。 |
锁定表名称 ( |
与您正在使用的锁定模块对应的锁定表字段。该字段的格式为 clustername:fsname。clustername 必须与群集配置文件 |
日记数量 ( |
要为 gfs2_mkfs 创建的日记数量。要装入该文件系统的每台计算机至少需要一个日记。如果未指定此选项,将创建一个日记。 |
只在群集节点之一上执行以下步骤。
以
root
用户身份打开终端窗口并登录。使用命令
crm status
检查群集是否联机。使用
mkfs.gfs2
实用程序创建并格式化卷。有关此命令的语法的信息,请参见mkfs.gfs2
手册页。例如,要在
/dev/sdb1
上创建最多支持 32 个群集节点的新的 GFS2 文件系统,请使用以下命令:root #
mkfs.gfs2 -t hacluster:mygfs2 -p lock_dlm -j 32 /dev/sdb1hacluster
名称与文件/etc/corosync/corosync.conf
中的条目cluster_name
相关(这是默认设置)。
19.4 装入 GFS2 卷 #
可以手动装入 GFS2 卷,也可以按过程 19.4 “使用群集管理器装入 GFS2 卷”中所述使用群集管理器将其装入。
以
root
用户身份打开终端窗口并登录。使用命令
crm status
检查群集是否联机。使用
mount
命令从命令行装入卷。
如果因方便测试而手动装入了 GFS2 文件系统,在开始将其作为群集资源使用前,请务必再将其卸载。
要使用高可用性软件装入 GFS2 卷,请在群集中配置 OCF 文件系统资源。以下过程使用 crm
外壳配置群集资源。或者,您可以使用 Hawk2 配置资源。
启动壳层,并以
root
用户身份或同等身份登录。运行
crm
configure
。配置 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"创建一个基本组,该组包含您在过程 17.1 “配置 DLM 的基础组”中创建的
dlm
基元以及gfs2-1
基元。克隆组:crm(live)configure#
group
g-storage dlm gfs2-1clone
cl-storage g-storage \ meta interleave="true"由于基本组具有内部共置和顺序约束,Pacemaker 将仅在同样已运行
dlm
资源的节点上启动gfs2-1
资源。使用
show
复查更改。如果全部都正确,请使用
commit
提交更改,并使用exit
退出 crm 当前配置。