What has not been mentioned yet is that you can use ZFS in combination with HA if you are okay with async replication.
The VM replication feature of Proxmox VE needs ZFS storage underneath. Create the same ZFS pool on each node with the storage config for it. You can then use the replication to set up replication of the disks between the nodes. In a 3 node cluster, that would be 2 replication jobs.
If you do run into the situation that a node fails, then the HA stack will start that VM on one of the remaining nodes. Since the replication jobs made sure that the local disk image(s) are present, the VM can start.
The only downside is that you might have some potential data loss in the HA case. Depending on how long the replication interval is and when the last successful replication ran before the node failed.
Replication intervals can be as short as each minute.
I personally use it in a small 2 node cluster and have the interval down to 1 minute for the mail server but quite a bit longer for the VMs where I can live with some data loss. For example, the DNS and DHCP server.