SlideShare uma empresa Scribd logo
1 de 110
Baixar para ler offline
David Vossel <dvossel@redhat.com>
PACEMAKER
OpenStack Summit
May 21,2015
David Vossel <dvossel@redhat.com>
OpenStack's PID 1
David Vossel <dvossel@redhat.com>
Story Time
David Vossel <dvossel@redhat.com>
And how Pacemaker Saved the Day
The Future of HA
David Vossel <dvossel@redhat.com>
There once was a database
David Vossel <dvossel@redhat.com>
There once was a database
DB
David Vossel <dvossel@redhat.com>
Not like the other databases
There once was a database
DB
David Vossel <dvossel@redhat.com>
DB
Not like the other databases
There once was a database
A distributed self replicating database
David Vossel <dvossel@redhat.com>
Not like the other databases
There once was a database
A distributed self replicating database
Active/Active Replicated Database
DB DB DB DB
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Everyone: HOORAY!
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Everyone: Load Balance?
Clients
????????????????????
David Vossel <dvossel@redhat.com>
HAProxy enters the scene.
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
proxy
HA Proxy: No Problem
Clients
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
proxy
HA Proxy: No Problem
Clients
Everyone:Hooray!
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
proxy
Clients
* Everyone: ummmmm
David Vossel <dvossel@redhat.com>
Everyone: What if a node dies?
Active/Active Replicated Database
DB DB DB DB
proxy
Clients
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
proxy
HA Proxy: No Problem
Everyone: What if a node dies?
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
proxy
* Everyone: ummmmm
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
proxy
Everyone: But...What if proxy dies?
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
proxy
HA Proxy:...
Everyone: But...What if proxy dies?
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
proxy
Everyone:What?????
HA Proxy:...
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
proxy
Everyone:Uhhh???!!!!??
HA Proxy:...
????????????????????
David Vossel <dvossel@redhat.com>
Active/Active Replicated Database
DB DB DB DB
Clients
Everyone:Hello????
HA Proxy:...
????????????????????
David Vossel <dvossel@redhat.com>
Clients
Everyone:Anyone?
????????????????????
David Vossel <dvossel@redhat.com>
Everyone:I knew this cloud thing wouldn't work...
David Vossel <dvossel@redhat.com>
KeepaliveD: Wait! Guys...I've got an idea!!!
Everyone:I knew this cloud thing wouldn't work...
David Vossel <dvossel@redhat.com>
KeepaliveD enters the scene.
David Vossel <dvossel@redhat.com>
keepaliveD
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Everyone:Whoa, Proxy Failover!
David Vossel <dvossel@redhat.com>
keepaliveD
keepaliveD
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Everyone:Awesome!!
David Vossel <dvossel@redhat.com>
keepaliveD
keepaliveD
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Everyone:Awesome!!
Keepalived:: I know
right?!!
David Vossel <dvossel@redhat.com>
keepaliveD
Clients
Everyone: No Way!!!
Keepalived: I Rock!
keepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
David Vossel <dvossel@redhat.com>
keepaliveD
Clients
keepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Everyone:Wait...Hold up
David Vossel <dvossel@redhat.com>
keepaliveD
Clients
keepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Everyone: But....What actually
happens to the “other”nodes?
David Vossel <dvossel@redhat.com>
Peripeteia - per·i·pe·tei·a
a sudden reversal of fortune or change
in circumstances, especially in
reference to fictional narrative.
David Vossel <dvossel@redhat.com>
keepaliveDkeepaliveD keepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Keepalived:What Other Nodes? Keepalived:What Other Nodes?
David Vossel <dvossel@redhat.com>
keepaliveDkeepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Clients: HEY?! How come the thing
I just wrote isn't in the database?
David Vossel <dvossel@redhat.com>
keepaliveDkeepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Clients: HEY?! How come the thing
I just wrote isn't in the database?
Clients:Yeah,what's going on?!
David Vossel <dvossel@redhat.com>
keepaliveDkeepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
* Everyone: I've made a huge mistake....
David Vossel <dvossel@redhat.com>
The Missing Piece?
David Vossel <dvossel@redhat.com>
David Vossel <dvossel@redhat.com>
Pacemaker: System Level HA
●
System level HA is holistic.
Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
David Vossel <dvossel@redhat.com>
Pacemaker
Pacemaker: System Level HA
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
●
System level HA is holistic.
●
Defines the policy of how to recover a set of applications
David Vossel <dvossel@redhat.com>
Pacemaker
Pacemaker: System Level HA
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
●
System level HA is holistic.
●
Defines the policy of how to recover a set of applications
●
Enforces the policy to achieve system wide deterministic behavior.
David Vossel <dvossel@redhat.com>
●
We don't question what happened to the other nodes...We know.
Pacemaker Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Back to the Story... How does Pacemaker Help?
David Vossel <dvossel@redhat.com>
●
We don't question what happened to the other nodes...We know.
●
And how do we know this?
Pacemaker Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Back to the Story... How does Pacemaker Help?
David Vossel <dvossel@redhat.com>
Introducing STONITH
David Vossel <dvossel@redhat.com>
Introducing STONITH
Shoot the Other Node in the Head
David Vossel <dvossel@redhat.com>
STONITH = Pacemaker's Fencing Daemon.
●
Pacemaker knows the state of lost/misbehaving nodes
Pacemaker Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
David Vossel <dvossel@redhat.com>
STONITH = Pacemaker's Fencing Daemon.
●
Pacemaker knows the state of lost/misbehaving nodes
●
Because with fencing via STONITH... that state is dead.
Pacemaker Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
David Vossel <dvossel@redhat.com>
Quick Recap...
David Vossel <dvossel@redhat.com>
Without Pacemaker+STONITH
keepaliveDkeepaliveD keepaliveD
Active/Active Replicated DatabaseActive/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Clients
Keepalived:I dunno.Who cares? Keepalived:I dunno.Who cares?
David Vossel <dvossel@redhat.com>
With Pacemaker+STONITH...
Pacemaker Pacemaker
Active/Active Replicated Database
DB DB DB DB
proxy proxy proxy proxy
VIP VIP VIP VIP
Pacemaker:They are dead
because I killed them..
Clients
David Vossel <dvossel@redhat.com>
The Takeaway.
●
Pacemaker and load balancing are NOT mutually exclusive.
David Vossel <dvossel@redhat.com>
The Takeaway.
●
Pacemaker and load balancing are NOT mutually exclusive.
●
Pacemaker and HAProxy are meant for one another.
David Vossel <dvossel@redhat.com>
The Takeaway.
●
Pacemaker and load balancing are NOT mutually exclusive.
●
Pacemaker and HAProxy are meant for one another.
HAProxy
Pacemaker
David Vossel <dvossel@redhat.com>
Pacemaker
The Distributed PID 1
David Vossel <dvossel@redhat.com>
Modern PID 1's role.
●
SystemD:
●
Launch services parallel
●
yet observe strict ordering between dependent services.
●
Monitor/recover failed resources.
systemd
galerarabbitmqStart
Order Unrelated dependencies
start in parallel.
Ordering is enforced.
These services can start in
parallel only after their
dependencies start.Nova
redis
ceilometer
David Vossel <dvossel@redhat.com>
The Problem
●
OpenStack services are not isolated to a local machine.
systemd
Galera Cluster
Form
Galera
cluster
Then
Start
Nova.
Nova
NODE1 NODE2 NODE3 NODE4
systemd systemd systemd
David Vossel <dvossel@redhat.com>
The Problem
●
OpenStack services are not isolated to a local machine.
●
SystemD Can't coordinate this.
systemd
NODE1 NODE2 NODE3 NODE4
systemd systemd systemd
Galera Cluster
Form
Galera
cluster
Then
Start
Nova.
Nova
David Vossel <dvossel@redhat.com>
The Fix.
●
But Pacemaker can
●
because Pacemaker is distributed.
Pacemaker
NODE1 NODE2 NODE3 NODE4
Galera Cluster
Form
Galera
cluster
Then
Start
Nova.
Nova
David Vossel <dvossel@redhat.com>
The Fix.
●
Pacemaker,just like systemd,can...
●
Launch services parallel
●
yet observe strict ordering between dependent services.
●
Monitor/recover failed resources.
Pacemaker
galerarabbitmqStart
Order Unrelated dependencies
start in parallel.
Ordering is enforced.
These services can start in
parallel only after their
dependencies start.Nova
redis
ceilometer
David Vossel <dvossel@redhat.com>
The Fix.
●
Except pacemaker can coordinate this across any number of nodes.
Pacemaker
NODE1 NODE2 NODE3 NODE4
RabbitMQ Cluster
NODE5 NODE6 NODE7 NODE8 NODE9
Galera Cluster Redis Cluster
Ceilometer ClusterNova Cluster
David Vossel <dvossel@redhat.com>
The Fix.
●
Except pacemaker can coordinate this across any number of nodes.
●
With any number of resources
Pacemaker
NODE1 NODE2 NODE3 NODE4 NODE5 NODE6 NODE7 NODE8 NODE9
HAProxy HAProxy HAProxy
VIP-Galera VIP-RedisVIP-Rabbit VIP-Nova
HAProxy
VIP-keys
HAProxy
VIP-cinder VIP-celio
Keystone ClusterCeilometer Cluster
Nova Cluster
Cinder Cluster
VIP-glance
HAProxy
VIP-neutron
HAProxy
Glance Cluster
Horizon Cluster
HAProxy HAProxy
RabbitMQ ClusterGalera Cluster Redis Cluster
Neutron Cluster
Swift Cluster
Heat Cluster
David Vossel <dvossel@redhat.com>
Resource Constraints
●
Pacemaker has unique capabilities for managing resources and
modeling complex resource dependencies.
●
Examples:
●
Start resource X then start resource Y
●
Colocate resource X with resource Y
●
Resource X prefers node A over node B
●
Resource X prefers node A between 8am-5pm
David Vossel <dvossel@redhat.com>
Architecture
HA OpenStack Controller Nodes
David Vossel <dvossel@redhat.com>
How it works... in one sentence
Pacemaker managing Virtual IPs + Load Balancers + Controller
services to maximize the availability of OpenStackAPIs
David Vossel <dvossel@redhat.com>
Pacemaker
HA-proxy
VIP
Service Service Service
NODE1 NODE2 NODE3
Each distributed service has a front end
Virtual IP tied to a Load Balancer.
How it works... in one sentence
Pacemaker managing Virtual IPs + Load Balancers + Controller
services to maximize the availability of OpenStackAPIs
HA-proxyHA-proxy
David Vossel <dvossel@redhat.com>
Each distributed service has a front end
Virtual IP tied to a Load Balancer.
Each Load Balancer routes VIP traffic to its
respective Active/Active service instances
How it works... in one sentence
Pacemaker managing Virtual IPs + Load Balancers + Controller
services to maximize the availability of OpenStackAPIs
Pacemaker
HA-proxy
VIP
Service Service Service
NODE1 NODE2 NODE3
HA-proxyHA-proxy
David Vossel <dvossel@redhat.com>
Pacemaker
HA-proxy
VIP
Service Service Service
NODE1 NODE2 NODE3
Each distributed service has a front end
Virtual IP tied to a Load Balancer.
Each Load Balancer routes VIP traffic to its
respective Active/Active service instances
How it works... in one sentence
HA-proxy
Pacemaker managing Virtual IPs + Load Balancers + Controller
services to maximize the availability of OpenStackAPIs
HA-proxy
David Vossel <dvossel@redhat.com>
Each distributed service has a front end
Virtual IP tied to a Load Balancer.
Each Load Balancer routes VIP traffic to its
respective Active/Active service instances
Active/Active OpenStack Controller
service... like Nova, Glance, Keystone,
Galera, Redis, Rabbitmq, ect...
How it works... in one sentence
Pacemaker managing Virtual IPs + Load Balancers + Controller
services to maximize the availability of OpenStackAPIs
Pacemaker
HA-proxy
VIP
Service Service Service
NODE1 NODE2 NODE3
HA-proxyHA-proxy
David Vossel <dvossel@redhat.com>
PROXY CLONE
SERVICE CLONE
Pacemaker
HA-proxy
VIP
Service Service Service
NODE1 NODE2 NODE3
Scaling with Resource Clones
●
Pacemaker's ability to clone services makes scaling trivial.
●
Want more instance?
HA-proxy HA-proxy
David Vossel <dvossel@redhat.com>
PROXY CLONE
SERVICE CLONE
Pacemaker
HA-proxy
VIP
Service Service Service
NODE1 NODE2 NODE3
Scaling with Resource Clones
NODE4 NODE5 NODE6
Service Service Service
●
Increment the number of clone instances pacemaker is allowed to run
for a service to scale service instances.
HA-proxy HA-proxy HA-proxy HA-proxy HA-proxy
David Vossel <dvossel@redhat.com>
Pacemaker
HA-proxy
Galera VIP
Galera Galera Galera
NODE1 NODE2 NODE3
How it works, continued...
●
Services interact with one another using each service's Virtual IP
●
Example: Both Glance and Nova need access to Galera...Galera is
accessed via the front end Virtual IP and those requests are
distributed to the backend galera cluster.
Glance Nova
DB Request DB Request
HA-proxyHA-proxy
David Vossel <dvossel@redhat.com>
Deployment Strategies
HA OpenStack Controller Nodes
David Vossel <dvossel@redhat.com>
Collapsed Architecture
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
●
All controller nodes run the same services.
●
VIP+load balancers distribute access to APIs
across cloned nodes.
David Vossel <dvossel@redhat.com>
Collapsed Architecture
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
NOVA VIP
Clients
David Vossel <dvossel@redhat.com>
Collapsed Architecture
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Glance VIP
Clients
David Vossel <dvossel@redhat.com>
Collapsed Architecture Scaling
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
NODE4
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE5
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE6
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
David Vossel <dvossel@redhat.com>
Startup Ordering Revisited.
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Bootstrap and start Start Galera Cluster
across multiple nodes.
David Vossel <dvossel@redhat.com>
Startup Ordering Revisited.
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Bootstrap and start Start Galera Cluster
across multiple nodes.
Then Start Nova instances, which depend
on an active Galera cluster.
David Vossel <dvossel@redhat.com>
Stop ordering Ordering Revisited.
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
If we're shutting down galera cluster
David Vossel <dvossel@redhat.com>
Stop ordering Ordering Revisited.
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Stop everything that depends on Galera.
Like Nova...
David Vossel <dvossel@redhat.com>
Stop ordering Ordering Revisited.
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Then Shutdown Galera cluster.
David Vossel <dvossel@redhat.com>
Complex Startup Ordering
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Start Redis Clone.
David Vossel <dvossel@redhat.com>
Complex Startup Ordering
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Master
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Promote one instance of Redis
clone to be Master Instance.
David Vossel <dvossel@redhat.com>
Complex Startup Ordering
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Slave
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis Master
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
Then start Ceilometer cluster which
depends on Redis
David Vossel <dvossel@redhat.com>
Segregated Architecture
Pacemaker
●
Each service runs on its own dedicated hardware.
●
Scales much further
●
Add capacity where capacity makes sense.
●
Requires lots and lots of nodes.
David Vossel <dvossel@redhat.com>
Segregated Architecture
Pacemaker
●
Take a closer look.
David Vossel <dvossel@redhat.com>
Segregated Architecture
Pacemaker
NODE1
Galera
NODE2
Galera
NODE3
Galera
●
Possible to have have an entire set of nodes just for Load balancing
●
Dedicated cluster for galera
NODE4
Proxy
NODE5
Proxy
NODE6
Proxy
NODE7
Nova
NODE8
Nova
NODE9
Nova
VIP VIPVIP
More services that way.
Glanc
NOD
VIP VIPVIP
VIP VIPVIP
VIP VIPVIP
VIP VIPVIP
David Vossel <dvossel@redhat.com>
Mixed Architecture
●
Mixture of collapsed and segregated.
●
Break some components into separate hardware
●
Most of cluster is collapsed
Pacemaker
NODE1
Galera
NODE2
Galera
NODE3
Galera
NODE4
Proxy
NODE5
Proxy
NODE6
Proxy
NODE7 NODE8 NODE9
VIP VIPVIP
VIP VIPVIP
VIP VIPVIP
VIP VIPVIP
VIP VIPVIP
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Redis
Neutron N
Swift
Heat
Neutron S
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Redis
Neutron N
Swift
Heat
Neutron S
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Redis
Neutron N
Swift
Heat
Neutron S
David Vossel <dvossel@redhat.com>
Pacemaker Advantages
●
Automates bootstrap of services that previously required hand holding.
●
Example: Automate Galera bootstrap
1.Find out which galera instance is most up-to-date
2.Bootstrap most current galera instance first.
3.Then sync other galera instances
David Vossel <dvossel@redhat.com>
Pacemaker Advantages. Continued...
●
start/stop distributed services in a graceful ordered manner.
●
Gracefully and controller node into standby for maintenance.
●
Dynamically grow capacity by adding more pacemaker nodes
●
Centralized view of distributed service state.
David Vossel <dvossel@redhat.com>
Architecture
HA OpenStack Compute Nodes
David Vossel <dvossel@redhat.com>
HA for Cattle
●
Both Pets and Cattle need High Availability.
●
Recognize the techniques used for each are different.
David Vossel <dvossel@redhat.com>
Pacemaker for Pets and small Herds.
●
No limits in the number of resources.
●
Pacemaker supports“n-node”clusters.
●
Cluster are limited by the Corosync messaging layer to 16 nodes.
Pacemaker
David Vossel <dvossel@redhat.com>
Pacemaker Remote for the Cattle.
●
Pacemaker Remote allows clusters to scale beyond corosync
membership layer limitations.
●
Pacemaker Remote can scale clusters to 100s possibly 1000s of nodes.
Pacemaker + Pacemaker Remote
David Vossel <dvossel@redhat.com>
The Solution: Pacemaker Remote
●
Pacemaker Remote is a single daemon,pacemaker_remoted
Pacemaker Remote
Remote Node
David Vossel <dvossel@redhat.com>
The Solution: Pacemaker Remote
Pacemaker
Node 2 Node 3Node 1
Pacemaker Remote
Node 5 Node 6Node 4
Node 8 Node 9Node 7
Node 11 Node 12Node 10
Node 14 Node 15Node 13
Node 16
Remote Node
●
Pacemaker Remote is a single daemon, pacemaker_remoted
●
This daemon is a lightweight way of integrating nodes into the cluster.
David Vossel <dvossel@redhat.com>
The Solution: Pacemaker Remote
Pacemaker
Node 2 Node 3Node 1
Pacemaker Remote
Node 5 Node 6Node 4
Node 8 Node 9Node 7
Node 11 Node 12Node 10
Node 14 Node 15Node 13
Node 16
Remote Node
●
Pacemaker Remote is a single daemon, pacemaker_remoted
●
This daemon is a lightweight way of integrating nodes into the cluster.
●
Cluster services spread out across pacemaker and pacemaker_remote
nodes as a single cluster partition.
Cluster Services
David Vossel <dvossel@redhat.com>
Pacemaker Remote use-case
Pacemaker
Node 2 Node 3Node 1
Pacemaker Remote
Node 5 Node 6Node 4
Node 8 Node 9Node 7
Node 11 Node 12Node 10
Node 14 Node 15Node 13
Node 16
Remote Node
●
Management of services on Pacemaker Remote can work just like Pacemaker
●
But thrives in the cattle use case where every remote instance is identical.
Cluster Services
Cloned service
Pacemaker Remote
Remote Node
Cloned service
Pacemaker Remote
Remote Node
Cloned service
David Vossel <dvossel@redhat.com>
Pacemaker Remote use case
Pacemaker
Node 2 Node 3Node 1
●
Cloned services scale quite well on pacemaker remote
Cluster Services
Cloned services
Remote Node
Pacemaker Remote
David Vossel <dvossel@redhat.com>
Compute Node HA Strategy.
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
David Vossel <dvossel@redhat.com>
Compute Node HA Strategy.
Compute Service Group
Remote Node
Pacemaker Remote
Pacemaker
NODE1
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE2
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
NODE3
Keystone
Ceilometer
Nova
Cinder
Glance
Horizon
RabbitMQ
Galera
Redis
Neutron N
Swift
Heat
Neutron S
HA Proxy HA Proxy HA Proxy
Separate VIP per service
LibvirtdD
Neutron Open vSwitch
Ceilometer Compute
Nova Compute
David Vossel <dvossel@redhat.com>
Why HA Compute Nodes?
●
Maximize the Availability of Compute Instances.
●
detection of dead Cattle instances
●
Automate recovery of Cattle instances
David Vossel <dvossel@redhat.com>
Why HA Compute Nodes?
●
Maximize the Availability of Compute Instances.
●
detection of dead Cattle instances
●
Automate recovery of Cattle instances
●
Pacemaker Remote also has a secret weapon.
David Vossel <dvossel@redhat.com>
STONITH + Pacemaker Remote.
David Vossel <dvossel@redhat.com>
The Future
David Vossel <dvossel@redhat.com>
Limits?
Pacemaker + Pacemaker Remote
David Vossel <dvossel@redhat.com>
How many
services?
Pacemaker + Pacemaker Remote
David Vossel <dvossel@redhat.com>
Pacemaker + Pacemaker Remote
How many
services?
How many
nodes?
David Vossel <dvossel@redhat.com>
Questions?
Visit us at
clusterlabs.org

