SlideShare a Scribd company logo
High Availability Low
Dollar Load Balancing
Simon Karpen
System Architect, VoiceThread
skarpen@voicethread.com
Via Karpen Internet Systems
skarpen@karpeninternet.com
These slides are licensed under the Creative Commons
Attribution Share-Alike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/US/
Overview
• What is Load Balancing
• Why load balance
• What services should you load balance
• What are some common load balancing topologies
• What are some open source load balancing technologies
• How would we build a HA configuration out of these
technologies
• How do I IPv6 enable IPv4 services with a single
command line on a dual-stack machine
What is Load Balancing
• Split traffic across two or more servers
• Many different techniques and topologies
• Layer 4 or layer 7
• Useful for most TCP services
• Divides traffic using a variety of algorithms
(WLC, RR, etc)
Why Load Balance
• Improve performance
• Improve redundancy
• More cost effective scaling
o 4-socket machines cost 4x as much as 2-socket
• More cost effective redundancy
o n+1 or n+2 instead of 2n
• SSL Acceleration
• Security / IPS / Choke Point
Which Services
• Without built-in failover
• More than one infrastructure unit of
performance
• Good: web services, application services
• Probably not: DNS, inbound SMTP
• Examples: virtually any web site you visit!
• Stickiness – understand your services
Background - OSI Model
• Layer 1: Physical (cable, electrical)
• Layer 2: Datalink (example: Ethernet)
• Layer 3: Network (example: IP)
• Layer 4: Transport (example: TCP)
• Layer 5: Session
• Layer 6: Presentation
• Layer 7: Application (example: HTTP)
Topologies
• Application Proxy
• Half-NAT
• Full-NAT
• Direct Server Return
Application Proxy
Application Proxy
• Positives
o Simplest to setup
o Minimal platform dependencies
o Minimal changes to other infrastructure
o 100% Userspace
• Negatives
o Limited total performance
o Hides end user IPs from applications
Full NAT
Half NAT
Half and Full NAT
• Full NAT
o Similar to an application proxy
o Destination still doesn’t know source IP
o All packets still go through the load balancer
• Half NAT
o Destination IP is changed, source IP is not
o Allows the application to know the client
o All packets still go through the load balancer
Direct Server Return
Direct Server Return
• Incoming packets pass through the load
balancer
• Outgoing direct to the gateway / client
• Most scalable
• Most complex to configure
• Application servers must all have public
application IP, non-ARP
o via arptables, loopback, etc
Apache mod_proxy_balancer
• Application (layer 7) proxy for web
• Runs under any cluster manager
• Cookie based persistence
• Apache rewrite, redirect, etc at the load balancer
• Web (http, https) traffic only
• SSL offload / SSL issues
• Anything that runs Apache (even Windows)
Apache mod_proxy_balancer
<VirtualHost my.site.com:80>
ServerName my.site.com
ProxyPass / balancer://mysite/ lbmethod=byrequests
ProxyPassReverse / balancer://mysite
<Proxy balancer://mysite>
BalancerMember http://10.0.0.1/ route=mysite1
BalancerMember http://10.0.0.2/ route=mysite2
</Proxy>
ProxyPreserveHost On
</VirtualHost>
pen
• Runs under any cluster manager
• Simple layer 4 or layer 7 proxy
• Very simple configuration
• Moderate traffic
• Really shines for internal services
• Already IPv6 ready!
• Linux, BSD, Solaris
pen
• Configuration via command line options
• Use init scripts from web site, or roll your own
• Init scripts store command line options in pen.cf
pen –x 6144 –c 262144 –h –H –p <pidfile>
192.168.232.20:80 192.168.232.21:80 192.168.232.22:80
pen –x 500 –c 16384 –h –p <pidfile> 192.168.232.20:993
192.168.232.23:993 192.168.232.24:993
IPVS / Pulse / Piranha
• These work together as a system
• IPVS: load balancing
• Pulse: cluster manager (lightweight)
• Piranha: web interface for configuration
• EL5 version is IPv4 only
• EL6 version is IPv4 / IPv6
• Layer 4, in-kernel, Linux only
IPVS
• IP Virtual Server, implemented via Netfilter
• Controlled via ipvsadm
• Or use a front-end like piranha
• Supports persistence, many schedulers
Command line:
ipvsadm –A –t 192.168.23.20:80 –s rr
ipvsadm –a –t 192.168.23.20:80 –r 192.168.23.21:80 –m
Ipvsadm –a –t 192.168.23.20:80 –r 192.168.23.22:80 –m
Piranha
• Graphical configuration interface
• Manage Pulse and IPVS configuration
• Web based, some expensive LB use it too
• Handles half-NAT, full-NAT and DSR topologies
• Runs on port 3636, password protected
• Recommend access via ssh tunnel
Piranha - Pulse
• Simple, single purpose cluster manager
• Only supports 2-node active/passive failover
• Configured via Piranha web interface
Piranha - Pulse
Enable the Backup Server for HA
Piranha - Pulse
Configure the Redundant IP, Sync options
Piranha – Virtual Server
Add a virtual server, then Edit its configuration
Be sure to make all changes on BOTH hosts!
Piranha – Virtual Server
Piranha – Real Servers
Add two real servers, and prepare to edit
Piranha – Real Server
Configure both real servers on both hosts
Piranha - Finalize
• Configure monitoring scripts (write if needed)
• Activate real servers
• Activate virtual servers
• Add non-ARP’d VIPs on actual real servers (if
using DSR)
• Start pulse (init script) on both servers
• Test, verify, debug!
Cluster Managers
• LVS / IPVS fits well with Pulse
• Pen and Apache are simple, run under virtually
any cluster manager
• Positive experience with Heartbeat
• Choose based on organizational needs
• (aka use what your team knows!)
• Simple services, limited needs from CM
Heartbeat, pen, Apache
• Apache (on EL5/EL6) has good init scripts
• Pen init scripts from web site need killall in stop
section (otherwise it doesn’t work)
• Run under Heartbeat v1 configuration as a
service and an IP Address
• Apache init scripts ready for Heartbeat v2 /
Pacemaker / CRM
• Pen init scripts will need a rewrite
Minimal ha.cf
• ucast eth1 192.168.232.10
• ucast eth1 192.168.232.11
• keepalive 2
• warntime 10
• deadtime 30
• initdead 120
• udpport 694
• auto_failback on
• node lb0
• node lb1
• respawn hacluster /usr/lib64/heartbeat/ipfail
V1 style haresources for
Load Balancing
lb0 192.168.232.20 pen httpd
lb1
IPv6!
• Bootstrapping problem, you can help!
• LVS / IPVS supports IPv6 in EL6 but not EL5
• Pen supports IPv6 out of the box
• Apache mod_proxy supports IPv6
• Reports mixed on mod_proxy_balancer
• Could use IPv6 mod_proxy in front of IPv4
mod_proxy_balancer
Easy IPv6
• One command line, as promised!
• Uses pen, mostly cross platform (Linux / Solaris /
BSD)
• Must run on a dual stack box
• Application must be TCP, not UDP
• Run under a cluster manager for HA
pen <regular options> ipv6addr:svcport
ipv4addr:svcport
Now you can IPv6 enable your web site!
Final Thoughts
• Lots of options in terms of software and
topology
• This does not cover global load balancing
• This can be layered with global LB or ADN
• Balance performance, cost, complexity
• Think about organizational and application
needs
Questions and resources
http://siag.nu/pen/
http://httpd.apache.org/
http://docs.redhat.com/docs/en-
US/Red_Hat_Enterprise_Linux/5/html-
single/Virtual_Server_Administration/index.h
tml
http://lbwiki.org/
http://www.linuxvirtualserver.org/

