Setting cluster with HA

redfury

New Member
Jun 10, 2024
6
0
1
Hello all, I am still learning about Proxmox and now I want to go to the HA clustering. I need your help in order to better understand the steps.

I will start from the assumption that I will have a Proxmox "master" which run a VM Windows server 2019/2022 as DC and a second VM Windows server 2019/2022 as a file server/terminal server where will run an accounting software and from where the internet banking operations are done. The "slave" Proxmox will act as a "backup" in case of master failure. A 3rd device will be used for quorum using QDevice

My main goal is to have a minimum downtime in case of a failure on server 1 or 2 and especially to have a minimum to none file loss.

Proxmox will be installed on HP 380 G8/G9, HW raid controller, 16/32 Xeon core/threads and 32/64GB of RAM with 4x4 TB SAS in RAID 5 with 2 logical drives 50GB for Proxmox and the rest for VM. Both server have 4x10GB NIC. Port 1 will be used to connect to the internet in a router/switch.

Installing PVE and creating a cluster is not a problem but now it came the storage for VM in the idea of creating and using HA. Most guides I read/watch suggest using ZFS mirror with 2 drives. Here start the questions. Since I only have a 11TB drive how to configure a ZFS mirror. Should I do something different from the creation of logical drives? I suppose that ZFS is a soft RAID so I should just "present the drives" to proxmox, without creating a HW RAID? ZFS is asking for a large amount of RAM to be present in the system?

And here came the second question. I heard about the idea of using a shared storage for VM's. How to do it (a 3rd server running Proxmox and/or a Synology to create a shared storage )?? This way, there will not be necessary to "synchronize" files (just settings??) between the master and slave PVE and in case of failure the VM from slave PVE will automatically start and all the files will be exactly in the same state as it was until "master" machine stopped? Which are the steps in this method and what about the storage from the master/slave PVE, do I need big drives and creating ZFS? Or I could just use 4x300GB SAS in RAID (5 or 10)?

Now about synchronizing/replicating job. In case of using ZFS which is the minimum synchronizing time (can be every minute?) and can be used a second NIC card for this job? The machine would be directly connected via network cable or through a switch? How can be set up this way. Using a shared storage I think would not have a big impact in VM's functionality if using a short time replication of 1 minute so would not be necessary to connect separate he machine via a second NIC on each side . Am i right?

After setting the storage, let's start from the 2VM's created on the node 1 (master). Which are the following steps? Creating HA and then replication jobs?

Which solution is best in order to achieve the primary goal? To have an "automatized" redundant system with minimum human intervention (we are not talking about missing human over watch over the system, just automatically "switch between the nodes)? What#s happened with the opened files/remote session in case of a failure after the "slave" is taking place?

Thanks in advance and I hope that this will be also helpful to others which have the same questions.

PS. If a 3rd PVE is used as a shared storage, can it be used also as the 3rd member to quorum by adding to the cluster?

PS. Links to written or video guides are also welcomed, I am not a lazy person. If I have a guidance regarding the steps and links to resources, I think I can manage to make it work. Sharing is carrying.
 
Last edited:
Since I only have a 11TB drive .. I suppose that ZFS is a soft RAID ...
ZFS can be setup as raid but as you have only 1 disk it doesn't have sense as you want the raid deal with disk failure. ZFS can be setup as solo disk too.

.. ZFS.. which is the minimum synchronizing time (can be every minute?)
It is all done in real time, writes are forwardeded to all involved devices when done. When something goes wrong but the FS still can operate you can go on and deal with the errors later (e.g. a failing disk on a raid1) and if go horribly wrong you will be noticed on sight.

Which solution is best in order to achieve the primary goal? To have an "automatized" redundant system with minimum human intervention

The tl:dr is 3 nodes, all important VMs inside HA and using shared storage. As you said your 3rd node is only a quorum node, you need to be sure that the other two nodes can hold all the VMs on a single node and them on a HA group of only that two nodes.

Which shared storage to use is your choice, Proxmox handles a lot of different ones. It has Ceph integrated too (but you need at least 3 different nodes hosting osds to use it properly) . Keep in mind that failure of a node and failure of a shared storage are two different things. If you can avoid the one affecting the other, that's best.
 
Last edited:
  • Like
Reactions: redfury
The tl:dr is 3 nodes, all important VMs inside HA and using shared storage. As you said your 3rd node is only a quorum node, you need to be sure that the other two nodes can hold all the VMs on a single node and them on a HA group of only that two nodes.

Which shared storage to use is your choice, Proxmox handles a lot of different ones. It has Ceph integrated too (but you need at least 3 different nodes hosting osds to use it properly) . Keep in mind that failure of a node and failure of a shared storage are two different things. If you can avoid the one affecting the other, that's best.

You can also setup Replication of disk images of VMs you want under HA. Replication will use ZFS send to the configured nodes, thus up to 1 minute old images. If a node fails, the cluster HA will boot the HA VMs on other nodes according to your configured priorities using the latest replicated images on those nodes. If you want to gracefully reboot a node, then all VMs are migrated nicely for 100 % uptime, of course.

This is not 100 % HA, but close enough in a home lab environment most of the time. The only requirement currently is that the ZFS pools on the different nodes have the same name, for example "rpool", as the storage needs to be configured on cluster level and needs to be identical name on all nodes.
 
Last edited:
Hi, I have the following issue now.
I set up 3 PVE, on 3rd node I create a Synology machine, on Syno I create a NFS share and from node 1(clustermaster) I added the shared folder as storage. It was correct added to all 3 nodes. I used this storage to create a Windows 11 VM on node 3. Everything have worked fine. During the weekend I have turned off node 2 and 3. Today, I start both nodes and after both started (Syon machne is set to start on boot) I can see the Syno share on node 1 and 2 but on node 3 (where is the Syno machine) it is not mounted correct, if I click on the storage I receive this message:
err.jpg
I do not know why and how to solve it (I tryied command mount -a but no luck).

This is how the cluster look:
cluster.jpg

Running the command pvesm nfsscan it return this:
root@niprxt3:~# pvesm nfsscan 192.168.150.209
/volume1/vm-synostore 192.168.159.202,192.168.150.151,192.168.150.203

Node 1 is the IP with 151 at the end, node 2 is with 203, node 3 is 202 and the Syno machine is 209.

In Syno machine it look loke this:

synostorenfs.jpg

Any idea on how to solve the issue with node 3 and that error message?