Mais conteúdo relacionado

Destaque

Temporary Pacemaker Slides
Temporary Pacemaker SlidesTemporary Pacemaker Slides
Temporary Pacemaker Slides
maltiaziz24
 
Pacemaker Overview
Pacemaker OverviewPacemaker Overview
Pacemaker Overview
stooty s
 
Anethesia and cardiac implantable electronic devices
Anethesia and cardiac implantable electronic devicesAnethesia and cardiac implantable electronic devices
Anethesia and cardiac implantable electronic devices
Amr Moustafa Kamel
 
Surgery in patients with icd and pacemakers
Surgery in patients with icd and pacemakersSurgery in patients with icd and pacemakers
Surgery in patients with icd and pacemakers
Abhilash Cheriyan
 

Destaque (20)

Temporary Pacemaker Slides
Temporary Pacemaker SlidesTemporary Pacemaker Slides
Temporary Pacemaker Slides
 
Pacemaker basics
Pacemaker basicsPacemaker basics
Pacemaker basics
 
Pacemaker
PacemakerPacemaker
Pacemaker
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
 
Electrical testing of pacemaker
Electrical testing of pacemakerElectrical testing of pacemaker
Electrical testing of pacemaker
 
Pacemaker Overview
Pacemaker OverviewPacemaker Overview
Pacemaker Overview
 