More Related Content

What's hot

Istio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersIstio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform Engineers
SaiLinnThu2
 
Introduction To OpenStack
Introduction To OpenStackIntroduction To OpenStack
Introduction To OpenStack
Haim Ateya
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
rajdeep
 
kubernetes - minikube - getting started
kubernetes - minikube - getting startedkubernetes - minikube - getting started
kubernetes - minikube - getting startedMunish Mehta
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
Gunnar Hillert
 
Introduction to OpenStack Cinder
Introduction to OpenStack CinderIntroduction to OpenStack Cinder
Introduction to OpenStack Cinder
Sean McGinnis
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
Grafana Labs
 
Kali linux os
Kali linux osKali linux os
Kali linux os
Samantha Lawrence
 
Proxmox Clustering with CEPH
Proxmox Clustering with CEPHProxmox Clustering with CEPH
Proxmox Clustering with CEPH
FahadIbrar5
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
Mirantis
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
영우 김
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
Jerry Jalava
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
Moises Silva
 
Apache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya KulkarniApache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya Kulkarniwebhostingguy
 
66 pfsense tutorial
66 pfsense tutorial66 pfsense tutorial
66 pfsense tutorial
equinonesr
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
rajdeep
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)
rootfs32
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introductionopenstackindia
 
