CS514: Intermediate Course in Computer Systems



Similar documents
Lecture 3: Scaling by Load Balancing 1. Comments on reviews i. 2. Topic 1: Scalability a. QUESTION: What are problems? i. These papers look at

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

Building a Highly Available and Scalable Web Farm

ZEN LOAD BALANCER EE v3.04 DATASHEET The Load Balancing made easy

Advanced Computer Networks. Layer-7-Switching and Loadbalancing

Server Traffic Management. Jeff Chase Duke University, Department of Computer Science CPS 212: Distributed Information Systems

Availability Digest. Redundant Load Balancing for High Availability July 2013

Scalability of web applications. CSCI 470: Web Science Keith Vertanen

GLOBAL SERVER LOAD BALANCING WITH SERVERIRON

Internet Firewall CSIS Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS net15 1. Routers can implement packet filtering

Layer 4-7 Server Load Balancing. Security, High-Availability and Scalability of Web and Application Servers

Understanding Slow Start

DPtech ADX Application Delivery Platform Series

ZEN LOAD BALANCER EE v3.02 DATASHEET The Load Balancing made easy

Transport and Network Layer

CS 188/219. Scalable Internet Services Andrew Mutz October 8, 2015

S y s t e m A r c h i t e c t u r e

Content Switching Module for the Catalyst 6500 and Cisco 7600 Internet Router

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP System v10 with Microsoft IIS 7.0 and 7.5

Barracuda Load Balancer Online Demo Guide

Single Pass Load Balancing with Session Persistence in IPv6 Network. C. J. (Charlie) Liu Network Operations Charter Communications

DEPLOYMENT GUIDE Version 1.1. Deploying F5 with IBM WebSphere 7

SiteCelerate white paper

Server Iron Hands-on Training

Names & Addresses. Names & Addresses. Hop-by-Hop Packet Forwarding. Longest-Prefix-Match Forwarding. Longest-Prefix-Match Forwarding

Content Delivery Networks

Scalable Internet Services and Load Balancing

Web Application Hosting Cloud Architecture

hp ProLiant network adapter teaming

OpenFlow Based Load Balancing

DNS ROUND ROBIN HIGH-AVAILABILITY LOAD SHARING

Exam : EE : F5 BIG-IP V9 Local traffic Management. Title. Ver :

Multi-layer switch hardware commutation across various layers. Mario Baldi. Politecnico di Torino.

Unix System Administration

SCALABILITY AND AVAILABILITY

Content Delivery Networks

Web Caching and CDNs. Aditya Akella

ExamPDF. Higher Quality,Better service!

Data Sheet. VLD 500 A Series Viaedge Load Director. VLD 500 A Series: VIAEDGE Load Director

Oracle Collaboration Suite

VERITAS Cluster Server Traffic Director Option. Product Overview

Communications and Networking

CHAPTER 3 PROBLEM STATEMENT AND RESEARCH METHODOLOGY

Internet Control Protocols Reading: Chapter 3

DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010

Business Case for a DDoS Consolidated Solution

Final for ECE374 05/06/13 Solution!!

AppDirector Load balancing IBM Websphere and AppXcel

How To Manage A Network On A Network With A Global Server (Networking)

How To Understand The Power Of A Content Delivery Network (Cdn)

Global Server Load Balancing

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM with Apache Tomcat and Apache HTTP Server

Load Balancing Bloxx Web Filter. Deployment Guide

TESTING & INTEGRATION GROUP SOLUTION GUIDE

Session Hijacking Exploiting TCP, UDP and HTTP Sessions

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP LTM for SIP Traffic Management

What's New in Cisco ACE Application Control Engine Module for the Cisco Catalyst 6500 and Cisco 7600 Series Software Release 2.1.0

CSE 473 Introduction to Computer Networks. Exam 2 Solutions. Your name: 10/31/2013

Deploying the BIG-IP System v10 with SAP NetWeaver and Enterprise SOA: ERP Central Component (ECC)

co Characterizing and Tracing Packet Floods Using Cisco R

Load Balancing for Microsoft Office Communication Server 2007 Release 2

Load Balancing Web Proxies Load Balancing Web Filters Load Balancing Web Gateways. Deployment Guide

Voice over IP- Session Initiation Protocol (SIP) Load Balancing in the IBM BladeCenter

Chapter 8 Security Pt 2

DATA COMMUNICATOIN NETWORKING