Pacer ppt
Pacer pptPacer ppt
Pacer ppt
 
Pacemaker and anaesthesia
Pacemaker and anaesthesiaPacemaker and anaesthesia
Pacemaker and anaesthesia
 
OpenStack HA
OpenStack HAOpenStack HA
OpenStack HA
 
MySQL with DRBD/Pacemaker/Corosync on Linux
 MySQL with DRBD/Pacemaker/Corosync on Linux MySQL with DRBD/Pacemaker/Corosync on Linux
MySQL with DRBD/Pacemaker/Corosync on Linux
 
High Availability (HA) Explained
High Availability (HA) ExplainedHigh Availability (HA) Explained
High Availability (HA) Explained
 
High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStack
 
High Availability in 37 Easy Steps
High Availability in 37 Easy StepsHigh Availability in 37 Easy Steps
High Availability in 37 Easy Steps
 
Deep brain stimulation
Deep brain stimulationDeep brain stimulation
Deep brain stimulation
 
Leadless pacemaker
Leadless pacemakerLeadless pacemaker
Leadless pacemaker
 
pacemaker
pacemakerpacemaker
pacemaker
 
Cardiac Pacemaker
Cardiac PacemakerCardiac Pacemaker
Cardiac Pacemaker
 
OpenStack Control Plane High Availability
OpenStack Control Plane High AvailabilityOpenStack Control Plane High Availability
OpenStack Control Plane High Availability
 
