CLUSTERING CAS for High Availability. Eric Pierce, University of South Florida



Similar documents
High Availability CAS

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

TIBCO Spotfire Platform IT Brief

Apache HTTP Server. Load-Balancing with Apache HTTPD 2.2 and later. Erik Abele

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Intro to Load-Balancing Tomcat with httpd and mod_jk

IdP Clustering. You want to prevent service outages. High Availability and Load Balancing. Possible problems: HW failures

Implementing CAS. Adam Rybicki Jasig Conference, San Diego, CA March 7, 2010

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

1. Introduction 2. Getting Started 3. Scenario 1 - Non-Replicated Cluster 4. Scenario 2 - Replicated Cluster 5. Conclusion

CloudCERT (Testbed framework to exercise critical infrastructure protection)

Designing, Scoping, and Configuring Scalable Drupal Infrastructure. Presented by David Strauss

User-ID Best Practices

Oracle WebLogic Server 11g Administration

High Availability Low Dollar Load Balancing

Deploying Load balancing for Novell Border Manager Proxy using Session Failover feature of NBM and L4 Switch

Technical White Paper - JBoss Security

EQUELLA. Clustering Configuration Guide. Version 6.2

The deployment of OHMS TM. in private cloud

MySQL High Availability Solutions. Lenz Grimmer OpenSQL Camp St. Augustin Germany

PES. Ermis service for DNS Load Balancer configuration. HEPiX Fall Aris Angelogiannopoulos, CERN IT-PES/PS Ignacio Reguero, CERN IT-PES/PS

JBoss & Infinispan open source data grids for the cloud era

Agenda. Tomcat Versions Troubleshooting management Tomcat Connectors HTTP Protocal and Performance Log Tuning JVM Tuning Load balancing Tomcat

SCALABLE DATA SERVICES

Robert Honeyman Honeyman IT Consulting.

NetIQ Access Manager 4.1

Oracle Weblogic. Setup, Configuration, Tuning, and Considerations. Presented by: Michael Hogan Sr. Technical Consultant at Enkitec

ovirt Introduction James Rankin Product Manager Red Hat Virtualization Management the ovirt way

.NET UI Load Balancing & Clustering

Tushar Joshi Turtle Networks Ltd

Prepared by Enea S.Teresa (Italy) Version October 24

Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November Pivotal Software, Inc. All rights reserved.

Apache httpd v2.4: Reverse Proxy. (The Hidden Gem) Jim Jagielski

Are You Ready for the Holiday Rush?

University of Southern California Shibboleth High Availability with Terracotta

Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine

Sophos Mobile Control Technical guide

Architecture and Mode of Operation

ShibboLEAP Project. Final Report: School of Oriental and African Studies (SOAS) Colin Rennie

1.0 Hardware Requirements:

S P I E Information Environments Shibboleth and Its Integration into Security Architectures. EDUCAUSE & Internet 2 Security Professionals Conference

Practical Load Balancing

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Rails Application Deployment. July Philly on Rails

Monitoring Remedy with BMC Solutions

Spectrum Technology Platform Version Tutorial: Load Balancing Spectrum Spatial Services. Contents:

WHITE PAPER. Domo Advanced Architecture

SAP NetWeaver Single Sign-On. Product Management SAP NetWeaver Identity Management & Security June 2011

Configuring Single Sign-On for Documentum Applications with RSA Access Manager Product Suite. Abstract

Single Sign On. Configuration Checklist for Single Sign On CHAPTER

Session Code*: 0310 Demystifying Authentication and SSO Options in Business Intelligence. Greg Wcislo

Welcome to Spring Forward September 26, 2006 Penn State Great Valley

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

WildFly in Oracle okolje

MySQL High-Availability and Scale-Out architectures

Understanding MySQL storage and clustering in QueueMetrics. Loway

ActiveVOS Clustering with JBoss

Managing your Red Hat Enterprise Linux guests with RHN Satellite

University of Maine System Liferay 6 EE Solution - RFP# ADDENDUM #01

IM and Presence Disaster Recovery System

High Availability Solutions for MySQL. Lenz Grimmer DrupalCon 2008, Szeged, Hungary

Experience with Server Self Service Center (S3C)

IBM WebSphere Server Administration

Cloud Computing with Microsoft Azure

WebSphere Server Administration Course

Single Sign On. SSO & ID Management for Web and Mobile Applications

