Copyright © 2007 Joseph Mack, released under GPL.v3
Software Freedom Day, UNC, Chapel Hill, NC, 14 Sep 2007
Table of Contents
Figure 1. LVS Logo
Figure 2. LVS Overview
LVS project was started in 1999 by Wensong Zhang, a student in China.
Current LVS teams members
Richard Stallman
better performance/throughput/reliability for a fixed cost.
Figure 3. Single Big Server
Figure 4. Load Balanced Server
Because of the linear scaling of cost with performance, for sufficiently large throughput, everyone turns to clusters of computers.
Here are the names of the LVS components.
Figure 5. LVS nomenclature
On being "virtual"
virtual: from Merriam-Webster
"being on, or simulated on a computer or computer network"
Table 1. Packet path in LVS-DR connecting to VIP:80
network segment | packet type | packet addressing |
---|---|---|
client->director | IP | CIP:1025->VIP:80 |
director->realserver | ethernet (content = IP packet) | (MAC DIP)->(MAC RIP1)[CIP:1025->VIP:80] |
realserver->client | IP | VIP:80->CIP:1025 |
Figure 6. LVS-DR 1st hop
Figure 7. LVS-DR 2nd hop
Figure 8. LVS-DR 3rd hop
Client/Server semantics are preserved
neither the client nor the realserver can tell that the director was part of the packet exchange.
Figure 9. LVS scheduling - Round Robin
All machines (director, realservers) have the VIP and all VIPs can be seen by the router. How does the router know to send the packets from the client to the director and not to the realservers?
Figure 12. LVS arp problem
The failover and reconfiguration demons send commands to ipvsadm.
Figure 13. LVS realserver failover
failure (unplanned maintenance): use healthchecking - continuously
Here's the test setup (we used 2.0 and 2.2 kernels).
Figure 15. LVS Performance Test Setup
With this setup, the only measurement you get is
The only possible performance parameters you can retrieve for a tcpip connection are
The only variable available (when the two end points have been decided), is
Figure 16. Sample data, client-director (log-linear)
Figure 17. Sample data, mtu as variable (log-log)
Figure 18. LVS test, parametric plot (log-log)
What we found
The realservers are not exposed to clients
Because the realservers will be compromised first, all logins occur on the director, from a separate administrative network. You must not be able to login
Figure 19. LVS Security
Standard security applies:
Packet path
packets - director:VIP:80->0/0
Quiz: what should you do with a SYN packet for VIP:81 (or VIP:22)? (assume no service listening on the director:VIP:81, VIP:22).
Packets on the RIP network
packets from the realserver to the client: VIP:80->0/0
Being part of an internet project:
Joining an internet project