Anethesia and cardiac implantable electronic devices
Anethesia and cardiac implantable electronic devicesAnethesia and cardiac implantable electronic devices
Anethesia and cardiac implantable electronic devices
 
Surgery in patients with icd and pacemakers
Surgery in patients with icd and pacemakersSurgery in patients with icd and pacemakers
Surgery in patients with icd and pacemakers
 

Semelhante a Pacemaker: OpenStack's Pid 1

Sane SQL Change Management with Sqitch
Sane SQL Change Management with SqitchSane SQL Change Management with Sqitch
Sane SQL Change Management with Sqitch
David Wheeler
 
SQL on Hadoop: Defining the New Generation of Analytics Databases
SQL on Hadoop: Defining the New Generation of Analytics Databases  SQL on Hadoop: Defining the New Generation of Analytics Databases
SQL on Hadoop: Defining the New Generation of Analytics Databases
DataWorks Summit
 
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...
Philip Stehlik
 

Semelhante a Pacemaker: OpenStack's Pid 1 (20)

Big data Hadoop Analytic and Data warehouse comparison guide
Big data Hadoop Analytic and Data warehouse comparison guideBig data Hadoop Analytic and Data warehouse comparison guide
Big data Hadoop Analytic and Data warehouse comparison guide
 
Big data hadooop analytic and data warehouse comparison guide
Big data hadooop analytic and data warehouse comparison guideBig data hadooop analytic and data warehouse comparison guide
Big data hadooop analytic and data warehouse comparison guide
 
