High Availability Clustering with Pacemaker and DRBD Dan Fr încu
<ul><li>Dan Frîncu@previous experience </li></ul><ul><li>Have been working with clustering technologies for 3 years </li><...
<ul><li>Dan Frîncu @1&1 Internet Development </li></ul><ul><li>Co-developer of the LinuxDesktop project </li></ul><ul><li>...
<ul><li>Clustering - Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
<ul><li>Generic types of clusters </li></ul><ul><ul><li>HA – High Availability (a.k.a. failover clusters)  </li></ul></ul>...
<ul><li>Why do I need a cluster? </li></ul><ul><ul><li>“ There's no Upside to Downtime” (SAForum.org) </li></ul></ul><ul><...
<ul><li>HA Clusters – How low can you go? </li></ul><ul><ul><li>Minimum number of nodes for a HA cluster is 2 </li></ul></...
<ul><li>HA Clusters – What can 2 nodes do? </li></ul><ul><ul><li>The most common size for HA clusters is 2 nodes </li></ul...
<ul><li>HA Clusters – Beyond 2 nodes? </li></ul><ul><ul><li>N+1 – N nodes with 1 backup node, applications run on any of t...
<ul><li>Clustering - Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
<ul><li>Once upon a time, there was Heartbeat </li></ul><ul><li>Main software that came out of the Linux-HA project </li><...
<ul><li>Heartbeat v2 </li></ul><ul><ul><li>Added support for n-node clusters </li></ul></ul><ul><ul><li>Resource monitorin...
<ul><li>Heartbeat v2.1.4 – A fork split in the road </li></ul><ul><ul><li>Cluster Resource Manager split off into independ...
<ul><li>Heartbeat v3 – under new leadership </li></ul><ul><ul><li>Starting with January 2010, Heartbeat code base developm...
<ul><li>Heartbeat v3 – A glance into the future </li></ul><ul><ul><li>Why continue to use Heartbeat? </li></ul></ul><ul><u...
<ul><li>OpenAIS/Corosync – The story begins </li></ul><ul><ul><li>Service Availability Forum (HP, Oracle, Erricson, a.o.) ...
<ul><li>Corosync – The basics </li></ul><ul><ul><li>It's a cluster messaging and membership layer providing reliable commu...
<ul><li>Corosync – The basics </li></ul><ul><ul><li>Used by RedHat as the only cluster stack for Pacemaker starting with R...
<ul><li>Pacemaker – The road ahead </li></ul><ul><ul><li>It is a Cluster Resource Manager </li></ul></ul><ul><ul><li>Detec...
<ul><li>Pacemaker – The road ahead </li></ul><ul><ul><li>Tool for making offline configuration changes </li></ul></ul><ul>...
<ul><li>Pacemaker – Future developments </li></ul><ul><ul><li>Given the possible limitations to the number of nodes/resour...
<ul><li>Pacemaker – Future developments </li></ul><ul><ul><li>Integrates with several technologies </li></ul></ul><ul><ul>...
<ul><li>Pacemaker – Future developments </li></ul><ul><ul><li>Strech clusters  </li></ul></ul><ul><ul><ul><li>(multi-site ...
<ul><li>DRBD – Shared storage made easy </li></ul><ul><ul><li>Spans 2 cluster nodes (Master/Slave or Master/Master) </li><...
<ul><li>DRBD – Shared storage made easy </li></ul><ul><ul><ul><li>Multi volume feature allows usage of several minor devic...
<ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
Cluster components Tools of the trade
<ul><li>Pacemaker's internal components </li></ul><ul><ul><li>CRMd – Cluster Resource Manager daemon (a message broker bet...
Cluster components Tools of the trade
<ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
<ul><li>Pacemaker can support practically any redundancy configuration including </li></ul><ul><ul><li>Active/Active </li>...
Clustering scenarios Fitting the needs
Clustering scenarios Fitting the needs
Clustering scenarios Fitting the needs
Clustering scenarios Fitting the needs
Clustering scenarios Fitting the needs
<ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
<ul><li>Definition: a Resource Agent is a standardized interface for a cluster resource </li></ul><ul><li>Pacemaker suppor...
<ul><li>LSB Resource Agents </li></ul><ul><ul><li>Are the scripts found in /etc/init.d/ </li></ul></ul><ul><ul><li>Require...
<ul><li>OCF Resource Agents </li></ul><ul><ul><li>Are the scripts found in /usr/lib/ocf/resource.d/ provider / </li></ul><...
<ul><li>Supported operations of Resource Agents </li></ul><ul><ul><li>start: enable or start the given resource </li></ul>...
<ul><li>Additional operations provided by OCF Resource Agents </li></ul><ul><ul><li>promote: promote the local instance of...
<ul><li>Resource scores </li></ul><ul><ul><li>Every resource has a score, even if not explicitly defined </li></ul></ul><u...
<ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
<ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future ende...
Q&A Resource agents Controlling cluster services
<ul><li>Useful resources and links </li></ul><ul><ul><li>http://fghaas.wordpress.com/2009/11/16/linbit-announces-stewardsh...
Upcoming SlideShare
Loading in...5
×

Pacemaker+DRBD

4,762

Published on

Published in: Technology

Pacemaker+DRBD

  1. 1. High Availability Clustering with Pacemaker and DRBD Dan Fr încu
  2. 2. <ul><li>Dan Frîncu@previous experience </li></ul><ul><li>Have been working with clustering technologies for 3 years </li></ul><ul><li>The first 2 years were spent </li></ul><ul><ul><li>Migrating cluster stack to Pacemaker, OpenAIS/Corosync, DRBD </li></ul></ul><ul><ul><li>Giving trainings to Product Managers, Sales, Delivery Engineers, Support teams </li></ul></ul><ul><ul><li>Integrating the company's software products with this cluster stack and with other cluster technologies </li></ul></ul><ul><ul><li>Performance testing, hardware benchmarks, designing cluster solutions for company's clients (RFI, RFP), writing documentation, packaging, deploying solutions remotely </li></ul></ul>
  3. 3. <ul><li>Dan Frîncu @1&1 Internet Development </li></ul><ul><li>Co-developer of the LinuxDesktop project </li></ul><ul><li>Responsible for IT Operations on the LinuxDesktop project </li></ul><ul><li>The backend for LinuxDesktop is a cluster running on Pacemaker, Corosync & DRBD </li></ul><ul><li><spam> LinuxDesktop is an custom built GNU/Linux operating system developed for 1&1 employees </spam> </li></ul>
  4. 4. <ul><li>Clustering - Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavors </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>
  5. 5. <ul><li>Generic types of clusters </li></ul><ul><ul><li>HA – High Availability (a.k.a. failover clusters) </li></ul></ul><ul><ul><ul><li>Failover/Failback </li></ul></ul></ul><ul><ul><ul><li>Load Balancing </li></ul></ul></ul><ul><ul><li>HPC – High Performance Computing </li></ul></ul><ul><ul><ul><li>Parallel Programming </li></ul></ul></ul><ul><ul><ul><li>Distributed Computing </li></ul></ul></ul>Clustering Introduction
  6. 6. <ul><li>Why do I need a cluster? </li></ul><ul><ul><li>“ There's no Upside to Downtime” (SAForum.org) </li></ul></ul><ul><ul><li>Hardware redundancy does not account for software bugs, human error or gremlins chewing on the cables </li></ul></ul><ul><ul><li>I'm a developer working on an application, do I need a cluster? </li></ul></ul><ul><ul><li>It depends on what your requirements are! </li></ul></ul><ul><ul><li>Most Dev's don't have full access to the backend they work on </li></ul></ul><ul><ul><li>When there is an issue, detection of a fault can be automatic, but recovery is done through human intervention, which can take time </li></ul></ul>Clustering Introduction
  7. 7. <ul><li>HA Clusters – How low can you go? </li></ul><ul><ul><li>Minimum number of nodes for a HA cluster is 2 </li></ul></ul><ul><ul><li>There is no theoretical upper limit to the number of nodes, but HA clusters usually span 2-32 nodes </li></ul></ul><ul><ul><li>If you need more than 32 nodes in one cluster, you probably need to rethink the design of the cluster, could be that HPC fits better </li></ul></ul><ul><ul><li>Default setups can go up to 8-10 nodes without any specific tweaks </li></ul></ul><ul><ul><li>Going above 10 nodes requires taking into consideration delays, mostly network related (STP convergence, multicast groups join/part, etc.) </li></ul></ul>Clustering Introduction
  8. 8. <ul><li>HA Clusters – What can 2 nodes do? </li></ul><ul><ul><li>The most common size for HA clusters is 2 nodes </li></ul></ul><ul><ul><li>Active/Passive – Applications run on one node, if it fails the other node takes over and starts all apps on it </li></ul></ul><ul><ul><li>Active/Active – Applications run on all/a subset of all nodes (usually resources must be either stateless or depend on a shared storage to work) </li></ul></ul><ul><ul><ul><li>Again, minimum number of nodes for both Active/Passive and Active/Active is 2 </li></ul></ul></ul><ul><ul><ul><li>Shared storage can be a dedicated SAN or be easily achieved through use of DRBD </li></ul></ul></ul>Clustering Introduction
  9. 9. <ul><li>HA Clusters – Beyond 2 nodes? </li></ul><ul><ul><li>N+1 – N nodes with 1 backup node, applications run on any of the N nodes, either node fails, the backup node takes over service </li></ul></ul><ul><ul><li>N+M – N nodes with M backups, usually it is calculated what the expected hardware failure ratio will be for a specific service, then based on this the number of backups is put into play (e.g.: 4:1, 7:2, etc.) </li></ul></ul><ul><ul><li>N-to-1 – A variation of N+1, it does the same thing, but for a limited timeframe, after restoring the failed node, the service would failback </li></ul></ul><ul><ul><li>N-to-N – N+M meets Active/Active </li></ul></ul>Clustering Introduction
  10. 10. <ul><li>Clustering - Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavors </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>
  11. 11. <ul><li>Once upon a time, there was Heartbeat </li></ul><ul><li>Main software that came out of the Linux-HA project </li></ul><ul><li>Heartbeat v1 </li></ul><ul><ul><li>Was limited to two nodes </li></ul></ul><ul><ul><li>Supported only very simple failover </li></ul></ul><ul><ul><li>Had no resource monitoring (external monitoring was required) </li></ul></ul>High Availability Clustering A historical background and future endeavors
  12. 12. <ul><li>Heartbeat v2 </li></ul><ul><ul><li>Added support for n-node clusters </li></ul></ul><ul><ul><li>Resource monitoring </li></ul></ul><ul><ul><li>Dependencies </li></ul></ul><ul><ul><li>Policies </li></ul></ul>High Availability Clustering A historical background and future endeavors
  13. 13. <ul><li>Heartbeat v2.1.4 – A fork split in the road </li></ul><ul><ul><li>Cluster Resource Manager split off into independent project – Pacemaker </li></ul></ul><ul><ul><li>Resource Agents and Cluster-Glue moved into separate packages </li></ul></ul><ul><ul><li>Heartbeat name is associated from this point forward only with the cluster messaging and membership layer </li></ul></ul>High Availability Clustering A historical background and future endeavors
  14. 14. <ul><li>Heartbeat v3 – under new leadership </li></ul><ul><ul><li>Starting with January 2010, Heartbeat code base development done by LINBIT (whom also develop DRBD) </li></ul></ul><ul><li>LINBIT announced it has </li></ul><ul><ul><li>“ no intention to add significant features to the Heartbeat code base, or extend its functionality significantly” </li></ul></ul><ul><ul><li>“ no intention to establish the Heartbeat code base as a long-term alternative or competition to the OpenAIS/Corosync cluster messaging layer” </li></ul></ul>High Availability Clustering A historical background and future endeavors
  15. 15. <ul><li>Heartbeat v3 – A glance into the future </li></ul><ul><ul><li>Why continue to use Heartbeat? </li></ul></ul><ul><ul><ul><li>It works! </li></ul></ul></ul><ul><ul><ul><li>Simple configuration! </li></ul></ul></ul><ul><ul><ul><li>People don't like change™ </li></ul></ul></ul><ul><ul><li>There are two sides to every story </li></ul></ul><ul><ul><ul><li>No upper limits, but cluster cannot grow beyond a maximum message size <64kB (~16 hosts) </li></ul></ul></ul><ul><ul><ul><li>No support for cluster filesystems (GFS2, OCFS2, CLVM2, etc.) </li></ul></ul></ul><ul><ul><ul><li>No new features to be developed </li></ul></ul></ul>High Availability Clustering A historical background and future endeavors
  16. 16. <ul><li>OpenAIS/Corosync – The story begins </li></ul><ul><ul><li>Service Availability Forum (HP, Oracle, Erricson, a.o.) defined the Application Interface Specification (AIS), an API designed to provide inter-operable HA services, from which the OpenAIS project began its life </li></ul></ul><ul><ul><li>In 2008, OpenAIS (a OSI Certified implementation of the AIS spec) got split into 2 projects: Corosync and OpenAIS </li></ul></ul><ul><ul><li>Corosync provides cluster messaging & membership </li></ul></ul><ul><ul><li>OpenAIS provides the rest of AIS spec (plugin to Corosync) </li></ul></ul>High Availability Clustering A historical background and future endeavors
  17. 17. <ul><li>Corosync – The basics </li></ul><ul><ul><li>It's a cluster messaging and membership layer providing reliable communications between nodes </li></ul></ul><ul><ul><li>Supports multiple transports, such as unicast, multicast, broadcast, as well as InfiniBand </li></ul></ul><ul><ul><li>Supports clustered filesystems (GFS2, OCFS2, CLVM2, etc.) </li></ul></ul><ul><ul><li>Configurable maximum message size (1MB by default) which means it can scale to more nodes and resources per node than Heartbeat </li></ul></ul><ul><ul><li>Redundant self-recovering communication rings (starting with version 1.4.0) </li></ul></ul>High Availability Clustering A historical background and future endeavors
  18. 18. <ul><li>Corosync – The basics </li></ul><ul><ul><li>Used by RedHat as the only cluster stack for Pacemaker starting with RHEL6 </li></ul></ul><ul><ul><li>Used as High Availability framework by Pacemaker and Apache Qpid </li></ul></ul><ul><ul><li>Used as communications layer by Sheepdog, Proxmox VE (v2.0) and Openfiler (v2.99) </li></ul></ul><ul><ul><li>Runs on all major GNU/Linux distros: SLES, RHEL, Ubuntu, Debian, Fedora, Gentoo </li></ul></ul>High Availability Clustering A historical background and future endeavors
  19. 19. <ul><li>Pacemaker – The road ahead </li></ul><ul><ul><li>It is a Cluster Resource Manager </li></ul></ul><ul><ul><li>Detects and recovers from node and resource-level failures </li></ul></ul><ul><ul><li>Supports both Corosync and Heartbeat stacks </li></ul></ul><ul><ul><li>Resource agnostic </li></ul></ul><ul><ul><li>Supports STONITH for ensuring data integrity </li></ul></ul><ul><ul><li>Automatically replicated configuration </li></ul></ul><ul><ul><li>Python-based unified, scriptable, cluster shell </li></ul></ul><ul><ul><ul><li>Validation of input prior to commit </li></ul></ul></ul><ul><ul><ul><li>Syntax highlighting </li></ul></ul></ul>High Availability Clustering A historical background and future endeavors
  20. 20. <ul><li>Pacemaker – The road ahead </li></ul><ul><ul><li>Tool for making offline configuration changes </li></ul></ul><ul><ul><li>Trigger recurring actions at known times (cron-like or based on date comparisons – gt, lt, in-range) </li></ul></ul><ul><ul><li>RelaxNG-based configuration schema </li></ul></ul><ul><ul><li>Connecting to the CIB from non-cluster machines </li></ul></ul><ul><ul><li>Supports cluster-wide service ordering, colocation and anti-colocation </li></ul></ul><ul><ul><li>Supports advanced services </li></ul></ul><ul><ul><ul><li>Clones: services that need to run on N nodes </li></ul></ul></ul><ul><ul><ul><li>Multi-state: Master/Slave, Primary/Secondary </li></ul></ul></ul>High Availability Clustering A historical background and future endeavors
  21. 21. <ul><li>Pacemaker – Future developments </li></ul><ul><ul><li>Given the possible limitations to the number of nodes/resources within a single Pacemaker cluster (not limited by Pacemaker itself but by the underlying messaging stack), scalability to thousands of nodes is in question </li></ul></ul><ul><ul><li>To address it, development of Pacemaker Cloud has already begun </li></ul></ul><ul><ul><li>Pacemaker Cloud provides high levels of service availability for high scale cloud deployments </li></ul></ul><ul><ul><li>Reuses PEngine library from Pacemaker </li></ul></ul>High Availability Clustering A historical background and future endeavors
  22. 22. <ul><li>Pacemaker – Future developments </li></ul><ul><ul><li>Integrates with several technologies </li></ul></ul><ul><ul><ul><li>Matahari – A stripped down version of Pacemaker suited for running inside VM's </li></ul></ul></ul><ul><ul><ul><li>DeltaCloud – An API that abstracts the differences between cloud providers, preventing a vendor lock-in </li></ul></ul></ul><ul><ul><li>Project under development, not yet ready for mainstream use </li></ul></ul>High Availability Clustering A historical background and future endeavors
  23. 23. <ul><li>Pacemaker – Future developments </li></ul><ul><ul><li>Strech clusters </li></ul></ul><ul><ul><ul><li>(multi-site clusters/clusters of clusters) was discussed as being under development </li></ul></ul></ul><ul><ul><ul><li>On 4 th of December, Booth cluster ticket manager was launched </li></ul></ul></ul><ul><ul><ul><li>Multi-site clusters can be considered as “overlay” clusters where each cluster site corresponds to a cluster node in a traditional cluster </li></ul></ul></ul><ul><ul><li>Scalability is addressed both on short term as well as on long term </li></ul></ul>High Availability Clustering A historical background and future endeavors
  24. 24. <ul><li>DRBD – Shared storage made easy </li></ul><ul><ul><li>Spans 2 cluster nodes (Master/Slave or Master/Master) </li></ul></ul><ul><ul><li>All write I/O synchronously replicated to other node </li></ul></ul><ul><ul><li>Also considered to be a Network-based RAID-1 </li></ul></ul><ul><ul><li>Highly used in the industry, including in 1&1, therefore most of its features are well known </li></ul></ul><ul><ul><ul><li>Stacked resources, which can lead to a 3-way and even 4-way replication (as of version 8.3) </li></ul></ul></ul><ul><ul><ul><li>Adaptive dynamic resync rate controller (starting with 8.3.11) </li></ul></ul></ul>High Availability Clustering A historical background and future endeavors
  25. 25. <ul><li>DRBD – Shared storage made easy </li></ul><ul><ul><ul><li>Multi volume feature allows usage of several minor devices “within the same resource” </li></ul></ul></ul><ul><ul><ul><li>Planned features include development of a „full data log“ (it may have another name when released), which would allow for the Secondary to be consistent even after replication link “hickups” or fallback to bitmap </li></ul></ul></ul>High Availability Clustering A historical background and future endeavors
  26. 26. <ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavors </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>
  27. 27. Cluster components Tools of the trade
  28. 28. <ul><li>Pacemaker's internal components </li></ul><ul><ul><li>CRMd – Cluster Resource Manager daemon (a message broker between PEngine and LRMd) </li></ul></ul><ul><ul><li>LRMd – Local Resource Manager daemon (non-cluster aware daemon that interacts with resource agents – scripts – directly) </li></ul></ul><ul><ul><li>PEngine – Policy Engine (the “brain”, computes the next state of the cluster based on current state + conf) </li></ul></ul><ul><ul><li>CIB – Cluster Information Base (contains all cluster information, synchronizes updates to all nodes) </li></ul></ul><ul><ul><li>STONITHd – Shoot-The-Other-Node-In-The-Head Daemon (a subsystem for node fencing) </li></ul></ul>Cluster components Tools of the trade
  29. 29. Cluster components Tools of the trade
  30. 30. <ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavours </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>
  31. 31. <ul><li>Pacemaker can support practically any redundancy configuration including </li></ul><ul><ul><li>Active/Active </li></ul></ul><ul><ul><li>Active/Passive </li></ul></ul><ul><ul><li>N+1 </li></ul></ul><ul><ul><li>N+M </li></ul></ul><ul><ul><li>N-to-1 </li></ul></ul><ul><ul><li>N-to-N </li></ul></ul>Clustering scenarios Fitting the needs
  32. 32. Clustering scenarios Fitting the needs
  33. 33. Clustering scenarios Fitting the needs
  34. 34. Clustering scenarios Fitting the needs
  35. 35. Clustering scenarios Fitting the needs
  36. 36. Clustering scenarios Fitting the needs
  37. 37. <ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavours </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo – Don't try this at home </li></ul><ul><li>Q&A </li></ul>
  38. 38. <ul><li>Definition: a Resource Agent is a standardized interface for a cluster resource </li></ul><ul><li>Pacemaker supports four types of RA's: </li></ul><ul><ul><li>Heartbeat v1 (legacy, deprecated) </li></ul></ul><ul><ul><li>LSB (Linux Standard Base) “init scripts” </li></ul></ul><ul><ul><li>OCF (Open Cluster Framework) </li></ul></ul><ul><ul><li>STONITH Resource Agents </li></ul></ul><ul><li>Most Resource Agents are coded as shell scripts </li></ul>Resource agents Controlling cluster services
  39. 39. <ul><li>LSB Resource Agents </li></ul><ul><ul><li>Are the scripts found in /etc/init.d/ </li></ul></ul><ul><ul><li>Require LSB compliance in terms of exit codes and arguments for usage within a Pacemaker cluster </li></ul></ul><ul><ul><li>Although many distributions boast LSB compliant init scripts, they ship with broken ones </li></ul></ul><ul><ul><li>Broken LSB compliance leads to “controlling the service via init script works”, “controlling the service via Pacemaker doesn't work” </li></ul></ul><ul><li>Always check if a script is LSB compliant before adding it to a Pacemaker cluster </li></ul>Resource agents Controlling cluster services
  40. 40. <ul><li>OCF Resource Agents </li></ul><ul><ul><li>Are the scripts found in /usr/lib/ocf/resource.d/ provider / </li></ul></ul><ul><ul><li>The OCF spec is an extension of the definitions for LSB Resource Agents </li></ul></ul><ul><ul><li>Require same LSB compliance in terms of exit codes and arguments for usage within a Pacemaker cluster </li></ul></ul><ul><ul><li>Support additional parameters to be passed to the script </li></ul></ul><ul><ul><li>Support additional actions compared to the LSB Resource Agents </li></ul></ul><ul><ul><li>Can be tested with ocf-tester for compliance </li></ul></ul>Resource agents Controlling cluster services
  41. 41. <ul><li>Supported operations of Resource Agents </li></ul><ul><ul><li>start: enable or start the given resource </li></ul></ul><ul><ul><li>stop: disable or stop the given resource </li></ul></ul><ul><ul><li>monitor: check whether the resource is running or not </li></ul></ul><ul><ul><li>validate-all: validate the resource's configuration </li></ul></ul><ul><ul><li>meta-data: return information about the RA itself (used by GUI's and other tools) </li></ul></ul>Resource agents Controlling cluster services
  42. 42. <ul><li>Additional operations provided by OCF Resource Agents </li></ul><ul><ul><li>promote: promote the local instance of a resource to the master/primary state </li></ul></ul><ul><ul><li>demote: demote the local instance of a resource to the slave/secondary state </li></ul></ul><ul><ul><li>notify: used by the cluster to send the agent pre and post notification events to the resource </li></ul></ul><ul><ul><li>reload: reload the configuration of the resource </li></ul></ul><ul><ul><li>migrate_from/migrate_to: perform live migration of a resource </li></ul></ul>Resource agents Controlling cluster services
  43. 43. <ul><li>Resource scores </li></ul><ul><ul><li>Every resource has a score, even if not explicitly defined </li></ul></ul><ul><ul><li>CRM (through Pengine) uses scores to calculate resource placement within the available cluster nodes </li></ul></ul><ul><ul><li>Every action related to placement of a resource is related to a score attribution and its manipulation </li></ul></ul><ul><ul><li>Highest score INF (1.000.000), lowest score -INF </li></ul></ul><ul><ul><li>(-1.000.000); resources can get any score within the range, including INF/-INF </li></ul></ul><ul><ul><li>Positive values mean “can run”, negative values mean “cannot run”; +/- INF change “can” to “must” </li></ul></ul>Resource agents Controlling cluster services
  44. 44. <ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavours </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>
  45. 45. <ul><li>Clustering – Introduction </li></ul><ul><li>High Availability Clustering – A historical background and future endeavours </li></ul><ul><li>Cluster components – Tools of the trade </li></ul><ul><li>Clustering scenarios – Fitting the needs </li></ul><ul><li>Resource agents – Controlling cluster services </li></ul><ul><li>Demo </li></ul><ul><li>Q&A </li></ul>
  46. 46. Q&A Resource agents Controlling cluster services
  47. 47. <ul><li>Useful resources and links </li></ul><ul><ul><li>http://fghaas.wordpress.com/2009/11/16/linbit-announces-stewardship-for-heartbeat-code-base/ </li></ul></ul><ul><ul><li>http://www.saforum.org/Application-Interface-Specification~217404~16627.htm </li></ul></ul><ul><ul><li>http://linux-ha.org/wiki/LSB_Resource_Agents </li></ul></ul><ul><ul><li>http://linux-ha.org/wiki/OCF_Resource_Agents </li></ul></ul><ul><ul><li>http://www.openais.org/doku.php </li></ul></ul><ul><ul><li>http://www.corosync.org/doku.php </li></ul></ul><ul><ul><li>http://www.clusterlabs.org </li></ul></ul><ul><ul><li>http://www.drbd.org </li></ul></ul>Contact
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×