SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
Linux HA anno 2014
Julien PivottoJulien Pivotto
LOADays, AntwerpLOADays, Antwerp
April 4th, 2014April 4th, 2014
whoamiwhoami
• sysadmin @ inuitssysadmin @ inuits
• open-source defender for 7+ yearsopen-source defender for 7+ years
• devops believerdevops believer
• @roidelapluie on twitter/github@roidelapluie on twitter/github
Julien Pivotto Linux HA
IntroductionIntroduction
Julien Pivotto Linux HA
What is HAWhat is HA
• High AvailabilityHigh Availability
• One service fail ⇒ another takes over its jobOne service fail ⇒ another takes over its job
• Transparent for the end-userTransparent for the end-user
Julien Pivotto Linux HA
Where HA will NOT helpWhere HA will NOT help
• It is not about scalabilityIt is not about scalability
• It will not fix your applicationIt will not fix your application
• It will make your application stableIt will make your application stable
• It is not a one-size-fits-all solutionIt is not a one-size-fits-all solution
• It is not about performancesIt is not about performances
• It is not backupIt is not backup
Julien Pivotto Linux HA
Why caring about HA?Why caring about HA?
• Service goes down at 5pm on Friday?Service goes down at 5pm on Friday?
• Downtime makes users unhappyDowntime makes users unhappy
• Downtime costs moneyDowntime costs money
Julien Pivotto Linux HA
What will not workWhat will not work
• Virtualization will not make your app HAVirtualization will not make your app HA
• VM mirroring is not HAVM mirroring is not HA
• Live migrations are not HALive migrations are not HA
• Containers are not HAContainers are not HA
• Cloud lolCloud lol
Julien Pivotto Linux HA
HA is about servicesHA is about services
Julien Pivotto Linux HA
Start on a good basisStart on a good basis
• AutomationAutomation
• MonitoringMonitoring
• CI / CDCI / CD
• TestingTesting
• . . . Then, start working on HA. . . Then, start working on HA
Julien Pivotto Linux HA
Eliminate the SPOFEliminate the SPOF
• Single Point of FailuresSingle Point of Failures
• Hardware failsHardware fails
• Disks always failDisks always fail
• etc. . .etc. . .
• Replicate. . .Replicate. . .
Julien Pivotto Linux HA
Split-BrainSplit-Brain
• Nodes can’t talk to each otherNodes can’t talk to each other
• They think they are aloneThey think they are alone
• They take decision and leadershipThey take decision and leadership
• Data inconsistencyData inconsistency
Julien Pivotto Linux HA
FencingFencing
• Shoot the other node in the headShoot the other node in the head
• Be sure a node is deadBe sure a node is dead
• Preserve integrity of the dataPreserve integrity of the data
• Combine with quorumsCombine with quorums
Julien Pivotto Linux HA
MonitoringMonitoring
• Monitoring if PID is running is uselessMonitoring if PID is running is useless
• Result-based monitoringResult-based monitoring
• Extract data out of itExtract data out of it
• E.g try to insert in DBE.g try to insert in DB
Julien Pivotto Linux HA
Cluster?Cluster?
• Active/active: everything is activeActive/active: everything is active
• Active/passive: nodes in standbyActive/passive: nodes in standby
• N+1: One node waiting in standbyN+1: One node waiting in standby
• N+M: Nodes waiting in standbyN+M: Nodes waiting in standby
• Can mix them etc. . .Can mix them etc. . .
Julien Pivotto Linux HA
http://clusterlabs.org/wiki (GFDL 1.2 licence)
http://clusterlabs.org/wiki (GFDL 1.2 licence)
http://clusterlabs.org/wiki (GFDL 1.2 licence)
http://clusterlabs.org/wiki (GFDL 1.2 licence)
KISS KISS KISSKISS KISS KISS
Julien Pivotto Linux HA
Fix you appFix you app
Julien Pivotto Linux HA
The StateThe State
• Stateless applicationStateless application
• Everything in DBEverything in DB
• Avoid temp filesAvoid temp files
• Disaster recoveryDisaster recovery
Julien Pivotto Linux HA
The right toolsThe right tools
• Make relevant choices for you appMake relevant choices for you app
• Look for HA in databasesLook for HA in databases
• Look for HA in queuing systemsLook for HA in queuing systems
• Look for HA in filesystems?Look for HA in filesystems?
• Master/Master vs Master/slaveMaster/Master vs Master/slave
Julien Pivotto Linux HA
The congurationThe conguration
• Same config everywhereSame config everywhere
• Use puppet, chef, . . .Use puppet, chef, . . .
• Config in one placeConfig in one place
• KISSKISS
Julien Pivotto Linux HA
PacemakerPacemaker
Julien Pivotto Linux HA
PacemakerPacemaker
• It is the brainIt is the brain
• Decides what to do, whenDecides what to do, when
• Gets information from ressourcesGets information from ressources
• Depends on messaging and cluster managerDepends on messaging and cluster manager
• Does not require shared storageDoes not require shared storage
Julien Pivotto Linux HA
DecisionsDecisions
• A node fails, now whatA node fails, now what
• A service fails, now whatA service fails, now what
• Restart? Move?Restart? Move?
• Needs to be quick and without interventionNeeds to be quick and without intervention
• Scores, policiesScores, policies
Julien Pivotto Linux HA
CIBCIB
• Cluster Information BaseCluster Information Base
• XML shared accross the clusterXML shared accross the cluster
• Updated using "pcs"Updated using "pcs"
• Contains knowledge about the clusterContains knowledge about the cluster
Julien Pivotto Linux HA
PrimitivesPrimitives
• Service, Ip address, mountpoint,. . .Service, Ip address, mountpoint,. . .
• Base bricks of a clusterBase bricks of a cluster
• Get a lot of parametersGet a lot of parameters
primitive ClusterIP ocf:heartbeat:IPaddr2
params ip="192.168.122.101" cidr_netmask="32"
op monitor interval="30s"
Julien Pivotto Linux HA
Resource AgentResource Agent
• ScriptScript
• How to startHow to start
• How to stopHow to stop
• How to change state (promote, demote)How to change state (promote, demote)
• How to monitor (real monitoring)How to monitor (real monitoring)
• An init script but way beterAn init script but way beter
Julien Pivotto Linux HA
ClonesClones
• Same resource running on multiple hostsSame resource running on multiple hosts
• Define minimum and maximum of running primitivesDefine minimum and maximum of running primitives
• Possible to run multiple on the same nodePossible to run multiple on the same node
clone WebIP ClusterIP 
meta globally-unique="true" clone-max="2"
clone-node-max="2"
Julien Pivotto Linux HA
Master Slave (ms)Master Slave (ms)
• Set of primitives with roleSet of primitives with role
• Masters and slaves (e.g mysql, ldap)Masters and slaves (e.g mysql, ldap)
• Can promote slaves to masterCan promote slaves to master
• Can demote masters to slaveCan demote masters to slave
• Multiples slaves / mastersMultiples slaves / masters
ms WebDataClone WebData 
meta master-max="2" master-node-max="1"
clone-max="2" clone-node-max="1"
Julien Pivotto Linux HA
GroupGroup
• Group of primitives of different kindGroup of primitives of different kind
• Implies colocationImplies colocation
• Starts in a fixed orderStarts in a fixed order
• Stops in the opposite orderStops in the opposite order
Julien Pivotto Linux HA
ColocationColocation
• ConstraintConstraint
• Must run on the same hostsMust run on the same hosts
• Has a scoreHas a score
• Order mattersOrder matters
• e.g vip with servicee.g vip with service
colocation website-with-ip inf: WebSite ClusterIPproperty
Julien Pivotto Linux HA
LocationLocation
• Set preferred locationSet preferred location
• Has a scoreHas a score
location prefer-apache-1 WebSite 50: apache-1
ms WebDataClone WebData 
meta master-max="2" master-node-max="1"
clone-max="2" clone-node-max="1"
Julien Pivotto Linux HA
OrderOrder
• What starts after whatWhat starts after what
• Even across nodesEven across nodes
• Has a scoreHas a score
pcs order WebFS-after-WebData inf: WebDataClone:promote 
WebFSClone:start
Julien Pivotto Linux HA
PropertiesProperties
• expected-quorums-votesexpected-quorums-votes
• stonith-enabledstonith-enabled
property $id="cib-bootstrap-options" 
dc-version="1.1.5-bdde4d02445be1f3d72e6a203ba2f" 
cluster-infrastructure="openais" 
expected-quorum-votes="2" 
stonith-enabled="true" 
no-quorum-policy="ignore"
Julien Pivotto Linux HA
MaintenanceMaintenance
• Manually move resourcesManually move resources
• Set a DO-NOT-MANAGE flagSet a DO-NOT-MANAGE flag
• Do not forget to revertDo not forget to revert
Julien Pivotto Linux HA
CMAN and CorosyncCMAN and Corosync
Julien Pivotto Linux HA
CMANCMAN
• Manages membership and quorumManages membership and quorum
• Notifies pacemaker when something changesNotifies pacemaker when something changes
• Starts and manages corosyncStarts and manages corosync
• Needs a cluster.conf that contains all the nodesNeeds a cluster.conf that contains all the nodes
• Managed via ccsManaged via ccs
• Will propagate the changesWill propagate the changes
Julien Pivotto Linux HA
CorosyncCorosync
• Messaging layerMessaging layer
• Controlled via CMANControlled via CMAN
• Next version will take over CMANNext version will take over CMAN
Julien Pivotto Linux HA
EnvironmentEnvironment
Julien Pivotto Linux HA
DistributionsDistributions
• Developed mainly by RedHat and SuSeDeveloped mainly by RedHat and SuSe
• Used with Openstack tooUsed with Openstack too
• Getting into a unique stackGetting into a unique stack
• Available in * distrosAvailable in * distros
Julien Pivotto Linux HA
crmsh vs pcscrmsh vs pcs
• crmsh was more usedcrmsh was more used
• Disappeared in CentOS 6.4Disappeared in CentOS 6.4
• Getting used to pcsGetting used to pcs
• One goal: modify the CIBOne goal: modify the CIB
• pcs is young/not widely usedpcs is young/not widely used
Julien Pivotto Linux HA
A PCS primerA PCS primer
Julien Pivotto Linux HA
Create a resourceCreate a resource
pcs resource create ClusterIP ocf:heartbeat:IPaddr2 
ip=192.168.0.120 cidr_netmask=32 op monitor 
interval=30s
Julien Pivotto Linux HA
Create constraintsCreate constraints
pcs constraint colocation add WebFS WebDataClone
INFINITY with-rsc-role=Master
pcs constraint order promote WebDataClone then 
start WebFS
Julien Pivotto Linux HA
Standby a hostStandby a host
pcs cluster standby node1
Julien Pivotto Linux HA
Check the status of the clusterCheck the status of the cluster
pcs status
Last updated: Fri Sep 14 12:41:12 2012
Last change: Fri Sep 14 12:41:08 2012 via crm_attribute on pcmk-1
Stack: corosync
Current DC: pcmk-1 (1) - partition with quorum
Version: 1.1.8-1.el7-60a19ed12fdb4d5c6a6b6767f52e5391e447fec0
2 Nodes configured, unknown expected votes
5 Resources configured.
Node pcmk-1 (1): standby
Online: [ pcmk-2 ]
Full list of resources:
ClusterIP (ocf::heartbeat:IPaddr2): Started pcmk-2
WebSite (ocf::heartbeat:apache): Started pcmk-2
Master/Slave Set: WebDataClone [WebData]
Masters: [ pcmk-2 ]
Stopped: [ WebData:1 ]
WebFS (ocf::heartbeat:Filesystem): Started pcmk-2
Julien Pivotto Linux HA
Percona Replication ManagerPercona Replication Manager
Julien Pivotto Linux HA
Percona Replication ManagerPercona Replication Manager
• MySQL replication with pacemakerMySQL replication with pacemaker
• Complete documentationComplete documentation
• Ressource agentsRessource agents
• Supports multi-slave setupsSupports multi-slave setups
• Good documentationGood documentation
Julien Pivotto Linux HA
Mysql Ressource AgentMysql Ressource Agent
• Keeps track of a score for each slaveKeeps track of a score for each slave
• In case of failure, will switch to the "best scored"In case of failure, will switch to the "best scored"
• Can be reused in your clusterCan be reused in your cluster
• https://github.com/percona/percona-pacemaker-agentshttps://github.com/percona/percona-pacemaker-agents
Julien Pivotto Linux HA
PuppetPuppet
Julien Pivotto Linux HA
puppetlabs-corosyncpuppetlabs-corosync
• "Reference" module"Reference" module
• Creates resources, constraints. . .Creates resources, constraints. . .
• crmsh providercrmsh provider
• https://github.com/clusterlabs/puppetlabs-corosynchttps://github.com/clusterlabs/puppetlabs-corosync
• https://github.com/roidelapluie/puppetlabs-corosync (pcs)https://github.com/roidelapluie/puppetlabs-corosync (pcs)
Julien Pivotto Linux HA
Old puppet codeOld puppet code
exec { ’loadcrmconfig’:
refreshonly => true,
command => ’/bin/sleep 5; /usr/sbin/crm
configure load replace
/etc/mediasalsa/cib.cfg >>/tmp/empty 2>&1’,
subscribe => File[’/etc/project/cib.cfg’],
}
Julien Pivotto Linux HA
New puppet codeNew puppet code
include cman
include pacemaker
cman_cluster {
’mycluster’:
ensure => ’present’,
logging => ’to_logfile="off"’,
require => Class[’cman’],
}
cman_clusternode{
$clusternodes:
ensure => ’present’,
require => Cman_cluster[’mycluster’];
}
Julien Pivotto Linux HA
New puppet codeNew puppet code
class {
’cman::service’:
ensure => ’running’,
enable => true,
require => Cman_clusternode[$clusternodes],
}
class {
’pacemaker::service’:
ensure => ’running’,
enable => true,
require => Class[’cman::service’],
}
Julien Pivotto Linux HA
New puppet codeNew puppet code
Class[’cman::service’, ’pacemaker::service’]->
Cs_property<||>->
Cs_primitive<||>
cs_property {
’stonith-enabled’:
ensure => present,
value => ’false’,
}
cs_property {
’no-quorum-policy’:
ensure => present,
value => ’ignore’,
}
Julien Pivotto Linux HA
New puppet codeNew puppet code
cs_primitive { "mysql-${name}":
provider => ’pcs’,
primitive_class => ’ocf’,
primitive_type => ’mysql’,
provided_by => ’inuits’,
parameters => {
’test_user’ => $test_user,
’test_passwd’ => $test_passwd,
’test_table’ => $test_table,
},
operations => {
’monitor’ => {
’interval’ => ’10s’,
},
},
require => Cs_property[’stonith-enabled’],
}
Julien Pivotto Linux HA
ConclusionsConclusions
Julien Pivotto Linux HA
Be cleverBe clever
• KISSKISS
• AutomateAutomate
• MonitorMonitor
• Be realisticBe realistic
Julien Pivotto Linux HA
Do not promise the impossibleDo not promise the impossible
• WONTFIX your appWONTFIX your app
• Working together (devops)Working together (devops)
• Not about scaleNot about scale
• Not about stabilityNot about stability
• Do not talk in ninesDo not talk in nines
Julien Pivotto Linux HA
Linux HALinux HA
• ReliableReliable
• Pacemaker, Corosync, CMANPacemaker, Corosync, CMAN
• Pcs, crmsh, ccsPcs, crmsh, ccs
• A lot of readingA lot of reading
• A lot of experience to buildA lot of experience to build
Julien Pivotto Linux HA
RTFMRTFM
• http://clusterlabs.orghttp://clusterlabs.org
• Clusters From ScratchClusters From Scratch
• Pacemaker explainedPacemaker explained
• http://blog.clusterlabs.orghttp://blog.clusterlabs.org
• Old http://linux-ha.orgOld http://linux-ha.org
Julien Pivotto Linux HA
Thank youThank you
Any question?Any question?
Julien Pivotto Linux HA
ContactContact
Julien PivottoJulien Pivotto
julien@inuits.eujulien@inuits.eu
@roidelapluie@roidelapluie
INUITS bvbaINUITS bvba
BelgiumBelgium
+32 473 441 636+32 473 441 636
https://inuits.euhttps://inuits.eu
Julien Pivotto Linux HA