Apache Sqoop Tutorial | Sqoop: Import & Export Data From MySQL To HDFS | Hado...
Apache Sqoop Tutorial | Sqoop: Import & Export Data From MySQL To HDFS | Hado...Apache Sqoop Tutorial | Sqoop: Import & Export Data From MySQL To HDFS | Hado...
Apache Sqoop Tutorial | Sqoop: Import & Export Data From MySQL To HDFS | Hado...
 
What is Delphix
What is DelphixWhat is Delphix
What is Delphix
 
Real-Time Data Loading from MySQL to Hadoop
Real-Time Data Loading from MySQL to HadoopReal-Time Data Loading from MySQL to Hadoop
Real-Time Data Loading from MySQL to Hadoop
 
Mike Resseler - Deduplication in windows server 2012 r2
Mike Resseler - Deduplication in windows server 2012 r2Mike Resseler - Deduplication in windows server 2012 r2
Mike Resseler - Deduplication in windows server 2012 r2
 
Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...
Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...
Apache Hadoop Tutorial | Hadoop Tutorial For Beginners | Big Data Hadoop | Ha...
 
A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014A Tale of Two Workflows - ChefConf 2014
A Tale of Two Workflows - ChefConf 2014
 
SQL Bits: Containers and Clones
SQL Bits: Containers and ClonesSQL Bits: Containers and Clones
SQL Bits: Containers and Clones
 
WordPress Development Environments
WordPress Development Environments WordPress Development Environments
WordPress Development Environments
 
Sane SQL Change Management with Sqitch
Sane SQL Change Management with SqitchSane SQL Change Management with Sqitch
Sane SQL Change Management with Sqitch
 
SQL on Hadoop: Defining the New Generation of Analytics Databases
SQL on Hadoop: Defining the New Generation of Analytics Databases  SQL on Hadoop: Defining the New Generation of Analytics Databases
SQL on Hadoop: Defining the New Generation of Analytics Databases
 
D installation manual
D installation manualD installation manual
D installation manual
 
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...
Agile Database Modeling with Grails - Preview of GORM 1.4 - SF Grails Meetup ...
 
MySQL At Yelp
MySQL At YelpMySQL At Yelp
MySQL At Yelp
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
 
Migrating Legacy Data (Ruby Midwest)
Migrating Legacy Data (Ruby Midwest)Migrating Legacy Data (Ruby Midwest)
Migrating Legacy Data (Ruby Midwest)
 
Disaster Recovery and Cloud Migration for your Apache Hive Warehouse
Disaster Recovery and Cloud Migration for your Apache Hive WarehouseDisaster Recovery and Cloud Migration for your Apache Hive Warehouse
Disaster Recovery and Cloud Migration for your Apache Hive Warehouse
 
Yarn by default (Spark on YARN)
Yarn by default (Spark on YARN)Yarn by default (Spark on YARN)
Yarn by default (Spark on YARN)
 
1500 JIRAs in 20 minutes - HBaseCon 2013
1500 JIRAs in 20 minutes - HBaseCon 20131500 JIRAs in 20 minutes - HBaseCon 2013
1500 JIRAs in 20 minutes - HBaseCon 2013
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 