Module 10: Maintaining Active Directory

Open Directory. Apple s standards-based directory and network authentication services architecture. Features

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

Building a SQL Server Test Lab. Ted Krueger SQL Server MVP Data Architect

Apache Performance Tuning

bla bla OPEN-XCHANGE Open-Xchange Hardware Needs

Removing Failure Points and Increasing Scalability for the Engine that Drives webmd.com

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

How To Secure Your Data Center From Hackers

High-Availability Using Open Source Software

Tomcat Tuning. Mark Thomas April 2009

Learning GlassFish for Tomcat Users

membase.org: The Simple, Fast, Elastic NoSQL Database NorthScale Matt Ingenthron OSCON 2010

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

Setting Up B2B Data Exchange for High Availability in an Active/Active Configuration

KonyOne Server Installer - Linux Release Notes

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

Glassfish Architecture.

EQUELLA. Clustering Configuration Guide. Version 6.0

Use of EASE Code of Practice. This code of practice is also qualified by The University of Edinburgh computing regulations, found at:

Managing Identity & Access in On-premise and Cloud Environments. Ellen Newlands Identity Management Product Manager Red Hat, Inc

Authentication and Single Sign On

mod_cluster A new httpd-based load balancer Brian Stansberry JBoss, a division of Red Hat

Exchange 2010 ITPro. Milan Marenčík Microsoft Services

Apache Tomcat & Reverse Proxies

No.1 IT Online training institute from Hyderabad URL: sriramtechnologies.com

Use Enterprise SSO as the Credential Server for Protected Sites

NetIQ Identity Manager Setup Guide

WEBSPHERE APPLICATION SERVER ADMIN V8.5 (on Linux and Windows) WITH REAL-TIME CONCEPTS & REAL-TIME PROJECT

Cloud Based Application Architectures using Smart Computing

Copyright 1

How To Choose Between A Relational Database Service From Aws.Com

Transcription:

CLUSTERING CAS for High Availability Eric Pierce, University of South Florida

Overview High Availability Basics Before Clustering CAS Failover with Heartbeat Ticket Registry Load Balancing CAS at USF

HA is all about risk Make a list of possible Single-Points-of-Failure Single connections to ANYTHING (Power, Network, etc) Not just your servers think about the datacenter Try to quantify for management How likely is this failure? If it happens, how long will it take to fix? How much will we lose while it is down? Don t forget the human element!

Mitigating the risk Make a list of possible solutions There are multiple ways to combat most SPoFs Assign a relative cost score to each The scoring system depends on your resources Some things are easy to implement, but expensive Cheaper solutions are (usually) more time-consuming Work with management What risks are they willing to accept?

Why Cluster CAS? CAS is the central hub to all your web applications Without CAS, no one can use any applications A single machine is not enough

Before Clustering CAS CAS Architecture Authentication Service Management and Auditing

A Single CAS Server

Before Clustering CAS Authentication Source Active Directory Multiple Domain Controllers LDAP replication Multi-Master replication Kerberos JAAS can query multiple KDCs Database Replication abilities product-specific

Before Clustering CAS Service Management Storage Options Database LDAP Service Registry is reloaded on all cluster nodes on a regular basis (since 3.3.4) Auditing & Statistics Storage Options Database Local File Both are optional, but recommended for production

CAS Failover with Heartbeat Heartbeat Failover versus Load Balancing

Heartbeat http://www.linux-ha.org Part of the Linux-HA Project Runs on most Unix-based Operating Systems Provides communication layer between cluster nodes Sends regular heartbeat between nodes to test health Cluster Resource Manager handles starting/stopping resources CRM from Heartbeat has spun-off to a separate project: Pacemaker - http://clusterlabs.org

CAS failover with Heartbeat

CAS failover with Heartbeat

CAS failover with Heartbeat

Pros & Cons of Failover Very easy to configure Linux distros include all you need GUI and CLI clients for setup & management No changes to CAS configuration required User Experience All TGTs & STs are lost on failover Users must re-authenticate after failover Wasted Resources If both servers are up, one is totally idle

Load balancing to the rescue?

Load balancing to the rescue? Resource Usage improves Both servers are now utilized 100% of the time Hardware SSL on the LB might improve performance User Experience is worse Half (on average) of all ticket verifications fail The TicketRegistry is not shared between servers