EECS 489 Winter 2010 Midterm Exam

DEPLOYMENT GUIDE Version 1.1. DNS Traffic Management using the BIG-IP Local Traffic Manager

Load Balancing and Sessions. C. Kopparapu, Load Balancing Servers, Firewalls and Caches. Wiley, 2002.

FortiBalancer: Global Server Load Balancing WHITE PAPER

Deploying the Barracuda Load Balancer with Office Communications Server 2007 R2. Office Communications Server Overview.

How To Understand and Configure Your Network for IntraVUE

APV9650. Application Delivery Controller

Network Security: Workshop. Dr. Anat Bremler-Barr. Assignment #2 Analyze dump files Solution Taken from

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Scalable Internet Services and Load Balancing

CS640: Introduction to Computer Networks. Applications FTP: The File Transfer Protocol

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP Edge Gateway for Layered Security and Acceleration Services

Acquia Cloud Edge Protect Powered by CloudFlare

Internet Content Distribution

Lecture 8b: Proxy Server Load Balancing

architecture: what the pieces are and how they fit together names and addresses: what's your name and number?

Introducing the Microsoft IIS deployment guide

Network Security TCP/IP Refresher

VXLAN: Scaling Data Center Capacity. White Paper

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb).

Firewall Load Balancing

CLE202 Introduction to ServerIron ADX Application Switching and Load Balancing

UPPER LAYER SWITCHING

Deploying the BIG-IP LTM v10 with Microsoft Lync Server 2010 and 2013

Technical Support Information Belkin internal use only

CloudFlare advanced DDoS protection

Internet Protocols Fall Lectures 7-8 Andreas Terzis

DEPLOYMENT GUIDE Version 1.0. Deploying the BIG-IP LTM System with VMware View

Scalable Linux Clusters with LVS

Network Measurement. Why Measure the Network? Types of Measurement. Traffic Measurement. Packet Monitoring. Monitoring a LAN Link. ScienLfic discovery

Veriton. Getting the Best out of Hardware Load Balancers in an Oracle Environment. What is a Load Balancer? Agenda. What s out there?

EE Easy CramBible Lab DEMO ONLY VERSION EE F5 Big-Ip v9 Local Traffic Management

Intelligent Load Balancing SSL Acceleration and Equalizer v7.0

Transcription:

: Intermediate Course in Computer Systems Lecture 7: Sept. 19, 2003 Load Balancing Options Sources Lots of graphics and product description courtesy F5 website (www.f5.com) I believe F5 is market leader in load balancer type products (No I m not on their payroll)

Three reasons for using multiple servers Capacity Obviously---one server can t handle all load Robustness Redundant servers Latency Pick server near client Load balancing concepts Server/server group selection criteria How to select among groups of different types of servers Load balancing algorithm How to select among servers in group Health monitoring Measuring load, aliveness, and correctness of servers Persistence Once server is selected, how to keep session on same server Redirection Tell client to select another server

Three levels of load balancing Name-based Via URL selection i.e. images placed on separate servers IP-based DNS load balancer Name-based and IP-based can select among geographically separated data centers Local header inspection load balancers Select among individual servers in data center Sophisticated and fine-grained selection (application level) Load Balancer deployment IP routing ARP or IP routing Standby mode (each load balancer advertises same IP addresses) Health/session state ARP? 802.3ad? IP routing? * BIG-IP is F5 product name

Connectivity robustness: Routing Router Router Cost Metric 5 Cost Metric 10 Connectivity robustness: Routing Router Router Cost Metric 5 Cost Metric 10

Connectivity robustness: Routing Router Router Cost Metric 2 X This also possible?? Cost Metric 5 Router Router Cost Metric 10

Next Hop: 10.1.1.1 Connectivity robustness: ARP Router Router ARP: 10.1.1.1: 00:ea:f1:25:0a:16 Next Hop: 10.1.1.1 X Next Hop: 10.1.1.1 Connectivity robustness: ARP ARP: 10.1.1.1: 00:ea:f1:25:0a:16 Router Router Next Hop: 10.1.1.1

BIG-IP Input-Output 16 Gbps (8 each way) 800 SSL Trans/Sec (claimed) (Fast Ethernet) Tahoe Networks router architecture Redundant state everywhere Initially line cards selects control card for new session Control card selects data card for data packets (and program line cards with selection) Control cards periodically update line cards with their own load. Line cards periodically update control cards with their load. Line Line Cards Line Cards Cards Line Line Cards Control Cards Cards Line Line Cards Data Cards Cards