Network Packet Analysis with Wireshark
Network Packet Analysis with WiresharkNetwork Packet Analysis with Wireshark
Network Packet Analysis with Wireshark
Jim Gilsinn
 
OpenStack Glance
OpenStack GlanceOpenStack Glance
OpenStack Glance
openstackstl
 

What's hot (20)

Istio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform EngineersIstio Service Mesh for Developers and Platform Engineers
Istio Service Mesh for Developers and Platform Engineers
 
Introduction To OpenStack
Introduction To OpenStackIntroduction To OpenStack
Introduction To OpenStack
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
kubernetes - minikube - getting started
kubernetes - minikube - getting startedkubernetes - minikube - getting started
kubernetes - minikube - getting started
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
Introduction to OpenStack Cinder
Introduction to OpenStack CinderIntroduction to OpenStack Cinder
Introduction to OpenStack Cinder
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
 
Kali linux os
Kali linux osKali linux os
Kali linux os
 
Proxmox Clustering with CEPH
Proxmox Clustering with CEPHProxmox Clustering with CEPH
Proxmox Clustering with CEPH
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기오픈스택 멀티노드 설치 후기
오픈스택 멀티노드 설치 후기
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
 
FreeSWITCH Monitoring
FreeSWITCH MonitoringFreeSWITCH Monitoring
FreeSWITCH Monitoring
 
Apache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya KulkarniApache Web Server Architecture Chaitanya Kulkarni
Apache Web Server Architecture Chaitanya Kulkarni
 
66 pfsense tutorial
66 pfsense tutorial66 pfsense tutorial
66 pfsense tutorial
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introduction
 
Network Packet Analysis with Wireshark
Network Packet Analysis with WiresharkNetwork Packet Analysis with Wireshark
Network Packet Analysis with Wireshark
 
OpenStack Glance
OpenStack GlanceOpenStack Glance
OpenStack Glance
 

Similar to Load Balancing

