附录 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 卷:engine、data 和 vmstore。每个卷在第三个主机上都有一个相应的仲裁块。
key 和 value 参数用于设置以下选项:
-
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

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.