PVE 在集群模式下,某些情况(比如:主机卡死了)下配置 PVE 虚拟机,需要修改虚拟机配置文件,但是 PVE 集群模式下修改配置和逻辑和独立节点模式不同,下面是 PVE 集群模式下修改配置文件的教程

正常状态 Quorate: Yes

集群具有法定数目的:是(集群内所有主机在线)

一般情况下,只要集群所有机器都跑着,就属于这个状态,卡死了一般也在这个状态
这种情况修改配置文件最简单,方法也很多

修改本机配置

无论独立节点和集群模式,本机的配置都存储于 /etc/pve 目录下,可以直接进行编辑修改
例:/etc/pve/lxc:LXC 容器配置文件目录
例:/etc/pve/qemu-server:虚拟机配置文件目录

修改其他机器设置

首先连接到集群中任意一台机器,然后打开 /etc/pve/nodes/机器名 目录,这个目录就是对应机器的配置文件
例:/etc/pve/nodes/PVESVR/qemu-server:”PVESVR”的虚拟机配置文件目录
修改完成后,重启对应主机来同步配置文件(如果能做到,请使用关机-开机代替重启),这种方法也能修改当前主机配置,如果使用这种方法修改当前主机配置,则不需要重启(因为 /dev/pve 链接到 /dev/pve/nodes/<当前主机>)

异常状态 Quorate: No

集群具有法定数目的:否(集群内任意主机离线)

如果有主机离线,就会进入这个状态。这个状态下修改配置文件很麻烦,所以请再看看这台机子能不能连上集群。
在这个状态下,集群内所有主机配置文件目录的权限是 440(r–r—–),即只读,你也无法使用 chmod 修改权限,这是因为 /etc/pve 是 pve-cluster 程序接手的一个目录,用 fuse(/dev/fuse) 挂载。
如果你想要修改,就只能把你的机器设置为独立节点模式(即退出集群):

1
2
3
4
5
6
7
systemctl stop pve-cluster.service
systemctl stop corosync.service
pmxcfs -l
rm /etc/pve/corosync.conf
rm -rf /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster.service

然后应该能正常修改配置文件目录 /etc/pve 了