Hardware Load Balancing


I am planning on setting up two instances for load balancing at the hardware level.

So far, I have the following infrastructure in place for this:

  • Two Virtualmin licenses
  • MySQL lives on separate servers (replication enabled)
  • User Accounts will be stored on LDAP on separate servers
  • User data (home directories) will be kept on separate server via storage (mount points will be dictated on virtualmin via fstab)
  • Email - not quite sure here but I assume since email lives on users home directories, this shouldn’t be a problem and email should be processed automatically on both servers without an issue? If not, what steps can I take to process email more efficiently? Can email be separated to some other server?

Beside email, am I missing anything else? How are you guys handling load-balancing scenarios?

I thought I would clean up my question to specify exactly what I would like to do in hopes that I can get better direction.

Here is what I am trying to achieve:

I would like to have all traffic request go through my hardware load balancer. My load balancer will direct traffic based on geo-location and http request traffic. This part I already have figured out.

Next, I have MySQL separated and doing replication. User accounts are managed via LDAP on separate LDAP servers. Home directories are managed on NFS with replication as well. Virtualmin Pro will point to all of those appropriate locations.

The only piece I am missing is getting my Virtualmin system to manage my account creations across all systems and email across all systems based on load. With that said, it would be ideal if one Virtualmin system can handle the creation process of the virtual servers. This one server would (which could potentially have a hot-spare) also allow users to login and manage their domains and settings for their virtual server. However, the content served by Apache, such as their websites, is what I would like load balanced. So if anyone hits user.domain.com for that account, it directs users to the appropriate server based on load.

For example, if user sends a request to their website, I want them to be directed to the server with the least load. Though my load balancer is going to handle this, I am not sure how I need Virtualmin setup to comply with that. Do I need Virtualmin Pro on each server with the same exact settings? Or, do I need Virtualmin Pro on one system and then Virtualmin GPL on every other system? Or do I need Virtualmin Pro on one system and just Apache w/ Webmin on the rest of the nodes? This setup won’t be an HA setup. It will be a load distribution balancer so all boxes will be live at all times. The only HA, if I do decide to add it, would be a “hot-spare” for the main Virtualmin Pro box in case that one goes down.

Any thoughts?

Thanks in advance

Does anyone have any thoughts on how I can handle email in this type of setup as well as how Virtualmin would handle replication as well when a user makes changes to their environment via the control panel?