diff --git a/html/components.html b/html/components.html index e49401c..eace880 100755 --- a/html/components.html +++ b/html/components.html @@ -1,177 +1,177 @@ Cluster Labs - Components

Core Components

Pacemaker

At its core, Pacemaker is a distributed finite state machine capable of co-ordinating the startup and recovery of inter-related services across a set of machines.

Pacemaker understands many different resource types (OCF, SYSV, systemd) and can accurately model the relationships - between them (collocation, ordering). + between them (colocation, ordering).

It can even use technology such as Docker to automatically isolate the resources managed by the cluster.

Corosync

Corosync APIs provide membership (a list of peers), messaging (the ability to talk to processes on those peers), and quorum (do we have a majority) capabilities to projects such as Apache Qpid and Pacemaker.

libQB

libqb is a library with the primary purpose of providing high performance client server reusable features. It provides high performance logging, tracing, ipc, and poll.

The initial features of libqb come from the parts of corosync that were thought to useful to other projects.

Resource Agents

Resource agents are the abstraction that allows Pacemaker to manage services it knows nothing about. They contain the logic for what to do when the cluster wishes to start, stop or check the health of a service.

This particular set of agents conform to the Open Cluster Framework (OCF) specification. A guide to writing agents is also available.

Fence Agents

Fence agents are the abstraction that allows Pacemaker to isolate badly behaving nodes. They achieve this by either powering off the node or disabling its access to the network and/or shared storage.

