Configuring HAproxy as a SwiftStack Load Balancer



Similar documents
High Availability Cluster Solutions for Ubuntu14.04 on Power

Load balancing MySQL with HaProxy. Peter Boros Percona 4/23/13 Santa Clara, CA

Pertino HA Cluster Deployment: Enabling a Multi- Tier Web Application Using Amazon EC2 and Google CE. A Pertino Deployment Guide

Penetration Testing LAB Setup Guide

FILECLOUD HIGH AVAILABILITY

CS312 Solutions #6. March 13, 2015

HAProxy. Ryan O'Hara Principal Software Engineer, Red Hat September 17, HAProxy

Web Load Balancing on a Budget

Native SSL support was implemented in HAProxy 1.5.x, which was released as a stable version in June 2014.

vrealize Operations Manager Load Balancing

Load Balancing VMware Horizon View. Deployment Guide

EMC VIPR SRM 3.7: GUIDELINES FOR CONFIGURING MULTIPLE FRONTEND SERVERS

Load Balancing Microsoft Sharepoint 2010 Load Balancing Microsoft Sharepoint Deployment Guide

Network Load Balancing

Load Balancing VMware Horizon View. Deployment Guide

Load Balancing RSA Authentication Manager. Deployment Guide

PineApp Surf-SeCure Quick

ALOHA LOAD BALANCER MANAGING SSL ON THE BACKEND & FRONTEND

Guide to the LBaaS plugin ver for Fuel

Active Directory Integration

Scalable Linux Clusters with LVS

Load Balancing Oracle Application Server (Oracle HTTP Server) Quick Reference Guide

Step-By-Step Guide to Deploying Lync Server 2010 Enterprise Edition

Deployment Guide AX Series with Active Directory Federation Services 2.0 and Office 365

Deployment Guide MobileIron Sentry

Load Balancing Microsoft AD FS. Deployment Guide

Deployment Guide AX Series with Citrix XenApp 6.5

HaProxy możliwości i zastosowania. Marek Oszczapiński m.oszczapiński@polskapresse.pl

Load Balancing Microsoft Terminal Services. Deployment Guide

ALOHA Load-Balancer. Microsoft Exchange 2010 deployment guide. Document version: v1.4. ALOHA version concerned: v4.2 and above

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

Load Balancing Microsoft Exchange Deployment Guide

Creating a DUO MFA Service in AWS

Load Balancing Barracuda Web Filter. Deployment Guide

Microsoft Lync 2010 Deployment Guide

Smoothwall Web Filter Deployment Guide

rackspace.com/cloud/private

Exchange 2013 deployment guide

Microsoft Lync Server Overview

Deployment Guide Oracle Siebel CRM

NetBoot/SUS Server User Guide. Version 2.0

Microsoft Internet Information Services (IIS) Deployment Guide

Deployment Guide Microsoft IIS 7.0

Load Balancing Bloxx Web Filter. Deployment Guide

Load Balancing McAfee Web Gateway. Deployment Guide

ClusterLoad ESX Virtual Appliance quick start guide v6.3

Spam Marshall SpamWall Step-by-Step Installation Guide for Exchange 5.5

Load Balancing Trend Micro InterScan Web Gateway

SOA Software API Gateway Appliance 7.1.x Administration Guide

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

Enterprise AWS Quick Start Guide. v8.0.1

Deployment Guide AX Series for Palo Alto Networks Firewall Load Balancing

Load Balancing Clearswift Secure Web Gateway

Apache CloudStack 4.x (incubating) Network Setup: excerpt from Installation Guide. Revised February 28, :32 pm Pacific

Copyright Exceliance

Dynamic DNS How-To Guide

Dragonframe License Manager User Guide Version 1.2.2

Load Balancing Smoothwall Secure Web Gateway

CloudCIX Bootcamp. The essential IaaS getting started guide.

Load Balancing Sophos Web Gateway. Deployment Guide

Appliance Administration Manual. v6.21

AlienVault Unified Security Management (USM) 4.x-5.x. Deploying HIDS Agents to Linux Hosts

Appliance Quick Start Guide. v7.6

Setting up an OracleAS myportal Enterprise Deployment Architecture with the CAI Networks, Inc WebMux Load Balancer. A Step-by-Step Guide Version 1.

Availability Digest. Redundant Load Balancing for High Availability July 2013

What s Your HTTPS Grade? A Case Study of HTTPS/SSL at Mid Michigan Community College. Brandon bkish@midmich.edu

JAMF Software Server Installation and Configuration Guide for OS X. Version 9.2

HAProxy. Free, Fast High Availability and Load Balancing. Adam Thornton 10 September 2014

Enterprise Deployment of the EMC Documentum WDK Application

VMware vsphere Data Protection

How to integrate RSA ACE Server SecurID Authentication with Juniper Networks Secure Access SSL VPN (SA) with Single Node or Cluster (A/A or A/P)

Application Note. Active Directory Federation Services deployment guide

JAMF Software Server Installation and Configuration Guide for Linux. Version 9.2

How To Install Storegrid Server On Linux On A Microsoft Ubuntu 7.5 (Amd64) Or Ubuntu (Amd86) (Amd77) (Orchestra) (For Ubuntu) (Permanent) (Powerpoint

Configuration Guide for connecting the Eircom Advantage 4800/1500/1200 PBXs to the Eircom SIP Voice platform.

Application Note. Lync 2010 deployment guide. Document version: v1.2 Last update: 12th December 2013 Lync server: 2010 ALOHA version: 5.

Firewall Load Balancing

Create a virtual machine at your assigned virtual server. Use the following specs

Installation & Upgrade Guide

Installation Runbook for F5 Networks BIG-IP LBaaS Plugin for OpenStack Kilo

Load Balancing Microsoft 2012 DirectAccess. Deployment Guide

Appliance Administration Manual. v7.2

vrealize Automation Load Balancing

VMware Identity Manager Connector Installation and Configuration

Load Balancing Microsoft Remote Desktop Services. Deployment Guide

HP CloudSystem Enterprise

Configuration of a Load-Balanced and Fail-Over Merak Cluster using Windows Server 2003 Network Load Balancing

Appliance Quick Start Guide v8.1

JAMF Software Server Installation and Configuration Guide for OS X. Version 9.0

How to Make the Client IP Address Available to the Back-end Server

Installing Virtual Coordinator (VC) in Linux Systems that use RPM (Red Hat, Fedora, CentOS) Document # 15807A1-103 Date: Aug 06, 2012

Salesforce Integration

Advanced SLB High Availability and Stateless SLB

This feature is available on the AppWall standalone and AppWall VA devices. It is not available on the AppWall module within Alteon.

ExamPDF. Higher Quality,Better service!

Load Balancing Medical Imaging & Information System Protocols. Deployment Guide

How To Configure A Bomgar.Com To Authenticate To A Rdius Server For Multi Factor Authentication

Enterprise Azure Quick Start Guide. v8.1.1

Step-by-Step Guide to Open-E DSS V7 Active-Active iscsi Failover

Linux Virtual Server Administration. RHEL5: Linux Virtual Server (LVS)

Transcription:

Configuring HAproxy as a SwiftStack Load Balancer To illustrate how a SwiftStack cluster can be configured with an external load balancer, such as HAProxy, let s walk through a step-by-step example of how to configure a SwiftStack cluster in two tiers: one proxy tier and one storage tier. The chart below shows how it could be set up. Sample Network Topology In a SwiftStack cluster, you can run everything on one flat network, but it is generally better to separate external and internal traffic in the cluster. The following is an example of a network topology: The Outward-facing network is the network which handles incoming traffic. The Cluster-facing network is the internal network which takes care of replication traffic. Page 1 of 5

Network Schema Description Subnet Netmask Outward-facing 192.168.50.0 /24 Cluster-facing 192.168.51.0 /24 IP Address Assignments For this example we will be using two (2) proxy nodes and three (3) storage nodes. Node Name Outward IP Address Cluster IP Address proxy1 192.168.50.11 192.168.51.11 proxy2 192.168.50.12 192.168.51.12 storage1 192.168.51.101 192.168.51.101 storage2 192.168.51.102 192.168.51.102 storage3 192.168.51.103 192.168.51.103 Load Balancing SwiftStack includes a load balancer that can be used with very little configuration. The SwiftStack load balancer is based on the LVS open source project. The SwiftStack load balancer binds to a single node and routes requests to each of the other SwiftStack proxy nodes. With an external load balancer any load balancing method may be used, such as simple round robin DNS or a layer 4 or layer 7 load balancer. The type of load balancing you chose depends on your use-case and what your cluster workload will look like. Selecting and setting up the load balancing solution is therefore up to you. SwiftStack has worked with customers who have used everything from round robin DNS using BIND, HAProxy and other open source solutions, as well as commercial equipment from companies like f5 and A10. HAProxy HAProxy is a free, highly configurable and highly scalable HTTP and TCP load balancer. Page 2 of 5

HAProxy implements an event-driven, single-process model which enables support for very high number of simultaneous connections at very high speeds. Installing HAProxy The installation examples below are for Ubuntu 12.04 LTS Server, but should be similar on other Linux distributions. (For CentOS and Red Hat, you might need to enable the EPEL repositories.) To install HAProxy, do the following: $ sudo aptitude install haproxy That s it. Once installed you need to configure HAProxy to start on boot. You can do that by updating the /etc/default/haproxy file by modifying enabled from 0 to 1, as follows: # Set ENABLED to 1 if you want the init script to start haproxy. ENABLED=1 Configuring HAProxy for a SwiftStack Cluster If you are setting up a cluster with an external load balancer, such as HAProxy, you will need to set up your load balancer to divide the load between your proxy nodes. Using the network topology example provided above, if you have selected 192.168.50.0/24 as your Outward-facing network, you need to set up your load balancer to include the IP addresses of the proxy nodes in its load balancing pool. You will also need to assign the load balancer a virtual IP (VIP) on which it will respond. Here we will use 192.168.50.10 for the VIP and assuming we are using standard HTTP on port 80. So, for this example, the IP addresses used would be: 192.168.50.10 (load balancer IP) 192.168.50.11 (proxy1, included in pool) 192.168.50.12 (proxy2, included in pool) To configure the external load balancer to pull failing nodes out of the load balancing pool, configure the load balancer to use the proxy node s health check URL. The Swift health check URL is simply: /healthcheck Before you modify the HAProxy configuration file, make a backup copy of the default file: Page 3 of 5

$ sudo mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.orig Create the new, Swift-specific HAProxy configuration file: $ sudo vi /etc/haproxy/haproxy.cfg and make it look as follows: global maxconn 4096 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen webcluster 192.168.50.10:80 mode http stats enable stats auth username:password balance roundrobin option httpchk HEAD /healthcheck HTTP/1.0 option forwardfor option httpclose server proxy1 192.168.50.11:80 weight 5 check inter 2000 server proxy2 192.168.50.12:80 weight 5 check inter 2000 Lastly, you need to restart HAProxy to make it use the new configuration: $ sudo service haproxy restart In your HAProxy configuration file, you have two stats statements, one with enable and one with auth username:password. This statement enables the HAProxy stats web page. Assuming you used the IP address 192.168.50.10, the stats page will be available at: Page 4 of 5

http://192.168.50.10/haproxy?stats Your credentials to log in to the HAProxy stats page will be: Username: username Password: password You can of course change any of the settings in the configuration file as you see fit, including the credentials to the stats page. Configuring SwiftStack to Use An External Load Balancer Now that you ve got HAProxy installed and running, you also need to make sure that your SwiftStack cluster is configured to use an external load balancer. To do so, go to the Configure Cluster page on https://platform.swiftstack.com. Ensure you have the following settings: Use SwiftStack Load Balancer: Cluster API IP Address: Cluster API Hostname: unchecked 192.168.50.10 (your HAProxy IP address) <blank or the FQDN of your cluster> If you need to make changes to your cluster configuration (as above), to activate your changes, you need to: 1. Click on Submit Changes 2. Click on Push Config to Cluster Page 5 of 5