Pacemaker: OpenStack's Pid 1

  • 1. David Vossel <dvossel@redhat.com> PACEMAKER OpenStack Summit May 21,2015 David Vossel <dvossel@redhat.com> OpenStack's PID 1
  • 3. David Vossel <dvossel@redhat.com> And how Pacemaker Saved the Day The Future of HA
  • 6. David Vossel <dvossel@redhat.com> Not like the other databases There once was a database DB
  • 7. David Vossel <dvossel@redhat.com> DB Not like the other databases There once was a database A distributed self replicating database
  • 8. David Vossel <dvossel@redhat.com> Not like the other databases There once was a database A distributed self replicating database Active/Active Replicated Database DB DB DB DB
  • 9. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Everyone: HOORAY!
  • 10. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Everyone: Load Balance? Clients ????????????????????
  • 12. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB proxy HA Proxy: No Problem Clients
  • 13. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB proxy HA Proxy: No Problem Clients Everyone:Hooray!
  • 14. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB proxy Clients * Everyone: ummmmm
  • 15. David Vossel <dvossel@redhat.com> Everyone: What if a node dies? Active/Active Replicated Database DB DB DB DB proxy Clients
  • 16. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients proxy HA Proxy: No Problem Everyone: What if a node dies?
  • 17. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients proxy * Everyone: ummmmm
  • 18. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients proxy Everyone: But...What if proxy dies?
  • 19. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients proxy HA Proxy:... Everyone: But...What if proxy dies?
  • 20. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients proxy Everyone:What????? HA Proxy:...
  • 21. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients proxy Everyone:Uhhh???!!!!?? HA Proxy:... ????????????????????
  • 22. David Vossel <dvossel@redhat.com> Active/Active Replicated Database DB DB DB DB Clients Everyone:Hello???? HA Proxy:... ????????????????????
  • 24. David Vossel <dvossel@redhat.com> Everyone:I knew this cloud thing wouldn't work...
  • 25. David Vossel <dvossel@redhat.com> KeepaliveD: Wait! Guys...I've got an idea!!! Everyone:I knew this cloud thing wouldn't work...
  • 27. David Vossel <dvossel@redhat.com> keepaliveD Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Everyone:Whoa, Proxy Failover!
  • 28. David Vossel <dvossel@redhat.com> keepaliveD keepaliveD Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Everyone:Awesome!!
  • 29. David Vossel <dvossel@redhat.com> keepaliveD keepaliveD Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Everyone:Awesome!! Keepalived:: I know right?!!
  • 30. David Vossel <dvossel@redhat.com> keepaliveD Clients Everyone: No Way!!! Keepalived: I Rock! keepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP
  • 31. David Vossel <dvossel@redhat.com> keepaliveD Clients keepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Everyone:Wait...Hold up
  • 32. David Vossel <dvossel@redhat.com> keepaliveD Clients keepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Everyone: But....What actually happens to the “other”nodes?
  • 33. David Vossel <dvossel@redhat.com> Peripeteia - per·i·pe·tei·a a sudden reversal of fortune or change in circumstances, especially in reference to fictional narrative.
  • 34. David Vossel <dvossel@redhat.com> keepaliveDkeepaliveD keepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Keepalived:What Other Nodes? Keepalived:What Other Nodes?
  • 35. David Vossel <dvossel@redhat.com> keepaliveDkeepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Clients: HEY?! How come the thing I just wrote isn't in the database?
  • 36. David Vossel <dvossel@redhat.com> keepaliveDkeepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Clients: HEY?! How come the thing I just wrote isn't in the database? Clients:Yeah,what's going on?!
  • 37. David Vossel <dvossel@redhat.com> keepaliveDkeepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients * Everyone: I've made a huge mistake....
  • 40. David Vossel <dvossel@redhat.com> Pacemaker: System Level HA ● System level HA is holistic. Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP
  • 41. David Vossel <dvossel@redhat.com> Pacemaker Pacemaker: System Level HA Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP ● System level HA is holistic. ● Defines the policy of how to recover a set of applications
  • 42. David Vossel <dvossel@redhat.com> Pacemaker Pacemaker: System Level HA Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP ● System level HA is holistic. ● Defines the policy of how to recover a set of applications ● Enforces the policy to achieve system wide deterministic behavior.
  • 43. David Vossel <dvossel@redhat.com> ● We don't question what happened to the other nodes...We know. Pacemaker Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Back to the Story... How does Pacemaker Help?
  • 44. David Vossel <dvossel@redhat.com> ● We don't question what happened to the other nodes...We know. ● And how do we know this? Pacemaker Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Back to the Story... How does Pacemaker Help?
  • 46. David Vossel <dvossel@redhat.com> Introducing STONITH Shoot the Other Node in the Head
  • 47. David Vossel <dvossel@redhat.com> STONITH = Pacemaker's Fencing Daemon. ● Pacemaker knows the state of lost/misbehaving nodes Pacemaker Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP
  • 48. David Vossel <dvossel@redhat.com> STONITH = Pacemaker's Fencing Daemon. ● Pacemaker knows the state of lost/misbehaving nodes ● Because with fencing via STONITH... that state is dead. Pacemaker Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP
  • 50. David Vossel <dvossel@redhat.com> Without Pacemaker+STONITH keepaliveDkeepaliveD keepaliveD Active/Active Replicated DatabaseActive/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Clients Keepalived:I dunno.Who cares? Keepalived:I dunno.Who cares?
  • 51. David Vossel <dvossel@redhat.com> With Pacemaker+STONITH... Pacemaker Pacemaker Active/Active Replicated Database DB DB DB DB proxy proxy proxy proxy VIP VIP VIP VIP Pacemaker:They are dead because I killed them.. Clients
  • 52. David Vossel <dvossel@redhat.com> The Takeaway. ● Pacemaker and load balancing are NOT mutually exclusive.
  • 53. David Vossel <dvossel@redhat.com> The Takeaway. ● Pacemaker and load balancing are NOT mutually exclusive. ● Pacemaker and HAProxy are meant for one another.
  • 54. David Vossel <dvossel@redhat.com> The Takeaway. ● Pacemaker and load balancing are NOT mutually exclusive. ● Pacemaker and HAProxy are meant for one another. HAProxy Pacemaker
  • 56. David Vossel <dvossel@redhat.com> Modern PID 1's role. ● SystemD: ● Launch services parallel ● yet observe strict ordering between dependent services. ● Monitor/recover failed resources. systemd galerarabbitmqStart Order Unrelated dependencies start in parallel. Ordering is enforced. These services can start in parallel only after their dependencies start.Nova redis ceilometer
  • 57. David Vossel <dvossel@redhat.com> The Problem ● OpenStack services are not isolated to a local machine. systemd Galera Cluster Form Galera cluster Then Start Nova. Nova NODE1 NODE2 NODE3 NODE4 systemd systemd systemd
  • 58. David Vossel <dvossel@redhat.com> The Problem ● OpenStack services are not isolated to a local machine. ● SystemD Can't coordinate this. systemd NODE1 NODE2 NODE3 NODE4 systemd systemd systemd Galera Cluster Form Galera cluster Then Start Nova. Nova
  • 59. David Vossel <dvossel@redhat.com> The Fix. ● But Pacemaker can ● because Pacemaker is distributed. Pacemaker NODE1 NODE2 NODE3 NODE4 Galera Cluster Form Galera cluster Then Start Nova. Nova
  • 60. David Vossel <dvossel@redhat.com> The Fix. ● Pacemaker,just like systemd,can... ● Launch services parallel ● yet observe strict ordering between dependent services. ● Monitor/recover failed resources. Pacemaker galerarabbitmqStart Order Unrelated dependencies start in parallel. Ordering is enforced. These services can start in parallel only after their dependencies start.Nova redis ceilometer
  • 61. David Vossel <dvossel@redhat.com> The Fix. ● Except pacemaker can coordinate this across any number of nodes. Pacemaker NODE1 NODE2 NODE3 NODE4 RabbitMQ Cluster NODE5 NODE6 NODE7 NODE8 NODE9 Galera Cluster Redis Cluster Ceilometer ClusterNova Cluster
  • 62. David Vossel <dvossel@redhat.com> The Fix. ● Except pacemaker can coordinate this across any number of nodes. ● With any number of resources Pacemaker NODE1 NODE2 NODE3 NODE4 NODE5 NODE6 NODE7 NODE8 NODE9 HAProxy HAProxy HAProxy VIP-Galera VIP-RedisVIP-Rabbit VIP-Nova HAProxy VIP-keys HAProxy VIP-cinder VIP-celio Keystone ClusterCeilometer Cluster Nova Cluster Cinder Cluster VIP-glance HAProxy VIP-neutron HAProxy Glance Cluster Horizon Cluster HAProxy HAProxy RabbitMQ ClusterGalera Cluster Redis Cluster Neutron Cluster Swift Cluster Heat Cluster
  • 63. David Vossel <dvossel@redhat.com> Resource Constraints ● Pacemaker has unique capabilities for managing resources and modeling complex resource dependencies. ● Examples: ● Start resource X then start resource Y ● Colocate resource X with resource Y ● Resource X prefers node A over node B ● Resource X prefers node A between 8am-5pm
  • 65. David Vossel <dvossel@redhat.com> How it works... in one sentence Pacemaker managing Virtual IPs + Load Balancers + Controller services to maximize the availability of OpenStackAPIs
  • 66. David Vossel <dvossel@redhat.com> Pacemaker HA-proxy VIP Service Service Service NODE1 NODE2 NODE3 Each distributed service has a front end Virtual IP tied to a Load Balancer. How it works... in one sentence Pacemaker managing Virtual IPs + Load Balancers + Controller services to maximize the availability of OpenStackAPIs HA-proxyHA-proxy
  • 67. David Vossel <dvossel@redhat.com> Each distributed service has a front end Virtual IP tied to a Load Balancer. Each Load Balancer routes VIP traffic to its respective Active/Active service instances How it works... in one sentence Pacemaker managing Virtual IPs + Load Balancers + Controller services to maximize the availability of OpenStackAPIs Pacemaker HA-proxy VIP Service Service Service NODE1 NODE2 NODE3 HA-proxyHA-proxy
  • 68. David Vossel <dvossel@redhat.com> Pacemaker HA-proxy VIP Service Service Service NODE1 NODE2 NODE3 Each distributed service has a front end Virtual IP tied to a Load Balancer. Each Load Balancer routes VIP traffic to its respective Active/Active service instances How it works... in one sentence HA-proxy Pacemaker managing Virtual IPs + Load Balancers + Controller services to maximize the availability of OpenStackAPIs HA-proxy
  • 69. David Vossel <dvossel@redhat.com> Each distributed service has a front end Virtual IP tied to a Load Balancer. Each Load Balancer routes VIP traffic to its respective Active/Active service instances Active/Active OpenStack Controller service... like Nova, Glance, Keystone, Galera, Redis, Rabbitmq, ect... How it works... in one sentence Pacemaker managing Virtual IPs + Load Balancers + Controller services to maximize the availability of OpenStackAPIs Pacemaker HA-proxy VIP Service Service Service NODE1 NODE2 NODE3 HA-proxyHA-proxy
  • 70. David Vossel <dvossel@redhat.com> PROXY CLONE SERVICE CLONE Pacemaker HA-proxy VIP Service Service Service NODE1 NODE2 NODE3 Scaling with Resource Clones ● Pacemaker's ability to clone services makes scaling trivial. ● Want more instance? HA-proxy HA-proxy
  • 71. David Vossel <dvossel@redhat.com> PROXY CLONE SERVICE CLONE Pacemaker HA-proxy VIP Service Service Service NODE1 NODE2 NODE3 Scaling with Resource Clones NODE4 NODE5 NODE6 Service Service Service ● Increment the number of clone instances pacemaker is allowed to run for a service to scale service instances. HA-proxy HA-proxy HA-proxy HA-proxy HA-proxy
  • 72. David Vossel <dvossel@redhat.com> Pacemaker HA-proxy Galera VIP Galera Galera Galera NODE1 NODE2 NODE3 How it works, continued... ● Services interact with one another using each service's Virtual IP ● Example: Both Glance and Nova need access to Galera...Galera is accessed via the front end Virtual IP and those requests are distributed to the backend galera cluster. Glance Nova DB Request DB Request HA-proxyHA-proxy
  • 73. David Vossel <dvossel@redhat.com> Deployment Strategies HA OpenStack Controller Nodes
  • 74. David Vossel <dvossel@redhat.com> Collapsed Architecture Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service ● All controller nodes run the same services. ● VIP+load balancers distribute access to APIs across cloned nodes.
  • 75. David Vossel <dvossel@redhat.com> Collapsed Architecture Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy NOVA VIP Clients
  • 76. David Vossel <dvossel@redhat.com> Collapsed Architecture Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Glance VIP Clients
  • 77. David Vossel <dvossel@redhat.com> Collapsed Architecture Scaling Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service NODE4 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE5 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE6 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy
  • 78. David Vossel <dvossel@redhat.com> Startup Ordering Revisited. Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Bootstrap and start Start Galera Cluster across multiple nodes.
  • 79. David Vossel <dvossel@redhat.com> Startup Ordering Revisited. Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Bootstrap and start Start Galera Cluster across multiple nodes. Then Start Nova instances, which depend on an active Galera cluster.
  • 80. David Vossel <dvossel@redhat.com> Stop ordering Ordering Revisited. Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service If we're shutting down galera cluster
  • 81. David Vossel <dvossel@redhat.com> Stop ordering Ordering Revisited. Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Stop everything that depends on Galera. Like Nova...
  • 82. David Vossel <dvossel@redhat.com> Stop ordering Ordering Revisited. Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Then Shutdown Galera cluster.
  • 83. David Vossel <dvossel@redhat.com> Complex Startup Ordering Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Start Redis Clone.
  • 84. David Vossel <dvossel@redhat.com> Complex Startup Ordering Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Master Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Promote one instance of Redis clone to be Master Instance.
  • 85. David Vossel <dvossel@redhat.com> Complex Startup Ordering Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Slave Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Master Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service Then start Ceilometer cluster which depends on Redis
  • 86. David Vossel <dvossel@redhat.com> Segregated Architecture Pacemaker ● Each service runs on its own dedicated hardware. ● Scales much further ● Add capacity where capacity makes sense. ● Requires lots and lots of nodes.
  • 87. David Vossel <dvossel@redhat.com> Segregated Architecture Pacemaker ● Take a closer look.
  • 88. David Vossel <dvossel@redhat.com> Segregated Architecture Pacemaker NODE1 Galera NODE2 Galera NODE3 Galera ● Possible to have have an entire set of nodes just for Load balancing ● Dedicated cluster for galera NODE4 Proxy NODE5 Proxy NODE6 Proxy NODE7 Nova NODE8 Nova NODE9 Nova VIP VIPVIP More services that way. Glanc NOD VIP VIPVIP VIP VIPVIP VIP VIPVIP VIP VIPVIP
  • 89. David Vossel <dvossel@redhat.com> Mixed Architecture ● Mixture of collapsed and segregated. ● Break some components into separate hardware ● Most of cluster is collapsed Pacemaker NODE1 Galera NODE2 Galera NODE3 Galera NODE4 Proxy NODE5 Proxy NODE6 Proxy NODE7 NODE8 NODE9 VIP VIPVIP VIP VIPVIP VIP VIPVIP VIP VIPVIP VIP VIPVIP Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Redis Neutron N Swift Heat Neutron S Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Redis Neutron N Swift Heat Neutron S Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Redis Neutron N Swift Heat Neutron S
  • 90. David Vossel <dvossel@redhat.com> Pacemaker Advantages ● Automates bootstrap of services that previously required hand holding. ● Example: Automate Galera bootstrap 1.Find out which galera instance is most up-to-date 2.Bootstrap most current galera instance first. 3.Then sync other galera instances
  • 91. David Vossel <dvossel@redhat.com> Pacemaker Advantages. Continued... ● start/stop distributed services in a graceful ordered manner. ● Gracefully and controller node into standby for maintenance. ● Dynamically grow capacity by adding more pacemaker nodes ● Centralized view of distributed service state.
  • 93. David Vossel <dvossel@redhat.com> HA for Cattle ● Both Pets and Cattle need High Availability. ● Recognize the techniques used for each are different.
  • 94. David Vossel <dvossel@redhat.com> Pacemaker for Pets and small Herds. ● No limits in the number of resources. ● Pacemaker supports“n-node”clusters. ● Cluster are limited by the Corosync messaging layer to 16 nodes. Pacemaker
  • 95. David Vossel <dvossel@redhat.com> Pacemaker Remote for the Cattle. ● Pacemaker Remote allows clusters to scale beyond corosync membership layer limitations. ● Pacemaker Remote can scale clusters to 100s possibly 1000s of nodes. Pacemaker + Pacemaker Remote
  • 96. David Vossel <dvossel@redhat.com> The Solution: Pacemaker Remote ● Pacemaker Remote is a single daemon,pacemaker_remoted Pacemaker Remote Remote Node
  • 97. David Vossel <dvossel@redhat.com> The Solution: Pacemaker Remote Pacemaker Node 2 Node 3Node 1 Pacemaker Remote Node 5 Node 6Node 4 Node 8 Node 9Node 7 Node 11 Node 12Node 10 Node 14 Node 15Node 13 Node 16 Remote Node ● Pacemaker Remote is a single daemon, pacemaker_remoted ● This daemon is a lightweight way of integrating nodes into the cluster.
  • 98. David Vossel <dvossel@redhat.com> The Solution: Pacemaker Remote Pacemaker Node 2 Node 3Node 1 Pacemaker Remote Node 5 Node 6Node 4 Node 8 Node 9Node 7 Node 11 Node 12Node 10 Node 14 Node 15Node 13 Node 16 Remote Node ● Pacemaker Remote is a single daemon, pacemaker_remoted ● This daemon is a lightweight way of integrating nodes into the cluster. ● Cluster services spread out across pacemaker and pacemaker_remote nodes as a single cluster partition. Cluster Services
  • 99. David Vossel <dvossel@redhat.com> Pacemaker Remote use-case Pacemaker Node 2 Node 3Node 1 Pacemaker Remote Node 5 Node 6Node 4 Node 8 Node 9Node 7 Node 11 Node 12Node 10 Node 14 Node 15Node 13 Node 16 Remote Node ● Management of services on Pacemaker Remote can work just like Pacemaker ● But thrives in the cattle use case where every remote instance is identical. Cluster Services Cloned service Pacemaker Remote Remote Node Cloned service Pacemaker Remote Remote Node Cloned service
  • 100. David Vossel <dvossel@redhat.com> Pacemaker Remote use case Pacemaker Node 2 Node 3Node 1 ● Cloned services scale quite well on pacemaker remote Cluster Services Cloned services Remote Node Pacemaker Remote
  • 101. David Vossel <dvossel@redhat.com> Compute Node HA Strategy. Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service
  • 102. David Vossel <dvossel@redhat.com> Compute Node HA Strategy. Compute Service Group Remote Node Pacemaker Remote Pacemaker NODE1 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE2 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S NODE3 Keystone Ceilometer Nova Cinder Glance Horizon RabbitMQ Galera Redis Neutron N Swift Heat Neutron S HA Proxy HA Proxy HA Proxy Separate VIP per service LibvirtdD Neutron Open vSwitch Ceilometer Compute Nova Compute
  • 103. David Vossel <dvossel@redhat.com> Why HA Compute Nodes? ● Maximize the Availability of Compute Instances. ● detection of dead Cattle instances ● Automate recovery of Cattle instances
  • 104. David Vossel <dvossel@redhat.com> Why HA Compute Nodes? ● Maximize the Availability of Compute Instances. ● detection of dead Cattle instances ● Automate recovery of Cattle instances ● Pacemaker Remote also has a secret weapon.
  • 108. David Vossel <dvossel@redhat.com> How many services? Pacemaker + Pacemaker Remote
  • 109. David Vossel <dvossel@redhat.com> Pacemaker + Pacemaker Remote How many services? How many nodes?