Hello everyone.
I have a proxmox v 8.2.4 cluster composed of 3 nodes. For now, I have 3 storages. A samba storage to an external QNAP and a ZFS storage with deduplication enabled for VM images. I use the replication feature for the security of VM disks. Each VM disk is replicated on the 3 nodes. I also configured 2 VMs in HA. For now everything is fine and works wonderfully well.
Physically, the 3 nodes are made up of 3 small NUCs, 16-thread CPU and 16 GB of RAM with a 1 TB SSD hard drive on each.
The VM disks have a capacity of between 8 and 32 GB.
I wanted to switch to glusterFS to have a volume dedicated to the disk images of the cluster's VMs. And therefore have shared storage. Which would allow me to have a VM migration almost instantly or almost (a few seconds).
But here it is. I am running into a thorny problem:
History:
When I reboot the cluster nodes or when there is a power outage (No, I don't want an inverter), the configuration with ZFS storage combined with the replication functionality works perfectly well. The disks of my VMs remain intact.
So I want to have a replica of 3 on my glusterfs volume. Since I have 3 nodes. When I configure glusterfs independently on each node via the following service for mounting the volume:
The volumegfs mounts fine when all 3 nodes have been rebooted.
The 3 nodes do not all restart at the same time and in disorder. It therefore takes a little time for the volumegfs volume to be mounted and operational on all nodes.
And this is where the disaster occurs. Proxmox VE does not allow me to issue a condition when the flag of a VM is on onstart, so it must start on its node. The volumegfs volume is not yet ready which causes a failure to start the VM.
The proxmox web interface to declare a glusterfs storage does not yet meet my expectations (Replica of 3).
And I prefer to use glusterfs autonomously.
I had to set up a Ceph cluster external to the Proxmox cluster in the past for a large infrastructure and it works wonderfully.
But, here, my infrastructure is very small. That's why it seemed wise to use glusterfs.
What I'm looking for is to specify to proxmox-ve when it restarts that when a VM has its onstart flag so it must start it, which it does perfectly well, BUT, proxmox-ve must wait and retry as long as the volumegfs volume is not operational.
And apparently the virtual machine manager of proxmox-ve is internal. I don't see how to get out of this problem.
Thank you very much in advance for your help.
I have a proxmox v 8.2.4 cluster composed of 3 nodes. For now, I have 3 storages. A samba storage to an external QNAP and a ZFS storage with deduplication enabled for VM images. I use the replication feature for the security of VM disks. Each VM disk is replicated on the 3 nodes. I also configured 2 VMs in HA. For now everything is fine and works wonderfully well.
Physically, the 3 nodes are made up of 3 small NUCs, 16-thread CPU and 16 GB of RAM with a 1 TB SSD hard drive on each.
The VM disks have a capacity of between 8 and 32 GB.
I wanted to switch to glusterFS to have a volume dedicated to the disk images of the cluster's VMs. And therefore have shared storage. Which would allow me to have a VM migration almost instantly or almost (a few seconds).
But here it is. I am running into a thorny problem:
History:
When I reboot the cluster nodes or when there is a power outage (No, I don't want an inverter), the configuration with ZFS storage combined with the replication functionality works perfectly well. The disks of my VMs remain intact.
So I want to have a replica of 3 on my glusterfs volume. Since I have 3 nodes. When I configure glusterfs independently on each node via the following service for mounting the volume:
Code:
cat /etc/systemd/system/glusterfs-mount.service
[Unit]
Description=Mount GlusterFS Volume
After=network-online.target glusterd.service
Wants=network-online.target glusterd.service
[Service]
Type=idle
ExecStart=/bin/mount -t glusterfs localhost:/volumegfs /gluster
RemainAfterExit=yes
Restart=on-failure
RestartSec=10
StartLimitIntervalSec=600
StartLimitBurst=10
[Install]
WantedBy=multi-user.target
The volumegfs mounts fine when all 3 nodes have been rebooted.
Bash:
df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev 960M 0 960M 0% /dev
tmpfs 197M 536K 197M 1% /run
/dev/mapper/k1--vg-root 3,8G 2,4G 1,3G 67% /
tmpfs 984M 0 984M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
/dev/mapper/k1--vg-gfs 7,8G 1,1G 6,4G 14% /mnt/gfs
/dev/sda1 455M 156M 275M 37% /boot
localhost:/volumegfs 7,8G 1,1G 6,4G 15% /gluster
tmpfs 197M 0 197M 0% /run/user/1002
The 3 nodes do not all restart at the same time and in disorder. It therefore takes a little time for the volumegfs volume to be mounted and operational on all nodes.
And this is where the disaster occurs. Proxmox VE does not allow me to issue a condition when the flag of a VM is on onstart, so it must start on its node. The volumegfs volume is not yet ready which causes a failure to start the VM.
The proxmox web interface to declare a glusterfs storage does not yet meet my expectations (Replica of 3).
And I prefer to use glusterfs autonomously.
I had to set up a Ceph cluster external to the Proxmox cluster in the past for a large infrastructure and it works wonderfully.
But, here, my infrastructure is very small. That's why it seemed wise to use glusterfs.
What I'm looking for is to specify to proxmox-ve when it restarts that when a VM has its onstart flag so it must start it, which it does perfectly well, BUT, proxmox-ve must wait and retry as long as the volumegfs volume is not operational.
And apparently the virtual machine manager of proxmox-ve is internal. I don't see how to get out of this problem.
Thank you very much in advance for your help.
Last edited: