附录 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