Weitere ähnliche Inhalte

Was ist angesagt?

7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemdJulien Pivotto
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modulesKris Buytaert
 
The devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleThe devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleJulien Pivotto
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
Package Management and Chef - ChefConf 2015
Package Management and Chef - ChefConf 2015Package Management and Chef - ChefConf 2015
Package Management and Chef - ChefConf 2015Chef
 
Puppet and Software Delivery
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software DeliveryJulien Pivotto
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsKris Buytaert
 
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...NETWAYS
 
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERNeotys
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week Indiaexortech
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with PuppetKris Buytaert
 
'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps Belfast'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps BelfastJohn Fitzpatrick
 
A call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityA call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityJulien Pivotto
 
On the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeOn the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeKris Buytaert
 
Scaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went RightScaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went RightRoss Snyder
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Kris Buytaert
 

Was ist angesagt? (20)

RPM experiments
RPM experimentsRPM experiments
RPM experiments
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Getting the maximum out of systemd
Getting the maximum out of systemdGetting the maximum out of systemd
Getting the maximum out of systemd
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
The devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code StyleThe devops approach to monitoring, Open Source and Infrastructure as Code Style
The devops approach to monitoring, Open Source and Infrastructure as Code Style
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Package Management and Chef - ChefConf 2015
Package Management and Chef - ChefConf 2015Package Management and Chef - ChefConf 2015
Package Management and Chef - ChefConf 2015
 
