For more information about how KD Interactive Hosted Email has designed world-class, high availability services, please visit our High Availability section
. The following are some of the software components that assist us in achieving high availability.
lvs is used to load balance connections and traffic across SMTP, POP, IMAP, and Webmail clusters. Many well-known companies use lvs successfully for high-volume, high-availability network services. The load balancers themselves are redundant and manage those relationships via the Virtual Router Redundancy Protocol (VRRP)
Cluster nodes are monitored for service availability via keepalived. Keepalived signals the lvs software to remove nodes from the cluster when issues are detected in network layers 3
, or 7
. Keepalived was designed to integrate very closely with lvs, which brings performance and stability benefits to the KD Interactive Hosted Email email hosting platform.
The pound reverse web proxy software load-balances our webmail http/s services. In addition to load balancing, pound can also detect node failures in a cluster, decode https, and split static content from dynamic content requests to two different sub-clusters. Pound is maintained by Apsis Security
A cluster of POP/IMAP proxy servers provide email client access over the Internet and then those proxy servers attach client requests to the proper mailbox storage servers at the data center. Dovecot-proxy
is extremely efficient at handling large numbers of connections from clients and is built by the same group that has created our POP and IMAP software.
Email storage servers are deployed in pairs, and DRBD
keeps the data in sync between the two servers. DRBD works by creating a virtual block IO device
that doesn't complete a write operation until both members of a working pair of servers have saved a copy of the data.
DRBD needs a higher-level utility that senses if one of the email storage servers in the pair has become unavailable, and heartbeat provides that functionality. Heartbeat not only detects the failure, but signals the failover server to begin responding to requests to read and write email data.