Shared Ticket Registry JBOSS Cache Memcached Java Persistence API

Shared Ticket Registry

JBOSS Cache http://jboss.org/jbosscache Clustered cache service Distributes cache changes using JGroups Cache storage is not persistent in default config JDBC and flat-file storage available for persistence Details on setting up JBossCacheTicketRegistry are available at the Jasig Wiki: http://www.ja-sig.org/wiki/display/casum/clustering+cas

JBOSS Cache JBOSS Cache Ticket JBOSS Cache Ticket Create Ticket JBOSS Cache Ticket Read Ticket Read Ticket Create Read Ticket JBOSS TicketRegistry

Memcached http://memcached.org Distributed caching system Hashing algorithm selects which node to store data on Cache is stored in memory Cache storage is not persistent Oldest objects are removed when cache is filled Simple, lightweight and fast Repcached patch adds 2-server data replication http://repcached.lab.klab.org/ Project stagnate?

Memcached Server 1 Memcached Server 2 Memcached Ticket Foo Set Hash Results Foo = Server 1 Bar = Server 2 Baz = Server 2 Ticket Baz Ticket Bar Set Memcached TicketRegistry

Memcached with Repcache Server 1 Memcached Ticket Baz Ticket Bar Ticket Foo Set Repcache Hash Results Foo = Server 1 Bar = Server 21 Baz = Server 21 Server 2 Memcached Ticket Foo Ticket Baz Ticket Bar Set Memcached TicketRegistry

JPA Ticket Registry Tickets are stored in a database Storage is persistent Database HA is a necessity! Performance is can be very good Dependant on the speed of the db configuration Registry Cleaning Deadlocks have been an issue with the default cleaner CAS 3.4 introduces LockingStrategy

JdbcLockingStrategy Cleaner attempts to ensure exclusive access to the DB before removing any expired tickets Uses a database table to hold lock state Only one node can clean the registry at a time Lock can be set by any node after expiration time

Which one should I use? JBoss Cache Very flexible but complicated Good option for clusters >2 nodes Memcached Easiest option for a 2-node cluster Status of repcache project is a concern JPA Best data integrity/reliability Obvious choice if you already have an HA database Best choice for very long ticket lifetimes (Remember me) Needs CAS 3.3.4 or newer (3.4 would be best)

Load Balancing Load Balancing with Free software Hardware vs. Software Load Balancing N-to-N Cluster

Software Load Balancing Combination of Apache modules mod_proxy_ajp mod_proxy_balancer Simple to configure: ProxyPass /cas balancer://mycluster <Proxy balancer://mycluster> BalancerMember ajp://server1:8009/cas BalancerMember ajp://server2:8009/cas </Proxy>

Software Load Balancing

Hardware vs. Software LB Hardware High Performance SSL off-load Can be expensive Need multiple devices for HA Software Free (as in Speech & Beer) Very configurable

N-to-N Cluster

N-to-N Cluster

Tomcat Sessions CAS Clustering wiki page recommends session replication You don t need it Adds complexity Session is only used for storing the webflow state Change WEB-INF/cas-servlet.xml: <flow:executor id="flowexecutor" registryref="flowregistry" repository-type="client">

CAS at USF

USF CAS Cluster (v1) In service Feb. 2008 Oct. 2009 Failover Cluster using Heartbeat Default (non-shared) Ticket Registry Apache/Tomcat shared by CAS and Shibboleth IdP Service Registry & Auditing use MySQL Master-Master Replication

USF CAS Cluster (v1)

Problems with version1 Location Servers were in the same (poorly outfitted) server room Performance During high-load, CAS & Shibboleth were a bit slow User Experience All tickets were lost on failover, forcing users to login again

USF CAS Cluster (v2) In production since Oct. 2009 4-node N-to-N Cluster using Heartbeat/Pacemaker Geographically separated (~1KM apart) Memcached Ticket Registry (Repcache) CAS, Shibboleth and other webapps have dedicated machines Service Registry & Auditing on dedicated hardware

Future Additions Hardware Load Balancing Off-campus Disaster-Recovery site Currently in Tallahassee Moving it farther North Persistent Ticket Storage Remember Me function is highly requested JPA or JBOSS Cache with persistent storage

Questions? ERIC PIERCE epierce@usf.edu http://creativecommons.org/licenses/by-sa/3.0/us/