Puppet and Software Delivery
Puppet and Software DeliveryPuppet and Software Delivery
Puppet and Software Delivery
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devops
 
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
 
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
Puppet Camp LA 2015: Package Managers and Puppet (Beginner)
 
Raise the bar! Reloaded
Raise the bar! ReloadedRaise the bar! Reloaded
Raise the bar! Reloaded
 
PAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLERPAC 2019 virtual Christoph NEUMÜLLER
PAC 2019 virtual Christoph NEUMÜLLER
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
Automating MySQL operations with Puppet
Automating MySQL operations with PuppetAutomating MySQL operations with Puppet
Automating MySQL operations with Puppet
 
'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps Belfast'Intro to Infrastructure as Code' - DevOps Belfast
'Intro to Infrastructure as Code' - DevOps Belfast
 
A call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the communityA call to give back puppetlabs-corosync to the community
A call to give back puppetlabs-corosync to the community
 
On the Importance of Infrastructure as Code
On the Importance of Infrastructure as CodeOn the Importance of Infrastructure as Code
On the Importance of Infrastructure as Code
 
Scaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went RightScaling Etsy: What Went Wrong, What Went Right
Scaling Etsy: What Went Wrong, What Went Right
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
 

Ähnlich wie Linux HA anno 2014: Understanding High Availability