Many types of network power switches exist and you will want to choose the one(s) that match your hardware. Please be aware that some (ones that don't loose power when the machine goes down) are better than others.

Agents are generally expected to expose OCF-compliant metadata.

OCF specification

The original documentation that sparked a lot of this work. Mostly we only use the "RA" specification. Efforts are underway to revive the process for updating and modernizing the spec.

Configuration Tools

Pacemaker's internal configuration format is XML, which is great for machines but terrible for humans.

The community's best minds have created GUIs and Shells to hide the XML and allow the configuration to be viewed and updated in a more human friendly format.

Command Line Interfaces (Shells)

crmsh

The original configuration shell for Pacemaker. Written and maintained by SUSE, it may be used either as an interactive shell with tab completion, for single commands directly on the shell's command line or as batch mode scripting tool.

pcs

An alternate vision for a full cluster lifecycle configuration shell and web based GUI. Handles everything from cluster installation through to resource configuration and status.

GUI Tools

pygui

The original GUI for Pacemaker written in Python by IBM China. Mostly deprecated on SLES in favor of Hawk

hawk

Hawk is a web-based GUI for managing and monitoring Pacemaker HA clusters. It is generally intended to be run on every node in the cluster, so that you can just point your web browser at any node to access it. It is documented as part of the SUSE Linux Enterprise High Availability Extension documentation

LCMC

The Linux Clusther Management Console (LCMC) is a GUI with an inovative approach for representing the status of and relationships between cluster services. It uses SSH to let you install, configure and manage clusters from your desktop.

pcs

An alternate vision for a full cluster lifecycle configuration shell and web based GUI. Handles everything from cluster installation through to resource configuration and status.

Other Add-ons

booth

The Booth cluster ticket manager extends Pacemaker to support geographically distributed clustering. It does this by managing the granting and revoking of 'tickets' which authorizes one of the cluster sites, potentially located in geographically dispersed locations, to run certain resources.

sbd

storage based death and watchdog based fencing

diff --git a/html/doc/index.php b/html/doc/index.php index 6c629c4..b49609d 100644 --- a/html/doc/index.php +++ b/html/doc/index.php @@ -1,198 +1,188 @@ Cluster Labs - Pacemaker Documentation

The following Pacemaker documentation was generated from the upstream sources.

Where to Start

If you're new to Pacemaker or clustering in general, the best place to start is the Clusters from Scratch guide. This document walks you step-by-step through the installation and - configuration of a High Availability cluster with Pacemaker. It - even makes the common configuration mistakes so that it can - demonstrate how to fix them. + configuration of a High Availability cluster with Pacemaker.

On the otherhand, if you're looking for an exhasutive reference of all Pacemaker's options and features, try Pacemaker Explained. It's dry, but should have the answers you're - looking for. Again, be sure to read the edition appropriate for - your software version. - -

- -

- - Both are version specific (Some things have changed over the - years, so be sure to choose the one that matches your software - version) and have been translated into several languages. + looking for.

There is also a project wiki with plenty of examples and howto guides which the wider community is encouraged to update and add to.

Which Documentation Set do I Need?

If the distribution you're using is:

Unversioned documentation

General Concepts

Ordering Explained [pdf] [print]
Colocation Explained [pdf] [print]
Configuring Fencing with crmsh [html]
ACL Guide [html]
"; echo "

"; foreach (glob("title-$version.txt") as $filename) { readfile($filename); } echo "

"; foreach (glob("desc-$version.txt") as $filename) { readfile($filename); } echo "
"; foreach (glob("build-$version.txt") as $filename) { readfile($filename); } echo "
"; $langs = array(); - foreach (glob("$base/*/Pacemaker/$version") as $item) { + // for now, show only US English; other translations haven't been maintained + foreach (glob("$base/en-US/Pacemaker/$version") as $item) { $langs[] = basename(dirname(dirname($item))); } $books = array(); foreach (glob("$base/en-US/Pacemaker/$version/pdf/*") as $filename) { $books[] = basename($filename); } echo ''; foreach ($books as $b) { foreach ($langs as $lang) { if (glob("$base/$lang/Pacemaker/$version/pdf/$b/*-$lang.pdf")) { echo '"; echo '"; } } } echo "
'.str_replace("_", " ", $b)." ($lang)'; foreach (glob("$base/$lang/Pacemaker/$version/epub/$b/*.epub") as $filename) { echo " [epub]"; } foreach (glob("$base/$lang/Pacemaker/$version/pdf/$b/*.pdf") as $filename) { echo " [pdf]"; } foreach (glob("$base/$lang/Pacemaker/$version/html/$b/index.html") as $filename) { echo " [html]"; } foreach (glob("$base/$lang/Pacemaker/$version/html-single/$b/index.html") as $filename) { echo " [html-single]"; } foreach (glob("$base/$lang/Pacemaker/$version/txt/$b/*.txt") as $filename) { echo " [txt]"; } echo "
"; echo "
"; } $docs = array(); foreach (glob("*.html") as $file) { $fields = explode(".", $file, -1); $docs[] = implode(".", $fields); } foreach (glob("*.pdf") as $file) { $fields = explode(".", $file, -1); $docs[] = implode(".", $fields); } echo "

Versioned documentation

"; foreach(get_versions(".") as $v) { docs_for_version(".", $v); } ?>

Deprecated Documentation

Pacemaker 1.0 with OpenAIS

Clusters from Scratch - Pacemaker 1.0 & GFS2 [pdf]
Clusters from Scratch - Pacemaker 1.0 & OCFS2 [pdf]
diff --git a/html/global/pacemaker/index.php b/html/global/pacemaker/index.php index fd276d7..83b56b8 100644 --- a/html/global/pacemaker/index.php +++ b/html/global/pacemaker/index.php @@ -1,54 +1,54 @@ - Cluster Labs - Packages for Pacemaker 1.0.x + Cluster Labs - Annotated Pacemaker Sources

Annotated Pacemaker Sources

"; $runs = glob("*"); array_multisort(array_map('filemtime', $runs), /*SORT_ASC*/SORT_DESC, $runs); $lpc = 0; /*$total = count($runs);*/ foreach ($runs as $hash) { if(strstr($hash, "index")) { continue; } $total++; } foreach ($runs as $hash) { if(strstr($hash, "index")) { continue; } $run = $total - $lpc; $when = date("F d Y, gA", filemtime($hash)); echo "
  • Run $run $hash ($when) "; echo " [Results]"; - echo " [Sources]"; + echo " [Sources]"; echo "
  • "; $lpc++; } echo ""; ?>