Load balancing concepts Server/server group selection criteria How to select among groups of different types of servers Load balancing algorithm How to select among servers in group Health monitoring Measuring load, aliveness, and correctness of servers Persistence Once server is selected, how to keep session on same server Redirection Tell client to select another server Health Monitoring Same techniques apply to all three load balance levels (name, IP, local) Keep alive messages Must be application level, not IP ping i.e., if web services, send actual web request, check response for correctness Agent operating on server itself (less common) Measures load indicators (CPU, I/O, etc.) and health Reports back to load balancer (Note that load balancer itself can monitor load) Note that snooping real traffic, or monitoring absence of traffic, does not scale well MUST minimize per data packet processing

Load balancing concepts Server/server group selection criteria How to select among groups of different types of servers Load balancing algorithm How to select among servers in group Health monitoring Measuring load, aliveness, and correctness of servers Persistence Once server is selected, how to keep session on same server Redirection Tell client to select another server Groups of servers??? New connection: 1. select among server group Server group 1 Server group 2 Server group 3

Groups of servers??? New connection: 1. select among server group 2. load balance among group Server group 1 Server group 2 Server group 3 Groups of servers: Switch and Persist New connection: 1. select among server group 2. load balance among group 3. subsequent persistence Server group 1 Server group 2 Server group 3

Reasons for server groups Different type of servers HTTP versus LDAP (for example) Different server function Browsing versus shopping hold or cache different content images.cnn.com versus news.cnn.com Different servers have different QoS Fault-tolerant versus non-fault tolerant For differently-valued clients (not sure I believe this one) F5 s list of server group selection criteria IP address (source or dest) Dest addr and port (i.e. application type) HTML: URL: host name, path, any string cookie Other applications/data structures email, SOAP/XML, SIP, WAP customization inspection up to 16K bytes deep into the flow But boy are you gonna pay for this!

F5 s list of load balancing criteria Static Modes Round Robin (RR) Ratio Don t know if weighted RR, random, or hash based Dynamic Modes Least Connections Fastest Observed Probably based on keep-alives, not real traffic Predictive (???) Dynamic Ratio (Time of day???) F5 s list of persistence criteria Source (IP address) Can force this even if servers within server group have a different IP address Timeout based cleanup Destination (IP address) Used to optimize caches SSL Persistence (SSL session ID) Even if different source IP address used later Cookie (session and hash modes) This allows shopping cart persistence (when user s IP address changes)

Types of source persistence More on F5 cookie persistence Three modes Load balancer inserts cookie Server inserts null cookie, and load balancer fills it in (doesn t need to change packet size) Server inserts real cookie, load balancer uses but doesn t change it

Session or hash-based cookies If load balancer creates cookie, then cookie can be simple identifier of server different sources can be given same cookie simplifies everything If server creates cookie, then there is one per source can keep per session state or load balancer can use (definable) portion of cookie as hash ID don t need per session state this is only mention of hashing I found though??? L4 inspection performance (Veritest F5 Networks Layer 4/Layer 7 Performance Comparison ) Sessions (transactions) per second Various vendors F5 Big-IP 2400

L4 inspection performance Sessions (transactions) per second 28 Mbps 100 Mbps 300 Mbps 600 Mbps Nowhere near advertised 8Gbps throughput!!! L7 inspection performance 5 Mbps (<20% of L4 performance) (L7 task was to find.htm suffix only)

Comments on performance L4 inspection in hardware, while L7 is in software Simple L7 task is 5 times slower than L4 More complex L7 task (i.e. looking at URL name or path) would be even slower How to avoid L7 inspection??? (By comparison, high-end routers easily switch at well beyond millions of packets per second) Why is L7 inspection slow? Load balancer must terminate TCP SYN and SYN ACK Either store them for later use with server, or regenerate new TCP connection Load balancer must assemble TCP into a buffer Sort through retransmissions etc. Load balancer must parse packet and look for strings within certain fields Strings may traverse packet boundaries

Avoiding L7 inspection Easy to partition content by IP address Even on a single physical machine Web servers allow easy definition of virtual web servers Each with separate domain name and optionally separate IP address Separate content by domain name, and let DNS do the work Examples L7 performance test switched on.htm versus non-.htm files Use virtual servers: some-site.com (.htm files) files.some-site.com (non.htm files) Put shopping cart web service under one name, images under another etc.