Building and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a ServiceBuilding and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a ServiceJulien Pivotto
 
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertNETWAYS
 
Another 7 tools for your #devops stack
Another 7 tools for your #devops stackAnother 7 tools for your #devops stack
Another 7 tools for your #devops stackKris Buytaert
 
Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)Kris Buytaert
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremKris Buytaert
 
Pentest Apocalypse
Pentest ApocalypsePentest Apocalypse
Pentest ApocalypseBeau Bullock
 
When traditional configuration management is to slow for your needs
When traditional configuration management is to slow for your needsWhen traditional configuration management is to slow for your needs
When traditional configuration management is to slow for your needsKris Buytaert
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as CodeKris Buytaert
 
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl OpenNebula Project
 
Monitoring of OpenNebula installations
Monitoring of OpenNebula installationsMonitoring of OpenNebula installations
Monitoring of OpenNebula installationsNETWAYS
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your InfrastructureKris Buytaert
 
DevOps, beyond agile
DevOps, beyond agileDevOps, beyond agile
DevOps, beyond agileJulien Pivotto
 
Moby is killing your devops efforts
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops effortsKris Buytaert
 
Icinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga
 
Pentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionPentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionBeau Bullock
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionKris Buytaert
 
Run stuff, Deploy Stuff
Run stuff, Deploy StuffRun stuff, Deploy Stuff
Run stuff, Deploy StuffKris Buytaert
 
Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014Tomas Doran
 

Ähnlich wie Linux HA anno 2014: Understanding High Availability (20)

Building and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a ServiceBuilding and Deploying MediaSalsa, a drupal-based DAM as a Service
Building and Deploying MediaSalsa, a drupal-based DAM as a Service
 
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris BuytaertOSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
OSDC 2016 - Another 7 Tools for your #devops Stack by Kris Buytaert
 
Another 7 tools for your #devops stack
Another 7 tools for your #devops stackAnother 7 tools for your #devops stack
Another 7 tools for your #devops stack
 
Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)Closing the gap between Distros(devs) and their Users(ops)
Closing the gap between Distros(devs) and their Users(ops)
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
Pentest Apocalypse
Pentest ApocalypsePentest Apocalypse
Pentest Apocalypse
 
Pinto+Stratopan+Love
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+Love
 
When traditional configuration management is to slow for your needs
When traditional configuration management is to slow for your needsWhen traditional configuration management is to slow for your needs
When traditional configuration management is to slow for your needs
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as Code
 
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
 
Monitoring of OpenNebula installations
Monitoring of OpenNebula installationsMonitoring of OpenNebula installations
Monitoring of OpenNebula installations
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
 
DevOps, beyond agile
DevOps, beyond agileDevOps, beyond agile
DevOps, beyond agile
 
Moby is killing your devops efforts
Moby is killing your devops effortsMoby is killing your devops efforts
Moby is killing your devops efforts
 
Icinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as CodeIcinga Camp Amsterdam - Infrastructure as Code
Icinga Camp Amsterdam - Infrastructure as Code
 
Pentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 EditionPentest Apocalypse - SANSFIRE 2016 Edition
Pentest Apocalypse - SANSFIRE 2016 Edition
 
Run stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 EditionRun stuff, Deploy Stuff, Jax London 2017 Edition
Run stuff, Deploy Stuff, Jax London 2017 Edition
 
Run stuff, Deploy Stuff
Run stuff, Deploy StuffRun stuff, Deploy Stuff
Run stuff, Deploy Stuff
 
Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014Sensu and Sensibility - Puppetconf 2014
Sensu and Sensibility - Puppetconf 2014
 

Mehr von Julien Pivotto

The O11y Toolkit
The O11y ToolkitThe O11y Toolkit
The O11y ToolkitJulien Pivotto
 
What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemJulien Pivotto
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingJulien Pivotto
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?Julien Pivotto
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana LokiJulien Pivotto
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmtJulien Pivotto
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusJulien Pivotto
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusJulien Pivotto
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service DiscoveryJulien Pivotto
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionJulien Pivotto
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in GrafanaJulien Pivotto
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress ControllerJulien Pivotto
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerJulien Pivotto
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with KeycloakJulien Pivotto
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaborationJulien Pivotto
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as CodeJulien Pivotto
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to AnsibleJulien Pivotto
 

Mehr von Julien Pivotto (20)

The O11y Toolkit
The O11y ToolkitThe O11y Toolkit
The O11y Toolkit
 
What's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its EcosystemWhat's New in Prometheus and Its Ecosystem
What's New in Prometheus and Its Ecosystem
 
Prometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is comingPrometheus: What is is, what is new, what is coming
Prometheus: What is is, what is new, what is coming
 
What's new in Prometheus?
What's new in Prometheus?What's new in Prometheus?
What's new in Prometheus?
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
Why you should revisit mgmt
Why you should revisit mgmtWhy you should revisit mgmt
Why you should revisit mgmt
 
Observing the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From PrometheusObserving the HashiCorp Ecosystem From Prometheus
Observing the HashiCorp Ecosystem From Prometheus
 
Monitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with PrometheusMonitoring in a fast-changing world with Prometheus
Monitoring in a fast-changing world with Prometheus
 
5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery5 tips for Prometheus Service Discovery
5 tips for Prometheus Service Discovery
 
Prometheus and TLS - an Introduction
Prometheus and TLS - an IntroductionPrometheus and TLS - an Introduction
Prometheus and TLS - an Introduction
 
Powerful graphs in Grafana
Powerful graphs in GrafanaPowerful graphs in Grafana
Powerful graphs in Grafana
 
YAML Magic
YAML MagicYAML Magic
YAML Magic
 
HAProxy as Egress Controller
HAProxy as Egress ControllerHAProxy as Egress Controller
HAProxy as Egress Controller
 
Improved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and AlertmanagerImproved alerting with Prometheus and Alertmanager
Improved alerting with Prometheus and Alertmanager
 
SIngle Sign On with Keycloak
SIngle Sign On with KeycloakSIngle Sign On with Keycloak
SIngle Sign On with Keycloak
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
Incident Resolution as Code
Incident Resolution as CodeIncident Resolution as Code
Incident Resolution as Code
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
An introduction to Ansible
An introduction to AnsibleAn introduction to Ansible
An introduction to Ansible
 

KĂźrzlich hochgeladen

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

KĂźrzlich hochgeladen (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Linux HA anno 2014: Understanding High Availability

  • 1. Linux HA anno 2014 Julien PivottoJulien Pivotto LOADays, AntwerpLOADays, Antwerp April 4th, 2014April 4th, 2014
  • 2. whoamiwhoami • sysadmin @ inuitssysadmin @ inuits • open-source defender for 7+ yearsopen-source defender for 7+ years • devops believerdevops believer • @roidelapluie on twitter/github@roidelapluie on twitter/github Julien Pivotto Linux HA
  • 4. What is HAWhat is HA • High AvailabilityHigh Availability • One service fail ⇒ another takes over its jobOne service fail ⇒ another takes over its job • Transparent for the end-userTransparent for the end-user Julien Pivotto Linux HA
  • 5. Where HA will NOT helpWhere HA will NOT help • It is not about scalabilityIt is not about scalability • It will not x your applicationIt will not x your application • It will make your application stableIt will make your application stable • It is not a one-size-ts-all solutionIt is not a one-size-ts-all solution • It is not about performancesIt is not about performances • It is not backupIt is not backup Julien Pivotto Linux HA
  • 6. Why caring about HA?Why caring about HA? • Service goes down at 5pm on Friday?Service goes down at 5pm on Friday? • Downtime makes users unhappyDowntime makes users unhappy • Downtime costs moneyDowntime costs money Julien Pivotto Linux HA
  • 7. What will not workWhat will not work • Virtualization will not make your app HAVirtualization will not make your app HA • VM mirroring is not HAVM mirroring is not HA • Live migrations are not HALive migrations are not HA • Containers are not HAContainers are not HA • Cloud lolCloud lol Julien Pivotto Linux HA
  • 8. HA is about servicesHA is about services Julien Pivotto Linux HA
  • 9. Start on a good basisStart on a good basis • AutomationAutomation • MonitoringMonitoring • CI / CDCI / CD • TestingTesting • . . . Then, start working on HA. . . Then, start working on HA Julien Pivotto Linux HA
  • 10. Eliminate the SPOFEliminate the SPOF • Single Point of FailuresSingle Point of Failures • Hardware failsHardware fails • Disks always failDisks always fail • etc. . .etc. . . • Replicate. . .Replicate. . . Julien Pivotto Linux HA
  • 11. Split-BrainSplit-Brain • Nodes can’t talk to each otherNodes can’t talk to each other • They think they are aloneThey think they are alone • They take decision and leadershipThey take decision and leadership • Data inconsistencyData inconsistency Julien Pivotto Linux HA
  • 12. FencingFencing • Shoot the other node in the headShoot the other node in the head • Be sure a node is deadBe sure a node is dead • Preserve integrity of the dataPreserve integrity of the data • Combine with quorumsCombine with quorums Julien Pivotto Linux HA
  • 13. MonitoringMonitoring • Monitoring if PID is running is uselessMonitoring if PID is running is useless • Result-based monitoringResult-based monitoring • Extract data out of itExtract data out of it • E.g try to insert in DBE.g try to insert in DB Julien Pivotto Linux HA
  • 14. Cluster?Cluster? • Active/active: everything is activeActive/active: everything is active • Active/passive: nodes in standbyActive/passive: nodes in standby • N+1: One node waiting in standbyN+1: One node waiting in standby • N+M: Nodes waiting in standbyN+M: Nodes waiting in standby • Can mix them etc. . .Can mix them etc. . . Julien Pivotto Linux HA
  • 19. KISS KISS KISSKISS KISS KISS Julien Pivotto Linux HA
  • 20. Fix you appFix you app Julien Pivotto Linux HA
  • 21. The StateThe State • Stateless applicationStateless application • Everything in DBEverything in DB • Avoid temp lesAvoid temp les • Disaster recoveryDisaster recovery Julien Pivotto Linux HA
  • 22. The right toolsThe right tools • Make relevant choices for you appMake relevant choices for you app • Look for HA in databasesLook for HA in databases • Look for HA in queuing systemsLook for HA in queuing systems • Look for HA in lesystems?Look for HA in lesystems? • Master/Master vs Master/slaveMaster/Master vs Master/slave Julien Pivotto Linux HA
  • 23. The congurationThe conguration • Same cong everywhereSame cong everywhere • Use puppet, chef, . . .Use puppet, chef, . . . • Cong in one placeCong in one place • KISSKISS Julien Pivotto Linux HA
  • 25. PacemakerPacemaker • It is the brainIt is the brain • Decides what to do, whenDecides what to do, when • Gets information from ressourcesGets information from ressources • Depends on messaging and cluster managerDepends on messaging and cluster manager • Does not require shared storageDoes not require shared storage Julien Pivotto Linux HA
  • 26. DecisionsDecisions • A node fails, now whatA node fails, now what • A service fails, now whatA service fails, now what • Restart? Move?Restart? Move? • Needs to be quick and without interventionNeeds to be quick and without intervention • Scores, policiesScores, policies Julien Pivotto Linux HA
  • 27. CIBCIB • Cluster Information BaseCluster Information Base • XML shared accross the clusterXML shared accross the cluster • Updated using "pcs"Updated using "pcs" • Contains knowledge about the clusterContains knowledge about the cluster Julien Pivotto Linux HA
  • 28. PrimitivesPrimitives • Service, Ip address, mountpoint,. . .Service, Ip address, mountpoint,. . . • Base bricks of a clusterBase bricks of a cluster • Get a lot of parametersGet a lot of parameters primitive ClusterIP ocf:heartbeat:IPaddr2 params ip="192.168.122.101" cidr_netmask="32" op monitor interval="30s" Julien Pivotto Linux HA
  • 29. Resource AgentResource Agent • ScriptScript • How to startHow to start • How to stopHow to stop • How to change state (promote, demote)How to change state (promote, demote) • How to monitor (real monitoring)How to monitor (real monitoring) • An init script but way beterAn init script but way beter Julien Pivotto Linux HA
  • 30. ClonesClones • Same resource running on multiple hostsSame resource running on multiple hosts • Dene minimum and maximum of running primitivesDene minimum and maximum of running primitives • Possible to run multiple on the same nodePossible to run multiple on the same node clone WebIP ClusterIP meta globally-unique="true" clone-max="2" clone-node-max="2" Julien Pivotto Linux HA
  • 31. Master Slave (ms)Master Slave (ms) • Set of primitives with roleSet of primitives with role • Masters and slaves (e.g mysql, ldap)Masters and slaves (e.g mysql, ldap) • Can promote slaves to masterCan promote slaves to master • Can demote masters to slaveCan demote masters to slave • Multiples slaves / mastersMultiples slaves / masters ms WebDataClone WebData meta master-max="2" master-node-max="1" clone-max="2" clone-node-max="1" Julien Pivotto Linux HA
  • 32. GroupGroup • Group of primitives of different kindGroup of primitives of different kind • Implies colocationImplies colocation • Starts in a xed orderStarts in a xed order • Stops in the opposite orderStops in the opposite order Julien Pivotto Linux HA
  • 33. ColocationColocation • ConstraintConstraint • Must run on the same hostsMust run on the same hosts • Has a scoreHas a score • Order mattersOrder matters • e.g vip with servicee.g vip with service colocation website-with-ip inf: WebSite ClusterIPproperty Julien Pivotto Linux HA
  • 34. LocationLocation • Set preferred locationSet preferred location • Has a scoreHas a score location prefer-apache-1 WebSite 50: apache-1 ms WebDataClone WebData meta master-max="2" master-node-max="1" clone-max="2" clone-node-max="1" Julien Pivotto Linux HA
  • 35. OrderOrder • What starts after whatWhat starts after what • Even across nodesEven across nodes • Has a scoreHas a score pcs order WebFS-after-WebData inf: WebDataClone:promote WebFSClone:start Julien Pivotto Linux HA
  • 36. PropertiesProperties • expected-quorums-votesexpected-quorums-votes • stonith-enabledstonith-enabled property $id="cib-bootstrap-options" dc-version="1.1.5-bdde4d02445be1f3d72e6a203ba2f" cluster-infrastructure="openais" expected-quorum-votes="2" stonith-enabled="true" no-quorum-policy="ignore" Julien Pivotto Linux HA
  • 37. MaintenanceMaintenance • Manually move resourcesManually move resources • Set a DO-NOT-MANAGE flagSet a DO-NOT-MANAGE flag • Do not forget to revertDo not forget to revert Julien Pivotto Linux HA
  • 38. CMAN and CorosyncCMAN and Corosync Julien Pivotto Linux HA
  • 39. CMANCMAN • Manages membership and quorumManages membership and quorum • Noties pacemaker when something changesNoties pacemaker when something changes • Starts and manages corosyncStarts and manages corosync • Needs a cluster.conf that contains all the nodesNeeds a cluster.conf that contains all the nodes • Managed via ccsManaged via ccs • Will propagate the changesWill propagate the changes Julien Pivotto Linux HA
  • 40. CorosyncCorosync • Messaging layerMessaging layer • Controlled via CMANControlled via CMAN • Next version will take over CMANNext version will take over CMAN Julien Pivotto Linux HA
  • 42. DistributionsDistributions • Developed mainly by RedHat and SuSeDeveloped mainly by RedHat and SuSe • Used with Openstack tooUsed with Openstack too • Getting into a unique stackGetting into a unique stack • Available in * distrosAvailable in * distros Julien Pivotto Linux HA
  • 43. crmsh vs pcscrmsh vs pcs • crmsh was more usedcrmsh was more used • Disappeared in CentOS 6.4Disappeared in CentOS 6.4 • Getting used to pcsGetting used to pcs • One goal: modify the CIBOne goal: modify the CIB • pcs is young/not widely usedpcs is young/not widely used Julien Pivotto Linux HA
  • 44. A PCS primerA PCS primer Julien Pivotto Linux HA
  • 45. Create a resourceCreate a resource pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=32 op monitor interval=30s Julien Pivotto Linux HA
  • 46. Create constraintsCreate constraints pcs constraint colocation add WebFS WebDataClone INFINITY with-rsc-role=Master pcs constraint order promote WebDataClone then start WebFS Julien Pivotto Linux HA
  • 47. Standby a hostStandby a host pcs cluster standby node1 Julien Pivotto Linux HA
  • 48. Check the status of the clusterCheck the status of the cluster pcs status Last updated: Fri Sep 14 12:41:12 2012 Last change: Fri Sep 14 12:41:08 2012 via crm_attribute on pcmk-1 Stack: corosync Current DC: pcmk-1 (1) - partition with quorum Version: 1.1.8-1.el7-60a19ed12fdb4d5c6a6b6767f52e5391e447fec0 2 Nodes configured, unknown expected votes 5 Resources configured. Node pcmk-1 (1): standby Online: [ pcmk-2 ] Full list of resources: ClusterIP (ocf::heartbeat:IPaddr2): Started pcmk-2 WebSite (ocf::heartbeat:apache): Started pcmk-2 Master/Slave Set: WebDataClone [WebData] Masters: [ pcmk-2 ] Stopped: [ WebData:1 ] WebFS (ocf::heartbeat:Filesystem): Started pcmk-2 Julien Pivotto Linux HA
  • 49. Percona Replication ManagerPercona Replication Manager Julien Pivotto Linux HA
  • 50. Percona Replication ManagerPercona Replication Manager • MySQL replication with pacemakerMySQL replication with pacemaker • Complete documentationComplete documentation • Ressource agentsRessource agents • Supports multi-slave setupsSupports multi-slave setups • Good documentationGood documentation Julien Pivotto Linux HA
  • 51. Mysql Ressource AgentMysql Ressource Agent • Keeps track of a score for each slaveKeeps track of a score for each slave • In case of failure, will switch to the "best scored"In case of failure, will switch to the "best scored" • Can be reused in your clusterCan be reused in your cluster • https://github.com/percona/percona-pacemaker-agentshttps://github.com/percona/percona-pacemaker-agents Julien Pivotto Linux HA
  • 53. puppetlabs-corosyncpuppetlabs-corosync • "Reference" module"Reference" module • Creates resources, constraints. . .Creates resources, constraints. . . • crmsh providercrmsh provider • https://github.com/clusterlabs/puppetlabs-corosynchttps://github.com/clusterlabs/puppetlabs-corosync • https://github.com/roidelapluie/puppetlabs-corosync (pcs)https://github.com/roidelapluie/puppetlabs-corosync (pcs) Julien Pivotto Linux HA
  • 54. Old puppet codeOld puppet code exec { ’loadcrmconfig’: refreshonly => true, command => ’/bin/sleep 5; /usr/sbin/crm configure load replace /etc/mediasalsa/cib.cfg >>/tmp/empty 2>&1’, subscribe => File[’/etc/project/cib.cfg’], } Julien Pivotto Linux HA
  • 55. New puppet codeNew puppet code include cman include pacemaker cman_cluster { ’mycluster’: ensure => ’present’, logging => ’to_logfile="off"’, require => Class[’cman’], } cman_clusternode{ $clusternodes: ensure => ’present’, require => Cman_cluster[’mycluster’]; } Julien Pivotto Linux HA
  • 56. New puppet codeNew puppet code class { ’cman::service’: ensure => ’running’, enable => true, require => Cman_clusternode[$clusternodes], } class { ’pacemaker::service’: ensure => ’running’, enable => true, require => Class[’cman::service’], } Julien Pivotto Linux HA
  • 57. New puppet codeNew puppet code Class[’cman::service’, ’pacemaker::service’]-> Cs_property<||>-> Cs_primitive<||> cs_property { ’stonith-enabled’: ensure => present, value => ’false’, } cs_property { ’no-quorum-policy’: ensure => present, value => ’ignore’, } Julien Pivotto Linux HA
  • 58. New puppet codeNew puppet code cs_primitive { "mysql-${name}": provider => ’pcs’, primitive_class => ’ocf’, primitive_type => ’mysql’, provided_by => ’inuits’, parameters => { ’test_user’ => $test_user, ’test_passwd’ => $test_passwd, ’test_table’ => $test_table, }, operations => { ’monitor’ => { ’interval’ => ’10s’, }, }, require => Cs_property[’stonith-enabled’], } Julien Pivotto Linux HA
  • 60. Be cleverBe clever • KISSKISS • AutomateAutomate • MonitorMonitor • Be realisticBe realistic Julien Pivotto Linux HA
  • 61. Do not promise the impossibleDo not promise the impossible • WONTFIX your appWONTFIX your app • Working together (devops)Working together (devops) • Not about scaleNot about scale • Not about stabilityNot about stability • Do not talk in ninesDo not talk in nines Julien Pivotto Linux HA
  • 62. Linux HALinux HA • ReliableReliable • Pacemaker, Corosync, CMANPacemaker, Corosync, CMAN • Pcs, crmsh, ccsPcs, crmsh, ccs • A lot of readingA lot of reading • A lot of experience to buildA lot of experience to build Julien Pivotto Linux HA
  • 63. RTFMRTFM • http://clusterlabs.orghttp://clusterlabs.org • Clusters From ScratchClusters From Scratch • Pacemaker explainedPacemaker explained • http://blog.clusterlabs.orghttp://blog.clusterlabs.org • Old http://linux-ha.orgOld http://linux-ha.org Julien Pivotto Linux HA
  • 64. Thank youThank you Any question?Any question? Julien Pivotto Linux HA
  • 65. ContactContact Julien PivottoJulien Pivotto julien@inuits.eujulien@inuits.eu @roidelapluie@roidelapluie INUITS bvbaINUITS bvba BelgiumBelgium +32 473 441 636+32 473 441 636 https://inuits.euhttps://inuits.eu Julien Pivotto Linux HA