Short story: I got involved with assisting a non-profit. Over past 2 years I've consolidated all of their "servers" (just old workstations all over the office floor) into a single host running ProxmoxVE on an older Dell R200 server that they had.
Currently there are 5-7 VMs running their website, file server, accounting software, membership database, and some kind of app instances. The server is showing it's age, has a failing motherboard (won't boot with PCIe expansion card present), and it's has 12GB RAM already in 4 slots. They've also experienced data loss as a result of drive(s) failing before.
Through hardware donations, the organization obtained a pair of Dell R510 servers. The servers have identical CPUs, slightly different amounts of RAM, and different amount and sized drives.
The RAM and current drives configurations:
- Server1: 24GB RAM, 2x 146GB RAID1, 4x146GB in RAID10
- Server2: 16GB RAM, 2x 146GB RAID1, 2x300GB in RAID1
I've used Proxmox in the past for personal use but my experience is limited to one VM-host scenarios. They don't need a 24/7 HA environment. Since servers are used and already past their best-before date I would like to setup some kind of a redundant environment. If one VM host fails, let the other take the load. I'm OK with manual failover and few hours of downtime to make the switch if needed.
My first attempt was to setup hosts as separate Proxmox nodes. Small enough of environment. But how do I share/sync VM disks so if one host fails the other can run the VMs? Regularly copy snapshots via rsync or some other method? NFS share available to the other machine?
This turned into reading about Proxmox clusters. Seems like it would simplify management (from one web interface) and allows for scenarios as above. But there is no fence-device. Only 2 servers are available. The drives aren't identical.
I've attempted to setup a cluster environment but ran into a number of issues and have plenty of questions.
My idea:
Each server has local storage. The first pair of drives (RAID1) will be for Proxmox install, iso, templates, etc. These don't have to be sync-ed between hosts, right? Actual VM disks would be stored on the second RAID volume(s). RAID 10 should provide plenty of performance.
I would designate Server1 as primary. Server2 would be a hot-standby. No VMs would actually run on server2 unless server1 is down, right? Less important: Can I use server2 as test ground for other VMs that have no production use?
How do I sync the VM disk images from server1 to the second server? I've attempted to create the same dir/mounts on both servers and add these as "Directory" storage on each (non-shared). But in cluster mode I only ever see primary's storage on web interface. Secondary's storage disappears from web interface. I thought this meant these are now auto-synced as I saw mentions of corosync on screen at cluster setup. But that does not appear to be the case. I've tried creating files and VMs and these weren't syncing across machines' local storage volumes.
Also in cluster mode, secondary's web interface becomes inaccessible. So what would happen if primary goes down? I wont be able to access the web interface now?
Could someone advise me if what I am attempting is a possibility? If not, what is possible with what they have?
Thank you.
Currently there are 5-7 VMs running their website, file server, accounting software, membership database, and some kind of app instances. The server is showing it's age, has a failing motherboard (won't boot with PCIe expansion card present), and it's has 12GB RAM already in 4 slots. They've also experienced data loss as a result of drive(s) failing before.
Through hardware donations, the organization obtained a pair of Dell R510 servers. The servers have identical CPUs, slightly different amounts of RAM, and different amount and sized drives.
The RAM and current drives configurations:
- Server1: 24GB RAM, 2x 146GB RAID1, 4x146GB in RAID10
- Server2: 16GB RAM, 2x 146GB RAID1, 2x300GB in RAID1
I've used Proxmox in the past for personal use but my experience is limited to one VM-host scenarios. They don't need a 24/7 HA environment. Since servers are used and already past their best-before date I would like to setup some kind of a redundant environment. If one VM host fails, let the other take the load. I'm OK with manual failover and few hours of downtime to make the switch if needed.
My first attempt was to setup hosts as separate Proxmox nodes. Small enough of environment. But how do I share/sync VM disks so if one host fails the other can run the VMs? Regularly copy snapshots via rsync or some other method? NFS share available to the other machine?
This turned into reading about Proxmox clusters. Seems like it would simplify management (from one web interface) and allows for scenarios as above. But there is no fence-device. Only 2 servers are available. The drives aren't identical.
I've attempted to setup a cluster environment but ran into a number of issues and have plenty of questions.
My idea:
Each server has local storage. The first pair of drives (RAID1) will be for Proxmox install, iso, templates, etc. These don't have to be sync-ed between hosts, right? Actual VM disks would be stored on the second RAID volume(s). RAID 10 should provide plenty of performance.
I would designate Server1 as primary. Server2 would be a hot-standby. No VMs would actually run on server2 unless server1 is down, right? Less important: Can I use server2 as test ground for other VMs that have no production use?
How do I sync the VM disk images from server1 to the second server? I've attempted to create the same dir/mounts on both servers and add these as "Directory" storage on each (non-shared). But in cluster mode I only ever see primary's storage on web interface. Secondary's storage disappears from web interface. I thought this meant these are now auto-synced as I saw mentions of corosync on screen at cluster setup. But that does not appear to be the case. I've tried creating files and VMs and these weren't syncing across machines' local storage volumes.
Also in cluster mode, secondary's web interface becomes inaccessible. So what would happen if primary goes down? I wont be able to access the web interface now?
Could someone advise me if what I am attempting is a possibility? If not, what is possible with what they have?
Thank you.
Last edited: