Based on Geo Clustering for SUSE Linux Enterprise Server High Availability Extension



Similar documents
High Availability Storage

Build Platform as a Service (PaaS) with SUSE Studio, WSO2 Middleware, and EC2 Chris Haddad

We are watching SUSE

Relax-and-Recover. Johannes Meixner. on SUSE Linux Enterprise 12.

SUSE Storage. FUT7537 Software Defined Storage Introduction and Roadmap: Getting your tentacles around data growth. Larry Morris

SUSE Customer Center Roadmap

How To Make A Cloud Work For You

Open Source High Availability Writing Resource Agents for your own services. Lars Marowsky-Brée Team Lead SUSE Labs

SUSE OpenStack Cloud 4 Private Cloud Platform based on OpenStack. Gábor Nyers Sales gnyers@suse.com

Running SAP HANA One on SoftLayer Bare Metal with SUSE Linux Enterprise Server CAS19256

Big Data, SAP HANA. SUSE Linux Enterprise Server for SAP Applications. Kim Aaltonen

Advanced Systems Management with Machinery

Deploying Hadoop with Manager

Public Cloud. Build, Use, Manage. Robert Schweikert. Public Cloud Architect

How an Open Source Cloud Will Help Keep Your Cloud Strategy Options Open

Software Defined Everything

TUT5605: Deploying an elastic Hadoop cluster Alejandro Bonilla

Ceph Distributed Storage for the Cloud An update of enterprise use-cases at BMW

Challenges Implementing a Generic Backup-Restore API for Linux

Using SUSE Cloud to Orchestrate Multiple Hypervisors and Storage at ADP

HO5604 Deploying MongoDB. A Scalable, Distributed Database with SUSE Cloud. Alejandro Bonilla. Sales Engineer abonilla@suse.com

SUSE Enterprise Storage Highly Scalable Software Defined Storage. Gábor Nyers Sales

HO15982 Deploy OpenStack. The SUSE OpenStack Cloud Experience. Alejandro Bonilla. Michael Echavarria. Cameron Seader. Sales Engineer

Using SUSE Linux Enterprise to "Focus In" on Retail Optical Sales

High Availability and Disaster Recovery for SAP HANA with SUSE Linux Enterprise Server for SAP Applications

Oracle Products on SUSE Linux Enterprise Server 11

Workflow und Identity Management - Genehmigungsprozesse, Role Mining, Role Design und Compliance Management

CAS18543 Migration from a Windows Environment to a SUSE Linux Enterprise based Infrastructure Liberty Christian School

Installing, Tuning, and Deploying Oracle Database on SUSE Linux Enterprise Server 12 Technical Introduction

Operating System Security Hardening for SAP HANA

SUSE Cloud 5 Private Cloud based on OpenStack

SUSE Linux uutuudet - kuulumiset SUSECon:sta

Deploying Global Clusters for Site Disaster Recovery via Symantec Storage Foundation on Infortrend Systems

High Availability of VistA EHR in Cloud. ViSolve Inc. White Paper February

Implementing Linux Authentication and Authorisation Using SSSD

Configuration Management in SUSE Manager 3

Linux w chmurze publicznej SUSE na platformie Microsoft Azure

Deployment Topologies

Oracle Maps Cloud Service Enterprise Hosting and Delivery Policies Effective Date: October 1, 2015 Version 1.0

Wicked A Network Manager Olaf Kirch

Whitepaper - Disaster Recovery with StepWise

Data Center Automation with SUSE Manager Federal Deployment Agency Bundesagentur für Arbeit Data Center Automation Project

Pervasive PSQL Meets Critical Business Requirements

SUSE Linux Enterprise 12 Security Certifications

NIST ITL July 2012 CA Compromise

Astaro Deployment Guide High Availability Options Clustering and Hot Standby

DevOps and SUSE From check-in to deployment

MAKING YOUR VIRTUAL INFRASTUCTURE NON-STOP Making availability efficient with Veritas products

The case for cloud-based disaster recovery

High Availability Solutions for the MariaDB and MySQL Database

Kangaroot SUSE TechUpdate Interoperability SUSE Linux Enterprise and Windows

File Management Suite. Novell. Intelligently Manage File Storage for Maximum Business Benefit. Sophia Germanides

TUT8155 Best Practices: Linux High Availability with VMware Virtual Machines

Backup and Redundancy

Architectures Haute-Dispo Joffrey MICHAÏE Consultant MySQL

kgraft Live patching of the Linux kernel

Novell Collaboration Vibe OnPrem

SanDisk ION Accelerator High Availability

Open Source High Availability on Linux

SUSE Linux Enterprise 12 Security Certifications Common Criteria, EAL, FIPS, PCI DSS,... What's All This About?

Btrfs and Rollback How It Works and How to Avoid Pitfalls

Symantec Endpoint Protection 11.0 Architecture, Sizing, and Performance Recommendations

A dual redundant SIP service. White paper

Using btrfs Snapshots for Full System Rollback

Cisco Active Network Abstraction Gateway High Availability Solution

Disaster Recovery for Oracle Database

High Availability with Postgres Plus Advanced Server. An EnterpriseDB White Paper

High Availability and Disaster Recovery Solutions for Perforce

Building your Server for High Availability and Disaster Recovery. Witt Mathot Danny Krouk

High Availability And Disaster Recovery

Advanced High Availability Architecture. White Paper

SysAid Cloud Architecture Including Security and Disaster Recovery Plan

Securing Your System: Security Hardening Techniques for SUSE Linux Enterprise Server

Storage and Disaster Recovery

A SURVEY OF POPULAR CLUSTERING TECHNOLOGIES

Disaster Recovery White Paper

An XOP Networks White Paper

How SUSE Is Helping You Rock The Public Cloud

CA ARCserve and CA XOsoft r12.5 Best Practices for protecting Microsoft SQL Server

Understanding Neo4j Scalability

The Promise of Virtualization for Availability, High Availability, and Disaster Recovery - Myth or Reality?

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB

Three Ways Enterprises are Protecting SQL Server in the Cloud

Data Protection with IBM TotalStorage NAS and NSI Double- Take Data Replication Software

Designing a Cloud Storage System

Planning and Implementing Disaster Recovery for DICOM Medical Images


Transcription:

CAS7318 A Geo Redundant Cloud VoIP Service Based on Geo Clustering for SUSE Linux Enterprise Server High Availability Extension Brett Buckingham Managing Director, silhouette Research and Development Broadview Networks bbuckingham@broadviewnet.com

Abstract Broadview Networks' "OfficeSuite Phone" is a cloudbased VoIP service used by over 120,000 business subscribers daily. The primary product underlying OfficeSuite Phone, silhouette, is a carrier-grade telecom product. We have recently extended silhouette's existing high availability architecture to support geographic redundancy. This presentation is a case study of the use of Geo Clustering for SUSE Linux Enterprise High Availability Extension. We will outline the challenges and solutions to several aspects of geo redundancy, including database replication, filesystem replication, geo cluster overlay, and the design of a dead man's switch to control geo failover. 2

Table of Contents Product overview Rationale for geo redundancy Geo redundancy overview Geo cluster architecture Database replication Filesystem replication Dead man's switch Lessons learned 3

Product Overview

Product Overview silhouette is sold to cloud services providers (CSPs) CSPs use silhouette to provide phone service to small to medium businesses 1 silhouette supports 20,000 subscribers (e.g. equivalent of 1000 PBXs with 20 subscribers each) Cloud VoIP: only phones and IP network at customer site Businesses manage their phone service entirely via a web interface Broadview Networks hosts the OfficeSuite service based on silhouette (Broadview is a CSP), and also licenses silhouette to other CSPs 5

6 Phone System Managed via Web

silhouette is Widely Deployed Broadview Networks has 14 silhouette systems in production underpinning the OfficeSuite Phone service, serving over 120,000 business users every day Broadview licenses silhouette to 17 other CSPs world wide, which combined serve an additional 60,000 business users every day 7

silhouette is Carrier-Grade As a product intended to be hosted by cloud and telecom service providers, silhouette is subject to carrier-grade requirements, such as: Availability: 99.999% Reliability: 99.99% Scalability and throughput Real-time responsiveness Manageability and serviceability Security 8

Other Product Information Developed over past 13 years; in live production service for 10 years Software only Comprised of several (25+) software components Deployed on carrier-class X64 servers SLES+HAE+Geo is embedded in the product Interfaces with network peer components for some functions Deployed on 3 servers over 2 tiers: Web-tier: single node HA cluster Call-tier: 2 node HA cluster 9