(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
BIOVIA
 
haproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdfhaproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdf
PawanVerma628806
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
tdc-globalcode
 
HPC Controls Future
HPC Controls FutureHPC Controls Future
HPC Controls Future
rcastain
 
EKON27-FrameworksTuning.pdf
EKON27-FrameworksTuning.pdfEKON27-FrameworksTuning.pdf
EKON27-FrameworksTuning.pdf
Arnaud Bouchez
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling Magento
Mathew Beane
 
pps Matters
pps Matterspps Matters
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
Alex Moskvin
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Panagiotis Kanavos
 
Training Slides: 205 - Installing and Configuring Tungsten Dashboard
Training Slides: 205 - Installing and Configuring Tungsten DashboardTraining Slides: 205 - Installing and Configuring Tungsten Dashboard
Training Slides: 205 - Installing and Configuring Tungsten Dashboard
Continuent
 
Open stack ha design & deployment kilo
Open stack ha design & deployment   kiloOpen stack ha design & deployment   kilo
Open stack ha design & deployment kilo
Steven Li
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101ConFoo
 
Balázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a TunnelBalázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a Tunnel
hacktivity
 
Scalable Web Apps
Scalable Web AppsScalable Web Apps
Scalable Web Apps
Piotr Pelczar
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
David Newman
 
IPVS for Docker Containers
IPVS for Docker ContainersIPVS for Docker Containers
IPVS for Docker Containers
Bob Sokol
 
[En] IPVS for Docker Containers
[En] IPVS for Docker Containers[En] IPVS for Docker Containers
[En] IPVS for Docker Containers
Andrey Sibirev
 
How to Supercharge your PHP Web API
How to Supercharge your PHP Web APIHow to Supercharge your PHP Web API
How to Supercharge your PHP Web API
Aurimas Niekis
 

Similar to Load Balancing (20)

(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
(ATS4-PLAT01) Core Architecture Changes in AEP 9.0 and their Impact on Admini...
 
haproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdfhaproxy-150423120602-conversion-gate01.pdf
haproxy-150423120602-conversion-gate01.pdf
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
HPC Controls Future
HPC Controls FutureHPC Controls Future
HPC Controls Future
 
EKON27-FrameworksTuning.pdf
EKON27-FrameworksTuning.pdfEKON27-FrameworksTuning.pdf
EKON27-FrameworksTuning.pdf
 
Midwest PHP - Scaling Magento
Midwest PHP - Scaling MagentoMidwest PHP - Scaling Magento
Midwest PHP - Scaling Magento
 
pps Matters
pps Matterspps Matters
pps Matters
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
 
IPv6 on the Interop Network
IPv6 on the Interop NetworkIPv6 on the Interop Network
IPv6 on the Interop Network
 
Training Slides: 205 - Installing and Configuring Tungsten Dashboard
Training Slides: 205 - Installing and Configuring Tungsten DashboardTraining Slides: 205 - Installing and Configuring Tungsten Dashboard
Training Slides: 205 - Installing and Configuring Tungsten Dashboard
 
Open stack ha design & deployment kilo
Open stack ha design & deployment   kiloOpen stack ha design & deployment   kilo
Open stack ha design & deployment kilo
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
Balázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a TunnelBalázs Bucsay - XFLTReaT: Building a Tunnel
Balázs Bucsay - XFLTReaT: Building a Tunnel
 
Scalable Web Apps
Scalable Web AppsScalable Web Apps
Scalable Web Apps
 
IPv6 Transition Considerations for ISPs
IPv6 Transition Considerations for ISPsIPv6 Transition Considerations for ISPs
IPv6 Transition Considerations for ISPs
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
IPVS for Docker Containers
IPVS for Docker ContainersIPVS for Docker Containers
IPVS for Docker Containers
 
[En] IPVS for Docker Containers
[En] IPVS for Docker Containers[En] IPVS for Docker Containers
[En] IPVS for Docker Containers
 
How to Supercharge your PHP Web API
How to Supercharge your PHP Web APIHow to Supercharge your PHP Web API
How to Supercharge your PHP Web API
 

Recently uploaded

Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
nhiyenphan2005
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
zyfovom
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
JeyaPerumal1
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
harveenkaur52
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
Trending Blogers
 

Recently uploaded (20)

Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
学位认证网(DU毕业证)迪肯大学毕业证成绩单一比一原版制作
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
Explore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories SecretlyExplore-Insanony: Watch Instagram Stories Secretly
Explore-Insanony: Watch Instagram Stories Secretly
 

Load Balancing

  • 1. High Availability Low Dollar Load Balancing Simon Karpen System Architect, VoiceThread skarpen@voicethread.com Via Karpen Internet Systems skarpen@karpeninternet.com These slides are licensed under the Creative Commons Attribution Share-Alike 3.0 license, http://creativecommons.org/licenses/by-sa/3.0/US/
  • 2. Overview • What is Load Balancing • Why load balance • What services should you load balance • What are some common load balancing topologies • What are some open source load balancing technologies • How would we build a HA configuration out of these technologies • How do I IPv6 enable IPv4 services with a single command line on a dual-stack machine
  • 3. What is Load Balancing • Split traffic across two or more servers • Many different techniques and topologies • Layer 4 or layer 7 • Useful for most TCP services • Divides traffic using a variety of algorithms (WLC, RR, etc)
  • 4. Why Load Balance • Improve performance • Improve redundancy • More cost effective scaling o 4-socket machines cost 4x as much as 2-socket • More cost effective redundancy o n+1 or n+2 instead of 2n • SSL Acceleration • Security / IPS / Choke Point
  • 5. Which Services • Without built-in failover • More than one infrastructure unit of performance • Good: web services, application services • Probably not: DNS, inbound SMTP • Examples: virtually any web site you visit! • Stickiness – understand your services
  • 6. Background - OSI Model • Layer 1: Physical (cable, electrical) • Layer 2: Datalink (example: Ethernet) • Layer 3: Network (example: IP) • Layer 4: Transport (example: TCP) • Layer 5: Session • Layer 6: Presentation • Layer 7: Application (example: HTTP)
  • 7. Topologies • Application Proxy • Half-NAT • Full-NAT • Direct Server Return
  • 9. Application Proxy • Positives o Simplest to setup o Minimal platform dependencies o Minimal changes to other infrastructure o 100% Userspace • Negatives o Limited total performance o Hides end user IPs from applications
  • 12. Half and Full NAT • Full NAT o Similar to an application proxy o Destination still doesn’t know source IP o All packets still go through the load balancer • Half NAT o Destination IP is changed, source IP is not o Allows the application to know the client o All packets still go through the load balancer
  • 14. Direct Server Return • Incoming packets pass through the load balancer • Outgoing direct to the gateway / client • Most scalable • Most complex to configure • Application servers must all have public application IP, non-ARP o via arptables, loopback, etc
  • 15. Apache mod_proxy_balancer • Application (layer 7) proxy for web • Runs under any cluster manager • Cookie based persistence • Apache rewrite, redirect, etc at the load balancer • Web (http, https) traffic only • SSL offload / SSL issues • Anything that runs Apache (even Windows)
  • 16. Apache mod_proxy_balancer <VirtualHost my.site.com:80> ServerName my.site.com ProxyPass / balancer://mysite/ lbmethod=byrequests ProxyPassReverse / balancer://mysite <Proxy balancer://mysite> BalancerMember http://10.0.0.1/ route=mysite1 BalancerMember http://10.0.0.2/ route=mysite2 </Proxy> ProxyPreserveHost On </VirtualHost>
  • 17. pen • Runs under any cluster manager • Simple layer 4 or layer 7 proxy • Very simple configuration • Moderate traffic • Really shines for internal services • Already IPv6 ready! • Linux, BSD, Solaris
  • 18. pen • Configuration via command line options • Use init scripts from web site, or roll your own • Init scripts store command line options in pen.cf pen –x 6144 –c 262144 –h –H –p <pidfile> 192.168.232.20:80 192.168.232.21:80 192.168.232.22:80 pen –x 500 –c 16384 –h –p <pidfile> 192.168.232.20:993 192.168.232.23:993 192.168.232.24:993
  • 19. IPVS / Pulse / Piranha • These work together as a system • IPVS: load balancing • Pulse: cluster manager (lightweight) • Piranha: web interface for configuration • EL5 version is IPv4 only • EL6 version is IPv4 / IPv6 • Layer 4, in-kernel, Linux only
  • 20. IPVS • IP Virtual Server, implemented via Netfilter • Controlled via ipvsadm • Or use a front-end like piranha • Supports persistence, many schedulers Command line: ipvsadm –A –t 192.168.23.20:80 –s rr ipvsadm –a –t 192.168.23.20:80 –r 192.168.23.21:80 –m Ipvsadm –a –t 192.168.23.20:80 –r 192.168.23.22:80 –m
  • 21. Piranha • Graphical configuration interface • Manage Pulse and IPVS configuration • Web based, some expensive LB use it too • Handles half-NAT, full-NAT and DSR topologies • Runs on port 3636, password protected • Recommend access via ssh tunnel
  • 22. Piranha - Pulse • Simple, single purpose cluster manager • Only supports 2-node active/passive failover • Configured via Piranha web interface
  • 23. Piranha - Pulse Enable the Backup Server for HA
  • 24. Piranha - Pulse Configure the Redundant IP, Sync options
  • 25. Piranha – Virtual Server Add a virtual server, then Edit its configuration Be sure to make all changes on BOTH hosts!
  • 27. Piranha – Real Servers Add two real servers, and prepare to edit
  • 28. Piranha – Real Server Configure both real servers on both hosts
  • 29. Piranha - Finalize • Configure monitoring scripts (write if needed) • Activate real servers • Activate virtual servers • Add non-ARP’d VIPs on actual real servers (if using DSR) • Start pulse (init script) on both servers • Test, verify, debug!
  • 30. Cluster Managers • LVS / IPVS fits well with Pulse • Pen and Apache are simple, run under virtually any cluster manager • Positive experience with Heartbeat • Choose based on organizational needs • (aka use what your team knows!) • Simple services, limited needs from CM
  • 31. Heartbeat, pen, Apache • Apache (on EL5/EL6) has good init scripts • Pen init scripts from web site need killall in stop section (otherwise it doesn’t work) • Run under Heartbeat v1 configuration as a service and an IP Address • Apache init scripts ready for Heartbeat v2 / Pacemaker / CRM • Pen init scripts will need a rewrite
  • 32. Minimal ha.cf • ucast eth1 192.168.232.10 • ucast eth1 192.168.232.11 • keepalive 2 • warntime 10 • deadtime 30 • initdead 120 • udpport 694 • auto_failback on • node lb0 • node lb1 • respawn hacluster /usr/lib64/heartbeat/ipfail
  • 33. V1 style haresources for Load Balancing lb0 192.168.232.20 pen httpd lb1
  • 34. IPv6! • Bootstrapping problem, you can help! • LVS / IPVS supports IPv6 in EL6 but not EL5 • Pen supports IPv6 out of the box • Apache mod_proxy supports IPv6 • Reports mixed on mod_proxy_balancer • Could use IPv6 mod_proxy in front of IPv4 mod_proxy_balancer
  • 35. Easy IPv6 • One command line, as promised! • Uses pen, mostly cross platform (Linux / Solaris / BSD) • Must run on a dual stack box • Application must be TCP, not UDP • Run under a cluster manager for HA pen <regular options> ipv6addr:svcport ipv4addr:svcport Now you can IPv6 enable your web site!
  • 36. Final Thoughts • Lots of options in terms of software and topology • This does not cover global load balancing • This can be layered with global LB or ADN • Balance performance, cost, complexity • Think about organizational and application needs