Proxmox Server Ideal Setup Question

gooddesignusa

New Member
May 1, 2014
1
0
1
Hi guys. Before I start, I just want to say thank you in advance for taking the time to read this and reply (if you reply).

We have been using proxmox on our dedicated server for about 3 years now. Unfortunately, our dedicated server is reaching resource limits and expanding the resources is going to cost too much, monthly. We have opted to purchase our own hardware and colocate the server at a trusted data center. Our server consists of:

Supermicro 1U SYS-1027R-WRF Chassis and Motherboard
(2x) Xeon E5-2620 v2 six core processors
Wintec Server Series 64GB 4 x 16GB DDR3 RAM
LSI MegaRAID LSI00331 PCI-Express 3.0 RAID controller card
(8x) WD XE 300 GB Enterprise Hard Drive - 2.5 Inch
OCZ Revodrive SSD

So we are planning on running a RAID 6 set up with the WD drives, and have the operating system (with proxmox) installed on top of it. We would also be hosting all of our containers on the RAID as well.

We are a (very) small web development firm but we have some prestigious clients who demand as close to 100% uptime as possible. We have about 4 or 5 websites that require this (realistically impossible) 100% uptime. The rest of our websites (currently about 12) just need a stable, reliable, and decently performing home. Unfortunately, as mentioned earlier, we simply ran out of resources on our dedicated server to host this many websites.

Now for the questions:

Question 1)
Right now (on our dedicated server), each container is running it's own instance of mysql, apache, etc. - would it be better (at least for mysql) to run on the hardware node (or it's own container) and just have each container connect to a central database one?
If that is the case, then is there a way for us to run the main mysql container on the SSD (for performance), but have it backing up to a different container in such a way that if the SSD was ever to fail (we have had two SSDs fail in the past) the load would automatically switch to the backup container running on the RAID, which ideally would be in perfect sync with the main (dead) mysql container. And then, once the main mysql container comes back up, have the backup copy all the changes to it and then go back to using the main SSD container for regular functioning.
To further complicate this, all of our websites are using the Drupal CMS. Drupal uses the database for everything, and having the RAID backup database even a little bit out of sync when the SSD database crashes could cause serious problems.

Question 2)
What can we do to further increase performance? Is there anyway to mirror two containers in such a way that our high demand websites run on the SSD but are kept perfectly in sink with a backup container, so if the SSD crashes the backup container automatically takes over?

Question 3)
What else could you recommend we do for performance and reliability gains, if you had the same hardware and needs how would you set up the server? As mentioned earlier, reliability is most important followed by performance, and while we are aware that for true HA setup we would need a clustered solution, but unfortunately we can't afford a clustered solution.

Thanks again, we appreciate your time.
 
Your uptime needs require more than a single server.
I have similar needs and will just describe our setup rather than answer your questions (I am using KVM not openvz)

Proxmox servers are built in pairs and use DRBD for replication.
In our app, the DB is the Single Point of Failure.
By having it on DRBD, if a node fails we can simply start the DB server up on the other node, that solves 90% of the failure problems (hardware issues)

We do not run every site on a single DB VM, never put all your eggs in one basket!
I would rather have one DB problem break one or two sites than have one DB problem break ALL sites.

Sometimes bad things happen, maybe you accidently delete your DB VM or its filesystem is corrupted.
Doing some sort of transaction log shipping/DB mirroring/replication or whatver it is your DB platform supports is also a good idea.
Ideally this would be done to a VM running on different physical hardware too.

Proxmox cluster works best with a minimum of three nodes. so ideally a minimum of four nodes (two drbd pairs) is what you would want.
We have 16 nodes running DRBD in production.

Here is what I would do if I was starting over today:
Start with three nodes and use CEPH for the storage.
I would only use DRBD if CEPH performance was not suffecient (like on high IOPS DB servers)
Ofcourse with lots of disks and nodes CEPH can perform well too.

CEPH can grow with you, just add more disks/servers when needed, its redundant, highly avaliable.
Any one of your three nodes could fail and you could keep all of your VMs running, that is the sort of reliability you are seeking.

If you are doing CEPH or DRBD you will need 10G network if you desire high performance.
If 10G ethernet is too expensive second hand Infiniband works well too, thats what we are using.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!