Network Diagram Internet web tier VoIP ALG 0 call tier 1 Managed Network voicemail media svr PSTN gwy PSTN 10

Rationale for Geo Redundancy

Why Geo Redundancy? Customers expect it / require it Business continuity safeguard 12

Expectations of a Cloud Service Using a cloud service means trusting a CSP to provide and manage the service. There can be an emotional barrier to trust a 3 rd party vs. control the service inhouse If the service is business critical (e.g. phone, email), the emotional barrier can be amplified Cloud services are presumed to be relocatable, distributed, resilient, not tied down to hardware or location; this can help to offset the angst Geo redundancy is at least an implicit expectation, and often is an explicit RFP check box, especially by customers who have recently experienced a disaster 13

Business Continuity / Disaster Recovery Business continuity refers to plans, policy, preparation, and procedure to safeguard a business and continue its operations despite serious incidents or disasters Some disasters are related to geography, e.g. flood zones, earthquake fault lines, common public utilities, etc. A geo redundant system intends to safeguard the system against geographic disasters, therefore redundant systems should be geographically diverse 14

Our Experience with Hurricane Sandy Destructive and deadly Atlantic hurricane in October 2012 which affected Caribbean and east cost of North America Well prepared (100% uptime), but learned a lot In one of Broadview's telecom central offices in NYC: Commercial power down for 2 weeks, then unreliable for 2 additional months. We were on generator power throughout. Basement and lobby flooded, travel in/out of Manhattan impossible. Operations personnel on-site continuously for several days Some circuits from peering partners were down, and ultimately some partner COs were unrecoverable due to salt water damage 15

Geo Redundancy Overview

System and Network Peers PSTN gateway Media server Voicemail VoIP ALG silhouette 17

Replication to Backup System PSTN gateway Media server Voicemail VoIP ALG silhouette silhouette 18

Primary System Failure Detected PSTN gateway Media server Voicemail VoIP ALG silhouette silhouette 19

Backup System Promoted PSTN gateway Media server Voicemail VoIP ALG silhouette silhouette 20

Network Peers Connect to New Primary PSTN gateway Media server Voicemail VoIP ALG silhouette silhouette 21

Recovered System Becomes New Backup PSTN gateway Media server Voicemail VoIP ALG silhouette silhouette 22

Basic Concepts Continuously replicate silhouette configuration and operational data to a backup geo site Only the primary geo site (typically) provides service at any one time Detect failure of primary site, promote backup to primary Implement mechanisms for network peers and phones (i.e. client systems) to recognize and tolerate silhouette changing location (IP) 23

Geo Cluster Architecture

Geo Cluster Employs Geo Clustering for SUSE Linux Enterprise High Availability Extension Silhouette primary and backup geo sites are linked in a geo cluster to an arbitrator node in a 3 rd geo site Only call tier nodes participate in the geo cluster; web tier nodes are subordinate to and controlled by the call tier Typically only one silhouette provides service at any one time, as directed by a ticket scheme in the geo cluster 25

Geo Cluster Geo Site C Arbitrator HA framework + Geo Geo Site A Geo Site B HA framework + Geo HA framework + Geo Server 0 Server 1 Server 0 Server 1 26

Database Replication

High Availability Databases silhouette contains 2 databases: Main database: provisioned system and business data Billing database: call records Both databases are implemented with PostgreSQL Each database has HA requirements, and employs PostgreSQL streaming replication to a warm standby slave within local cluster Stock PostgreSQL resource agent (RA) was inadequate for this master/slave arrangement We developed a custom design and RA 28

Warm Standby Slave with Streaming Replication Client A Client B Client N Master IP Master Streaming replication Slave 29

Master Fails Client A Client B Client N Master IP Master Slave 30

Slave is Promoted, IP Follows, Clients Reconnect Client A Client B Client N Master IP Master Could be out of date No longer valid 31

Failed Instance Restarts as Slave Client A Client B Client N Master IP Master On-disk files erased 32

Failed Instance Restarts as Slave Client A Client B Client N Master IP Master full backup 33

Failed Instance Restarts as Slave Client A Client B Client N Master IP Slave Streaming replication Master 34

Initial Startup In Pacemaker the startup sequence for a master / slave resource is as follows: Pacemaker starts resource as a slave on node A Pacemaker starts resource as a slave on node B Pacemaker chooses one instance to promote to master 35

