附录 C. 了解所生成的 gdeploy 配置文件


Gdeploy 会基于配置文件自动使用 Red Hat Gluster Storage 置备一台或多台机器。

Cockpit UI 提供了一个向导,可帮助用户生成适合用来实施红帽超融合基础架构基础级别部署的 gdeploy 配置文件。

本节介绍了当已在 Cockpit UI 中指定以下配置详细信息时将会生成的 gdeploy 配置文件:

  • 3 个主机,其 IP 地址分别为 192.168.0.101、192.168.0.102 和 192.168.0.103
  • 没有其他软件包或库。
  • 适用于所有卷的仲裁配置。
  • 12 个使用 RAID 6 进行配置的数据块,条带大小为 256 KB。

这会使得 gdeploy 配置文件包含以下各个部分。

有关此处定义的所有部分的更多详细信息,请查看 Red Hat Gluster Storage 的《管理指南》:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.2/html/administration_guide/chap-red_hat_storage_volumes#chap-Red_Hat_Storage_Volumes-gdeploy_configfile

[hosts] 部分

[hosts]
192.168.0.101
192.168.0.102
192.168.0.103

[hosts] 部分定义了要根据该配置文件配置的三台物理机的 IP 地址。

[script1] 部分

[script1]
action=execute
ignore_script_errors=no
file=/usr/share/ansible/gdeploy/scripts/grafton-sanity-check.sh -d sdb -h 192.168.0.101,192.168.0.102,192.168.0.103

[script1] 部分指定了要运行的脚本,该脚本会验证所有主机是否都已经正确配置,以使 gdeploy 能在不出现任何错误的情况下运行。

底层存储配置

[disktype]
raid6

[diskcount]
12

[stripesize]
256

[disktype] 部分指定了适用于所有主机的底层存储硬件配置。

[diskcount] 部分指定了 RAID 存储空间中的磁盘数量。对于 JBOD 配置,您可以忽略这一设置。

[stripesize] 部分指定了 RAID 存储空间的条带大小(以千字节为单位)。对于 JBOD 配置,您可以忽略这一设置。

启用并重新启动 NTPD

[service1]
action=enable
service=ntpd

[service2]
action=restart
service=ntpd

这两个 service 部分会在所有主机上启用并重新启动网络时间协议守护进程,即 NTPD。

在所有主机上创建物理卷

[pv1]
action=create
devices=sdb
ignore_pv_errors=no

[pv1] 部分会在所有主机的 sdb 设备上创建一个物理卷。

在所有主机上创建卷组

[vg1]
action=create
vgname=gluster_vg_sdb
pvname=sdb
ignore_vg_errors=no

[vg1] 部分会在所有主机以前创建的物理卷中创建一个卷组。

创建逻辑卷精简池

[lv1:{192.168.0.101,192.168.0.102}]
action=create
poolname=gluster_thinpool_sdb
ignore_lv_errors=no
vgname=gluster_vg_sdb
lvtype=thinpool
poolmetadatasize=16GB
size=1000GB

[lv2:192.168.0.103]
action=create
poolname=gluster_thinpool_sdb
ignore_lv_errors=no
vgname=gluster_vg_sdb
lvtype=thinpool
poolmetadatasize=16GB
size=20GB

[lv1:*] 部分会在前两个主机上创建一个大小为 1000 GB 的精简池,其元数据池的大小则为 16 GB。

[lv2:*] 部分会在第三个主机上创建一个大小为 20 GB 的精简池,其元数据池的大小则为 16 GB。这个精简池就是用于仲裁数据块的逻辑卷。

您还可以使用 chunksize 变量,但使用时要格外小心。chunksize 定义了快照、缓存池和精简池所使用的区块大小。在默认情况下,指定该值时会以千字节为单位。对于 RAID 5 和 RAID 6 卷,gdeploy 会将条带大小乘以磁盘数,以计算出默认的区块大小。对于 RAID 10,默认的区块大小为 256 KB。

警告

红帽建议至少使用默认区块大小。如果因区块过小而导致卷没有可用来存储元数据的空间,那么该卷将无法创建数据。红帽还建议您对逻辑卷进行监控,以确保它们能在元数据卷被占满之前得到扩展或创建更多存储空间。

创建底层引擎存储空间

[lv3:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_engine
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/engine
size=100GB
lvtype=thick

[lv4:192.168.0.103]
action=create
lvname=gluster_lv_engine
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/engine
size=10GB
lvtype=thick

[lv3:*] 部分在前两个主机上创建了一个大小为 100 GB 且名为 gluster_lv_engine 的厚置备逻辑卷。该卷被配置为挂载于 /gluster_bricks/engine

[lv4:*] 部分在第三个主机上为引擎创建了一个大小为 10 GB 的厚置备逻辑卷。该卷被配置为挂载于 /gluster_bricks/engine

创建底层数据和虚拟机启动磁盘存储空间

[lv5:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_data
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/data
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=500GB

[lv6:192.168.0.103]
action=create
lvname=gluster_lv_data
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/data
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=10GB

[lv7:{192.168.0.101,192.168.0.102}]
action=create
lvname=gluster_lv_vmstore
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/vmstore
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=500GB

[lv8:192.168.0.103]
action=create
lvname=gluster_lv_vmstore
ignore_lv_errors=no
vgname=gluster_vg_sdb
mount=/gluster_bricks/vmstore
lvtype=thinlv
poolname=gluster_thinpool_sdb
virtualsize=10GB

[lv5:*][lv7:*] 部分在前两个主机上创建了一个大小为 500 GB 的逻辑卷,以用作 data 卷和 vmstore 卷的数据块。

[lv6:*][lv8:*] 部分在第三个主机上创建了一个大小为 10 GB 的逻辑卷,以用作 data 卷和 vmstore 卷的仲裁数据块。

这些数据块被配置为挂载于 /gluster_bricks/data,vmstore 数据块则被配置为挂载于 /gluster_bricks/vmstore

配置 SELinux 文件系统标签

[selinux]
yes

[selinux] 部分指定所创建的存储空间应该使用适用于 Gluster 存储空间的 SELinux 文件系统标签进行配置。

启动 glusterd

[service3]
action=start
service=glusterd
slice_setup=yes

[service3] 部分启动了 glusterd 服务并配置了一个控制组,以确保 glusterd 不会占用所有系统资源;有关详细信息,请查看 Red Hat Enterprise Linux 的《资源管理指南》:https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Resource_Management_Guide/index.html

配置防火墙

[firewalld]
action=add
ports=111/tcp,2049/tcp,54321/tcp,5900/tcp,5900-6923/tcp,5666/tcp,16514/tcp
services=glusterfs

[firewalld] 部分开启了进行 gluster 流量传输所需的端口。

禁用 gluster hook

[script2]
action=execute
file=/usr/share/ansible/gdeploy/scripts/disable-gluster-hooks.sh

[script2] 部分禁用了可能会干扰超融合基础架构的 gluster hook。

创建 gluster 卷

[volume1]
action=create
volname=engine
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/engine/engine,192.168.0.102:/gluster_bricks/engine/engine,192.168.0.103:/gluster_bricks/engine/engine
ignore_volume_errors=no
arbiter_count=1

[volume2]
action=create
volname=data
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/data/data,192.168.0.102:/gluster_bricks/data/data,192.168.0.103:/gluster_bricks/data/data
ignore_volume_errors=no
arbiter_count=1

[volume3]
action=create
volname=vmstore
transport=tcp
replica=yes
replica_count=3
key=group,storage.owner-uid,storage.owner-gid,network.ping-timeout,performance.strict-o-direct,network.remote-dio,cluster.granular-entry-heal
value=virt,36,36,30,on,off,enable
brick_dirs=192.168.0.101:/gluster_bricks/vmstore/vmstore,192.168.0.102:/gluster_bricks/vmstore/vmstore,192.168.0.103:/gluster_bricks/vmstore/vmstore
ignore_volume_errors=no
arbiter_count=1

[volume*] 部分配置了三个仲裁复制 Red Hat Gluster Storage 卷:enginedatavmstore。每个卷在第三个主机上都有一个相应的仲裁块。

keyvalue 参数用于设置以下选项:

  • group=virt
  • storage.owner-uid=36
  • storage.owner-gid=36
  • network.ping-timeout=30
  • performance.strict-o-direct=on
  • network.remote-dio=off
  • cluster.granular-entry-heal=enable
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.