15
High Availability in OpenStack Athens OpenStack User Group #OSATH 13 th Meetup, 12 th May 2015 Thanassis Parathyras, [email protected], @parathyras

High Availability in OpenStack

Embed Size (px)

Citation preview

Page 1: High Availability in OpenStack

High Availability in OpenStack

Athens OpenStack User Group #OSATH

13th Meetup, 12th May 2015Thanassis Parathyras,

[email protected], @parathyras

Page 2: High Availability in OpenStack

Announcements

Latest release brings bare-metal provisioning with Ironic

Greek Mailing List• [email protected]• Join at http://lists.openstack.org

OpenStack Summit (https://www.openstack.org)• 18-22 May, Vancouver

OpenStack CEE Day (http://openstackceeday.com)• 8 June, Budapest

Page 3: High Availability in OpenStack

Outline

• HA in cloud environments• OpenStack Orchestration Heat• Example on Heat

– design structure– web service HA

• More approaches to implement HA– legacy and new stuff

• What about the cloud platform itself– an operator’s view

Page 4: High Availability in OpenStack

Why HA is required

“cloud instances are expected to fail”

“pets vs cattles”

already established industry approachw/ VMware DRS and HA for example

Page 5: High Availability in OpenStack

Where to apply HA

• Workloads– VMs – Applications– Services

• OpenStack services– Compute, Network, Storage, Identity, Image, …– APIs, schedulers, agents

• Platform services– Database (MySQL)– AMQP (RabbitMQ)

We focus on HA for Workloads

Page 6: High Availability in OpenStack

Orchestrate with Heat

• Standard template-based mechanism

• AWS CloudFormation and HOT(Heat Orchestration Template Language)

• Can handle HA

• Combined w/ Ceilometer supports auto-scaling

Page 7: High Availability in OpenStack

Heat basics

Template

Parameters

Resources

Outputs

Resource

Reference

Properties

Attributes

Page 8: High Availability in OpenStack

Heat concepts

Stacks are created from templates• Single file template (design blueprint)• OpenStack resources

– cloud instances,– networks,– storage devices,– any other cloud resource

• Relationships between resources– Volume attachments, etc.

• Nested stacks• Actions on failure to support HA• Auto-scaling policy and resource allocation

Page 9: High Availability in OpenStack

Stack structure - visual

stack

Resource

Resource

stack

Nova instance

Cinder volume

Attachment

Nested stack

Page 10: High Availability in OpenStack

Template structure - code{ "AWSTemplateFormatVersion" : "2010-09-09",

"Description" : "AWS CloudFormation Sample Template“,

"Parameters" : { "KeyName" : {…}, "InstanceType" : {…}, … },

"Mappings" : { "AWSInstanceType2Arch" : {…}, … },

"Resources" : { "User" : {…}, "Keys" : {…},

"WebServerRestartPolicy" : { "Type" : "OS::Heat::HARestarter", "Properties" : {…} },

"HttpFailureAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": {…} },

"DatabaseServer" : { "Type" : "AWS::EC2::Instance", … , "Properties": {…} },

},

"Outputs" : { "WebsiteURL" : {...} } }

Source: https://github.com/openstack/heat-templates/blob/master/cfn/F17/WordPress_Single_Instance_With_HA.template

Page 11: High Availability in OpenStack

Beyond OpenStack

Workloads HA may further be managed using tools and mechanisms • Linux HA clusters

– Continue to use existing solutions

• Configuration Management– Triggered on failure detection– Puppet, Chef, Ansible, SaltStack

• utilize oslo library (NEW with Kilo)– Features heartbeat monitoring

Page 12: High Availability in OpenStack

On the management level

OpenStack services are treated like any other service, distinguished in:• stateless – API servers

– Scale horizontally • stateful – schedulers, agents

– Need for the service to be HA-aware (and capable)• Swift has built-in data redundancy

Deploy external OSS solutions based on • HAProxy (provides load-balancing w/ health check)• keepalived (cluster VIP, implements VRRP)• pacemaker (cluster management)• zookeeper (service management)

Page 13: High Availability in OpenStack

On the platform level

All OpenStack services are operating on top of a Database, while most of them communicate internally through a Message Queue

HA on this level is managed by external solutions• Galera

– Synchronous replication across MySQL clusters– Doesn’t require a shared storage device

• RabbitMQ Mirrored Queues– Replicated messages over multiple RabbitMQ instances

Page 14: High Availability in OpenStack

Get involved

• Documentation– http://docs.openstack.org

• Join the community– http://www.openstack.org/community

• Greek mailing list– http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-el

• Contribute– code (development, blueprints, reviews, bugs)– docs writing, translations, infrastructure support

Page 15: High Availability in OpenStack

Thank you!

Athens OpenStack User Group #OSATHhttp://www.meetup.com/Athens-OpenStack-User-Group

Thanassis Parathyras [email protected], @parathyras