Master / Slave Resource State Machine manage stopped start slave stop demote promote master 36

Initial Startup Problem Problem: for our design, starting as a slave means to prepare a slave database as follows: 1.Erase files on disk (both instances would do this, and wipe out all data!) 2.Obtain a full backup from master instance (this would fail - there isn't one yet) 3.Start slave database instance in PostgreSQL hot standby recovery-mode with streaming replication 37

Initial Startup Problem: Solution Custom PostgreSQL resource agent When told to start as a slave: If there is a running master, prepare and start slave as normal If there is no running master: Do nothing Return $OCF_SUCCESS to Pacemaker as if successfully started as a slave When Pacemaker eventually promotes one instance: Start that instance as a master from disk image Prepare and start the other instance as a slave 38

Modified Master / Slave Resource State Machine manage stopped start slave. awaiting_role demote master up // prepare slave. preparing done promote In these states monitor operations return $OCF_SUCCESS. Pacemaker is led to believe the database is running as a slave. It is only actually doing so in slave.replicating state. slave. replicating master 39

Additional Enhancements Fallback images: rotation of regular database backups are taken on each node and stored locally. If normal HA mechanisms fail, or the database is corrupted, the RA will start the database from a fallback image Enhanced monitoring: for our purposes, it is not sufficient to deem a database to be alive based on there being a running PID. Our RA performs representative database queries. 40

Geo Redundancy Extensions Database replication from primary geo site to backup geo site is the same PostgreSQL streaming replication Additional modifications to the state machine in the RA accommodate local slaves and geo slaves Significant additional complication when working across geo sites, as HA events (notifies, etc.) do not traverse the geo cluster The design pattern we used extensively is to perform various event transition checks during regular monitor operations 41

Geo Redundant Master / Slave Resource State Machine manage stopped start demote local master up // prepare slave. awaiting_role geo master up // prepare demote slave. local_preparing slave. geo_preparing done promote done slave. local_replicating slave. geo_replicating master 42

Filesystem Replication

Filesystem Replication Some silhouette components are made highly available by storing their state on a filesystem shared between the nodes of the local cluster (e.g. DHCP server's conf and lease files) Select portions of this shared filesystem needed to be replicated to the backup geo site We explored various options, such as cluster filesystems (GFS, OCFS), DRBD layers, csync2, etc. For our application and constraints, these technologies were not appropriate We implemented a simple pull paradigm replicator component based on rsync 44

Dead Man's Switch

Dead Man's Switch silhouette's geo redundancy architecture includes a dead man's switch implemented by a custom component called the geo-manager the dead man's switch decouples geo cluster decisions from geo site service decisions basic idea: if the geo cluster decides that a geo failover should happen, a dead man's switch timer (default: 2 hours) is started the geo failover can be manually confirmed or aborted before the timer expires if the timer expires, geo failover happens automatically allows geo failover intervention by operations persons 46

Geo Role vs Geo Service Role Geo role: the role that the geo cluster wants a geo site to be. If geo-ticket is granted, the geo role is provide service. If revoked, the geo role is replicate Geo service role: the actual service role ( provide service or replicate ) that a geo site takes on at a given moment. The geo role as embodied by the geo-ticket is a suggestion to the geo-manager. The geo-manager controls the actual geo service role by a local cluster ticket called geo-service-ticket 47

Geo Role State Machine Geo Role replicating geo-ticket revoked geo-ticket granted provide service 48

Geo Service Role State Machine Geo Service Role set geo service role to replicate // revoke geo-service-ticket geo-ticket granted // start DM timer replicating DM timer expired // revoke geo-service-ticket fixed replicating pending transition to provide service pending transition to replicate unset geo service role DM timer expired // grant geo-service-ticket provide service geo-ticket revoked // start DM timer fixed provide service set geo service role to provide service // grant geo-service-ticket 49

Lessons Learned

Lessons Learned Geo Clustering for SUSE Linux Enterprise High Availability Extension 11 SP3 was not robust enough for production deployment. We had to use the Geo Clustering extension from SUSE Linux Enterprise 12. We were forced to implement basic infrastructure such as filesystem replication Pacemaker and the geo cluster overlay did not always provide sufficient events for us to implement sophisticated resource agents. Our RAS rely heavily on regular monitor operations as an entry point to poll for events 51

52

Unpublished Work of SUSE LLC. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE LLC. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.