作者:田逸(formyz)
Proxmox VE集群一旦创建,其集群的名称就固定下来。在Proxmox VE Web管理后台,没有相应的菜单或按钮对应与集群名称的修改(仅仅发现修改虚拟机选项有修改名称的地方)。在宿主系统Debian下,Proxmox VE管理集群的工具为pvecm,其选项中,也不存在对集群名称进行修改的条目。
有时候,觉得集群的名字不妥,非要去改,特别是已经Promxox VE集群已经部署大量的虚拟机及应用的场景,重建的话,大家非常的大,集群的名字能改么?肯定能的!
开始尝试改名
如果是已经投入生产的集群,改名慎重。等我等多试验几次后,再照搬不迟。
闲话少说,直接登录Proxmox VE 集群任意节点宿主系统Debian,执行如下指令确认当前集群的名称(当然也可以在Proxmox VE的Web管理后台查看获得)。
pvecm status |
我现在打算将集群名由“sery”更改成“formyz”,于是将集群名“sery”作为关键字,在宿主系统Debian下进行查找,指令如下:
grep sery /etc -r |
得到三个文件存在集群名关键字“sery”,如下图所示。
实际上是两个文件有包含,因为/etc/pve/corosync.conf是一样的内容,会相互同步。按照相同的搜索出来的顺序,先修改文件“/etc/pve/.members”,用编辑器或者sed这样的工具,企图都无法得逞,因为它是只读文件,chmod赋权限也不行,看来此路不通。
那就第二个文件“/etc/pve/corosync.conf”的主意了。不停服务,直接动手,更改后的文本如下图所示。
更改完保存,再切换到集群中的其它节点,看与之对应的corosync.conf文件是否也跟着变更。正常情况下,一定是同步变化。切换到Proxmox VE Web管理后台,浏览器页面刷新,心跳加速,不变化倒没事,就怕集群崩溃了。
情况还好,集群名虽然没有变,但它没有发生意外!
再来,我就不信改不了它。切换到任一节点宿主系统Debian,停该节点的集群服务,指令如下:
systemctl stop pve-cluster |
正确的停止,集群WEB管理后台会有个红叉。
再来看那个只读文件“/etc/pve/.merbers”,消失了,想改也没戏呢!想着Proxmox VE的pmxcfs
pmxcfs与之有莫大关系,执行如下指令,使集群变成本地模式。
pxmcfs -l |
再试着启动该节点的集群服务,哈哈,文件“/etc/pve/.members”现身了,其内容也发生变化,如下图所示。
赶紧切换到 Proxmox VE Web管理后台,浏览器刷新页面,哈哈,成功了!
经验总结
操作步骤
- 修改同步配置文件“/etc/pve/corosync.conf”;
- 停止集群服务pve-cluster;
- 集群模式转换成本地模式;
- 重启集群服务 pve-cluster;
- 在其它节点重复第“2-4”步,不必所有节点都执行,只要节点数能满足投票即可。
造成的影响
执行操作的节点,运行在其上的虚拟机或者容器,会发生漂移和重新启动。重要系统,操作前最好对虚拟机或者容器执行手动备份。