Other local load balancer features Terminates SSL (Secure Socket Layer) to offload server Server can dynamically modify load balancing parameters Can do HTTP redirect if some or all servers fail Consolidate multiple user s requests into a single TCP to the server Return traffic may bypass load balancer (i.e. streaming media) What if one (pair of) load balancers is not enough? Performance of a single load balancer is limited Load balance among load balancers using DNS

cnn.com A: 20.1.1.1 USA 30.1.1.1 Europe 40.1.1.1 Asia DNS Load Balancer (F5 etc. makes this too) DNS Load Balancer Internet DNS Load Balancer 20.1.1.1 30.1.1.1 40.1.1.1 10.1.1.1, 10.1.1.2, 10.1.1.3,... 10.1.1.1, 10.1.1.2, 10.1.1.3,... 10.1.1.1, 10.1.1.2, 10.1.1.3,... DNS Load balancer Has similar load balancing and health monitoring as load balancer Does not have switch and persist May have ability to select based on geographical location of client F5 claims to be able to detect country of origin This can typically be done just looking at IP prefix assignments Note that DNS load balancer does not see client address, only that of the client s DNS server

F5 s picture of DNS load balancer DNS-based geographical selection rough at best DNS load balancer knows IP address of resolver, but not of actual client DNS load balancer DNS query If client is far from resolver, then proximity calculation will be bad DNS client DNS resolver DNS query

Redirection can improve geographical selection DNS load balancer DNS answer: server1 Server1 was a bad choice, but server1 now knows the client address Redirect to server2 server2 DNS client DNS resolver HTTP query HTTP redirect to server2 server1 Stateful versus stateless persistence Switch part of switch and persist may be based on dynamic information i.e. server load Therefore cannot later determine what an earlier decision might have been Therefore, per-client or per-session state is required This state is expensive Is there a way to do persist without state?

Not really Perfect stateless persistence is impossible That s why F5 is stateful But stateless pretty good persistence is possible May be used for content affinity : directing requests to web caches Using consistent hashing (Could just have well been called persistent hashing!) Hashing rehash Bucket1 Object (with Key) Hash(Key) Bucket2 Bucket3 BucketN With regular hashing, you can control the number of buckets and get good performance as a result.

Hashing rehash Object (with Key) Hash(Key) Server1 Server2 Server3 ServerN With regular hashing, you can control the number of buckets and get good performance as a result. But with load balancing, the buckets are the servers Spread servers over unit circle, hash onto circle 1 Anything that hashes into.0 -.25 maps into server 2 4 2 3

If server added, many mappings change Dotted red lines show regions where old and new mappings are the same. 1 1 Everywhere else, old mappings no longer point to the same server. 4 5 4 3 2 2 3 Consistent hashing Rather than evenly spread servers over unit circle: Replicate servers many times, and randomly place servers on unit circle

Consistent hashing 1 2 3 Consistent hashing 1 2 3 These regions map into server 2 (square)

Consistent hashing With enough replications load is evenly balanced ~500 replications gets load within a couple percent Even if objects are not uniform around circle Change in server inversely proportional to the number of servers Nevertheless, there is a change Only good for applications that can survive a miss, for instance web caching Can tune number of replications to create different loads at different servers Good way to ease server into or out of service Poor man s load balancing Microsoft has a load balancing feature (Network Load Balancing, NLB) Across a cluster of up to 32 servers Three types of affinity (TCP and UDP) Source IP addr and source port (socalled none ) Single source IP addr Class C block of source IP addr

Operation Request arrives (UDP or TCP syn) LAN Switch Server Server Server Operation Request arrives (UDP or TCP syn) LAN-level broadcast to all (all receiving on the same IP address) Server LAN Switch Server Server

Operation Request arrives (UDP or TCP syn) LAN-level broadcast to all (all receiving on the same IP address) X Server LAN Switch Server All but one server ignores the request (according to hash of affinity info) X Server Operation Server LAN Switch Server Server monitor each other s aliveness, modify hashes in response (ongoing TCP sticks, UDP doesn t)

Why poor man s? You don t have to buy an load balancer But significantly less flexibility than L4- L7 load balancer And, every server gets every packet and does L3-L4 inspection, so clearly some extra load Don t know if this is done in CPU or off-board