我有一个 2 对等 GlusterFS 系统。它最初使用简单的主机名 file01 和 file02 创建。这些主机被添加到 /etc/hosts 以使其正常工作。
现在我们要开始使用 FQDN,因为我们想使用 GlusterFS 本机客户端将其他服务器连接到卷。我们不想为每个服务器维护主机文件。
是否可以重新配置当前设置以使用完整主机名 file01.example.com 和 file02.example.com?
谢谢你!
答案1
当您需要重命名您的对等点、您的砖块等而不破坏您的集群时,您必须停止您的 glusterfs 服务,然后重命名 glusterfs 数据文件中的所有出现的内容。
我将为您提供一个脚本(不提供任何担保),我用它来自动执行此任务。
警告:继续之前请务必备份您的数据,并谨慎操作。 请勿在未理解其具体功能的情况下执行任何命令,确保您处于正确的路径中,如果适用,请在每个命令中进行正确的名称替换(以大写表示),并确保所有新的对等名称都可以通过 DNS 解析。
必须在所有节点上执行后续步骤
步骤1:停止 glusterd 服务。
sudo systemctl stop glusterd.service
第2步:列出 /var/lib/glusterd/vols 目录的内容。
ls -l /var/lib/glusterd/vols
步骤3:重命名卷数据文件,例如每卷做:
cd /var/lib/glusterd/vols/YOURVOLUMENAME
ls -l | grep .data.vol #<-- gets the list of files you need to rename for the current volume
sudo mv clusterdata.OLDNAME1.data.vol clusterdata.NEWNAME1.data.vol
sudo mv clusterdata.OLDNAME2.data.vol clusterdata.NEWNAME2.data.vol
sudo mv clusterdata.OLDNAME-N.data.vol clusterdata.NEWNAME-N.data.vol
步骤4:重命名卷砖,用于每卷做:
cd /var/lib/glusterd/vols/YOURVOLUMENAME/bricks
ls -l | grep :-data #<-- gets the list of brick files you need to rename for the current volume
sudo mv OLDNAME1\:-data NEWNAME1\:-data
sudo mv OLDNAME2\:-data NEWNAME2\:-data
sudo mv OLDNAME-N\:-data NEWNAME-N\:-data
步骤5:检测配置文件中所有出现的 OLDNAME:
cd /var/lib/glusterd
sudo grep -rnw . -e 'OLDNAME'
第 6 步:自动替换配置文件中所有出现的OLDNAME:
cd /var/lib/glusterd
sudo find . -type f -exec sed -i 's/OLDNAME/NEWNAME/g' {} \;
步骤7:检查所有出现的项是否都已被替换:
sudo grep -rnw . -e 'OLDNAME'
sudo grep -rnw . -e 'NEWNAME'
仅当您在所有节点上完成步骤后...
在每个节点上启动 glusterd 服务,并检查状态。
sudo systemctl start glusterd.service
sudo systemctl status glusterd.service
sudo gluster peer status
sudo gluster volume status
sudo gluster volume info
答案2
根据http://lists.gluster.org/pipermail/gluster-users/2017-January/029587.html
- 停止 N1、N2 上的 glusterd 进程。
- 如果您尝试更改 N1 的主机名,那么在 N2 中,您需要将位于 /var/lib/glusterd 的所有文件中的旧主机名替换为新主机名
- 在所有节点上重新启动 GlusterD 并检查对等状态。