ITIS 3110 Jason Watson
Replication methods o Primary/Backup o Master/Slave o Multi-master Load-balancing methods o DNS Round-Robin o Reverse Proxy
Duplication of data between multiple machines Two main uses o Failure mitigation o Load balancing
Primary/Backup Master/Slave Multi-Master
Ensures availability of a ‘resource’ Only one server provides access to resource at a time Does not provide any load balancing Uses o Services which do not understand replication o Services which would be too expensive to replicate Too much active state
Primary server is active o Has exclusive lock on resource Backup server is on standby Heartbeat between Primary and Backup o Allows each server to keep track of other’s state o Heartbeat can be in-band or out-of-band In-band: e.g. over same network link Out-of-band: e.g. serial, secondary network connection, etc.
When heartbeat lost: Backup steals lock on resource o Ensures primary is down (e.g. cut power) o Performs recovery on resource (e.g. fsck) o Backup may even steal primary’s MAC address! Backup becomes primary Old primary will become backup once heartbeat re-established
Client or Router PrimarySecondary Resource Heartbeat
File Servers o Disk array is the resource Virtual Machine Servers o Virtual Machine is the resource
All servers can be read Only master server accepts writes Can provide rudimentary load balancing Must be implemented in a protocol Uses o Stateless, Read-Heavy protocols
Can be push or pull o Master pushes changes to slaves o Slaves pull changes from master
Most protocols support incremental updates o Every change is versioned o Master keeps a journal of changes o Slave asks for updates since a particular version o Master replays journal from version requested All protocols support full updates o Master sends complete data set to slave
MasterSlave Read Write Updates
DNS Kerberos LDAP Databases
Any node can accept read or writes Will distribute writes to all other nodes Very complicated to implement Cluster file systems use this method
Multi-master replication technique Shares memory space between multiple machines Common usage is to distribute HTTP session state between web servers
Load balancing distributes load across multiple servers Often relies on replication to distribute data to the multiple servers
DNS Round-Robin Reverse Proxy
Simplest Method Multiple DNS records for a single address DNS server will return addresses in different order every time it is requested Does not assign work based on load Can not detect failed servers
DNS Kerberos LDAP SMTP HTTP
SMTP does not require replication Servers receive and transmit mail They do not need to all have the same mail messages
HTTP is an odd beast Purest form is stateless o Shared file system is sufficient Sessions, other state complicates matters o Reverse Proxy is simpler o DNS Round-Robin + Distributed Shared Memory works too
Device that sits in front of a group of servers and direct traffic o Client traffic is terminated on load balancer o Load balancer opens new connection to one back-end server and forwards client data Often used for Web servers Many companies provide ‘turn-key’ solutions Can make intelligent decisions when forwarding traffic to servers o Send less traffic to heavily loaded servers o Skip dead servers
SSL endpoint Compression Caching Intrusion Prevention
Client Server Server Server Reverse Proxy
FTP HTTP
Many HTTP reverse proxies support session pinning Session pinning o A user session will always be forwarded to same server o Allows that server to keep track of session data for that user