diff --git a/.gitignore b/.gitignore
index ef74526..e9d342b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,38 +1,34 @@
# generated by jekyll
html/*.html
html/*.txt
-html/*/*/index.php
html/assets/
-html/doc/index.php
+html/doc/
+html/pacemaker/*/index.php
html/polls/index.html
src/.*-cache/
src/.jekyll-metadata
# generated by pacemaker make targets
-html/abi/pacemaker/*/
-html/doc/acls.*
-html/doc/build-1.1-*.txt
-html/doc/crm_fencing.*
-html/doc/en-US/
-html/doc/fr/
-html/doc/it-IT/
-html/doc/ro-RO/
-html/doc/zh-CN/
-html/doxygen/pacemaker/*/
-html/global/pacemaker/*/
-html/man/pacemaker/*.[78].html
+html/pacemaker/abi/*/
+html/pacemaker/doc/*/
+html/pacemaker/doc/acls.*
+html/pacemaker/doc/build-1.1-*.txt
+html/pacemaker/doc/crm_fencing.*
+html/pacemaker/doxygen/*/
+html/pacemaker/global/*/
+html/pacemaker/man/*.[78].html
# provided by mediawiki
mediawiki123/
# not version-controlled
*~
*.swp
html/doc/Two-Stacks.pdf
html/images/
include/wiki.clusterlabs.org/secrets.php
# not ClusterLabs-related
beekhof.net/
html/Pictures/
html/rpm-test*
diff --git a/README.md b/README.md
index d7f9e6f..6ebf129 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,98 @@
# ClusterLabs.org website
## Installing Jekyll
ClusterLabs,org is partially generated by jekyll. Installing jekyll requires
the following dependencies:
* nodejs
* npm
* ruby
* ruby-devel
* rubygems
* rubygem-bundler
* rubygem-rdiscount
Once you have those, change to the `src` directory and run `bundle install`.
## Using Jekyll
ClusterLabs.org's jekyll source is under the `src` directory. Jekyll will
generate static content to the html directory.
To generate content in a checkout for development and testing, change to the
`src` directory and run `bundle exec jekyll build` (to merely generate content)
or `bundle exec jekyll serve` (to generate and test via a local server).
To generate content on the production site, run
`JEKYLL_ENV=production jekyll build` (which will enable such things as site
analytics and asset digests).
If `src/Gemfile` changes, re-run `bundle install` afterward.
## Images, stylesheets and JavaScripts
We use the jekyll-assets plugin to manage "assets" such as images, stylesheets,
and JavaScript. One advantage is that digest hashes are automatically added to
the generated filenames when in production mode. This allows "cache busting"
when an asset changes, so we can use long cache times on the server end.
Another advantage is that sources are minified when in production mode.
How CSS is managed:
* `src/_assets/css/main.scss` is just a list of imports
* `src/_assets/css/_*.scss` contain the CSS to be imported by `main.scss`
* jekyll will generate `html/assets/main.css` (or `main-_HASH_.css`) as the
combination of all imports
* web pages can reference the stylesheet via `{% css main %}`
JavaScript is managed similarly:
* `src/_assets/js/main.js` is just a list of requires
* `src/_assets/js/*.js` contain the JavaScript to be required by `main.js`
* jekyll will copy these to `html/assets`
* jekyll will generate `html/assets/main.js` (or `main-_HASH_.js`) as the
combination of all JavaScript
* web pages can reference the script via `{% js main %}`
How images are managed:
* `src/_assets/images/*` are our images
* web pages can add an img tag using `{% img _NAME_._EXT_ %}`
* web pages can reference a path to an image (e.g. in a link's href)
using `{% asset_path _NAME_._EXT_ %}`
* CSS can reference a path to an image using
`url(asset_path("_NAME_._EXT_"))`
* only images that are referenced in one of these ways will be deployed
to the website, so `_assets` may contain image sources such as SVGs
that do not need to be deployed
* Tip: http://compresspng.com/ can often compress PNGs extremely well
## Site icons
Site icons used to be easy, right? `favicon.ico` seems downright traditional.
Unfortunately, site icons have become an ugly mess of incompatible proprietary
extensions. Even `favicon.ico` is just a proprietary extension (and obsolete, as
well). Now, there are also `apple-touch-icon[-NxN][-precomposed].png` (with at
least _12_ different sizes!), `browserconfig.xml`, `manifest.json`,
link tags with `rel=(icon|shortcut icon|apple-touch-icon-*)`, and Windows Phone
tile overlay divs.
If you want to be discouraged and confused, see:
* http://stackoverflow.com/questions/23849377/html-5-favicon-support
* https://mathiasbynens.be/notes/touch-icons
* https://css-tricks.com/favicon-quiz/
There is no way to handle the mess universally. In particular, some devices do
much better when different icon sizes are provided and listed in the HTML as
link tags, and will pick the size needed, whereas other devices will download
every single icon listed in those link tags, crippling page performance -- not
to mention the overhead that listing two dozen icon sizes adds to the HTML.
We've chosen a simple approach: provide two site icons, a 16x16 `favicon.ico`,
and a 180x180 `apple-touch-icon.png`, both listed in link tags in the HTML.
Most browsers/devices will choose one of these and scale it as needed.
+
+## Web server configuration
+
+The clusterlabs.org web server is configured to redirect certain old URLs to
+their new locations, so be careful about renaming files.
diff --git a/html/doc/Cluster_from_Scratch.pdf b/html/doc/Cluster_from_Scratch.pdf
deleted file mode 120000
index 8f35861..0000000
--- a/html/doc/Cluster_from_Scratch.pdf
+++ /dev/null
@@ -1 +0,0 @@
-en-US/Pacemaker/1.1/pdf/Clusters_from_Scratch/Pacemaker-1.1-Clusters_from_Scratch-en-US.pdf
\ No newline at end of file
diff --git a/html/doc/Clusters_from_Scratch-1.0-GFS2.pdf b/html/pacemaker/doc/Clusters_from_Scratch-1.0-GFS2.pdf
similarity index 100%
rename from html/doc/Clusters_from_Scratch-1.0-GFS2.pdf
rename to html/pacemaker/doc/Clusters_from_Scratch-1.0-GFS2.pdf
diff --git a/html/doc/Clusters_from_Scratch-1.0-OCFS2.pdf b/html/pacemaker/doc/Clusters_from_Scratch-1.0-OCFS2.pdf
similarity index 100%
rename from html/doc/Clusters_from_Scratch-1.0-OCFS2.pdf
rename to html/pacemaker/doc/Clusters_from_Scratch-1.0-OCFS2.pdf
diff --git a/html/doc/Colocation_Explained.pdf b/html/pacemaker/doc/Colocation_Explained.pdf
similarity index 100%
rename from html/doc/Colocation_Explained.pdf
rename to html/pacemaker/doc/Colocation_Explained.pdf
diff --git a/html/doc/Colocation_Explained_White.pdf b/html/pacemaker/doc/Colocation_Explained_White.pdf
similarity index 100%
rename from html/doc/Colocation_Explained_White.pdf
rename to html/pacemaker/doc/Colocation_Explained_White.pdf
diff --git a/html/doc/Ordering_Explained.pdf b/html/pacemaker/doc/Ordering_Explained.pdf
similarity index 100%
rename from html/doc/Ordering_Explained.pdf
rename to html/pacemaker/doc/Ordering_Explained.pdf
diff --git a/html/doc/Ordering_Explained_White.pdf b/html/pacemaker/doc/Ordering_Explained_White.pdf
similarity index 100%
rename from html/doc/Ordering_Explained_White.pdf
rename to html/pacemaker/doc/Ordering_Explained_White.pdf
diff --git a/html/doc/build-1.0.txt b/html/pacemaker/doc/build-1.0.txt
similarity index 100%
rename from html/doc/build-1.0.txt
rename to html/pacemaker/doc/build-1.0.txt
diff --git a/html/doc/build-1.1-plugin.txt b/html/pacemaker/doc/build-1.1-plugin.txt
similarity index 100%
rename from html/doc/build-1.1-plugin.txt
rename to html/pacemaker/doc/build-1.1-plugin.txt
diff --git a/html/doc/build-1.1.txt b/html/pacemaker/doc/build-1.1.txt
similarity index 100%
rename from html/doc/build-1.1.txt
rename to html/pacemaker/doc/build-1.1.txt
diff --git a/html/doc/desc-1.1-crmsh.txt b/html/pacemaker/doc/desc-1.1-crmsh.txt
similarity index 100%
rename from html/doc/desc-1.1-crmsh.txt
rename to html/pacemaker/doc/desc-1.1-crmsh.txt
diff --git a/html/doc/desc-1.1-pcs.txt b/html/pacemaker/doc/desc-1.1-pcs.txt
similarity index 100%
rename from html/doc/desc-1.1-pcs.txt
rename to html/pacemaker/doc/desc-1.1-pcs.txt
diff --git a/html/doc/desc-1.1-plugin.txt b/html/pacemaker/doc/desc-1.1-plugin.txt
similarity index 100%
rename from html/doc/desc-1.1-plugin.txt
rename to html/pacemaker/doc/desc-1.1-plugin.txt
diff --git a/html/doc/title-1.0.txt b/html/pacemaker/doc/title-1.0.txt
similarity index 100%
rename from html/doc/title-1.0.txt
rename to html/pacemaker/doc/title-1.0.txt
diff --git a/html/doc/title-1.1-crmsh.txt b/html/pacemaker/doc/title-1.1-crmsh.txt
similarity index 100%
rename from html/doc/title-1.1-crmsh.txt
rename to html/pacemaker/doc/title-1.1-crmsh.txt
diff --git a/html/doc/title-1.1-pcs.txt b/html/pacemaker/doc/title-1.1-pcs.txt
similarity index 100%
rename from html/doc/title-1.1-pcs.txt
rename to html/pacemaker/doc/title-1.1-pcs.txt
diff --git a/html/doc/title-1.1-plugin.txt b/html/pacemaker/doc/title-1.1-plugin.txt
similarity index 100%
rename from html/doc/title-1.1-plugin.txt
rename to html/pacemaker/doc/title-1.1-plugin.txt
diff --git a/html/pacemaker/index.html b/html/pacemaker/index.html
new file mode 100644
index 0000000..5bb9787
--- /dev/null
+++ b/html/pacemaker/index.html
@@ -0,0 +1,199 @@
+
+
+
+ Pacemaker has been around
+ since 2004
+ and is primarily a collaborative effort
+ between Red Hat
+ and SuSE. However, we also
+ receive considerable help and support from the folks
+ at LinBit and the community in
+ general.
+
+
+ The core Pacemaker team is made up of full-time developers from
+ Australia, the Czech Republic, the USA, and Germany. Contributions to the code or
+ documentation are always welcome.
+
+
+ Pacemaker ships with most modern Linux distributions and has been
+ deployed in many critical environments including Deutsche
+ Flugsicherung GmbH
+ (DFS)
+ which uses Pacemaker to ensure
+ its air traffic
+ control systems are always available.
+
+
+ Currently Andrew Beekhof is
+ the project lead for Pacemaker.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/_config.yml b/src/_config.yml
index bc6665a..ef03b00 100644
--- a/src/_config.yml
+++ b/src/_config.yml
@@ -1,55 +1,52 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing these this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: ClusterLabs
email: andrew@beekhof.net
description: Community hub for open-source high-availability software
url: http://www.clusterlabs.org/
google_analytics: UA-8156370-1
# Build settings
theme: minima
destination: ../html
gems:
- jekyll-assets
- font-awesome-sass
include:
- - abi
- doc
- - doxygen
- - global
- - man
+ - pacemaker
- polls
exclude:
- Gemfile
- Gemfile.lock
- LICENSE.theme
# All content generated outside of jekyll, or not yet converted to jekyll,
# must be listed here, or jekyll will erase it when building the site.
# Though not documented as such, the values here function as prefix matches.
keep_files:
- - abi
- - doc
- - doxygen
- - global
- images
- - man
+ - pacemaker/abi
+ - pacemaker/doc
+ - pacemaker/doxygen
+ - pacemaker/global
+ - pacemaker/man
- Pictures
- rpm-test
- rpm-test-next
- rpm-test-rhel
diff --git a/src/_layouts/home.html b/src/_layouts/home.html
index 87cb70f..914f684 100644
--- a/src/_layouts/home.html
+++ b/src/_layouts/home.html
@@ -1,203 +1,203 @@
---
layout: clusterlabs
---
ClusterLabs
Open Source High Availability Cluster Stack
-
The ClusterLabs stack unifies a large group of Open Source projects related to High Availability into a cluster offering suitable for both small and large deployments. Together, Corosync, Pacemaker, DRBD, ScanCore and many other projects have been enabling detection and recovery of machine and application-level failures in production clusters since 1999. The ClusterLabs stack supports practically any redundancy configuration imaginable.
+
The ClusterLabs stack unifies a large group of Open Source projects related to High Availability into a cluster offering suitable for both small and large deployments. Together, Corosync, Pacemaker, DRBD, ScanCore and many other projects have been enabling detection and recovery of machine and application-level failures in production clusters since 1999. The ClusterLabs stack supports practically any redundancy configuration imaginable.
We support many deployment scenarios, from the simplest
2-node standby cluster to a 32-node active/active
configuration.
We can also dramatically reduce hardware costs by allowing
several active/passive clusters to be combined and share a common
backup node.
We monitor the system for both hardware and software failures.
In the event of a failure, we will automatically recover
your application and make sure it is available from one
of the remaning machines in the cluster.
After a failure, we use advanced algorithms to quickly
determine the optimum locations for services based on
relative node preferences and/or requirements to run with
other cluster services (we call these "constraints").
Why clusters
At its core, a cluster is a distributed finite state
machine capable of co-ordinating the startup and recovery
of inter-related services across a set of machines.
System HA is possible without a cluster manager, but you save many headaches using one anyway
Even a distributed and/or replicated application that is
able to survive the failure of one or more components can
benefit from a higher level cluster:
data integrity through fencing (a non-responsive process does not imply it is not doing anything)
automated recovery of instances to ensure capacity
While SYS-V init replacements like systemd can provide
deterministic recovery of a complex stack of services, the
recovery is limited to one machine and lacks the context
of what is happening on other machines - context that is
crucial to determine the difference between a local
failure, clean startup or recovery after a total site
failure.
A Pacemaker stack is built on five core components:
libQB - core services (logging, IPC, etc)
Corosync - Membership, messaging and quorum
Resource agents - A collection of scripts that interact with the underlying services managed by the cluster
Fencing agents - A collection of scripts that interact with network power switches and SAN devices to isolate cluster members
Pacemaker itself
We describe each of these in more detail as well as other optional components such as CLIs and GUIs.
Background
Pacemaker has been around
since 2004
and is primarily a collaborative effort
between Red Hat
and SUSE, however we also
receive considerable help and support from the folks
at LinBit and the community in
general.
"Pacemaker cluster stack is the state-of-the-art high availability
and load balancing stack for the Linux platform."
-- OpenStack
documentation
Corosync also began life in 2004
but was then part of the OpenAIS project.
It is primarily a Red
Hat initiative, however we also receive considerable
help and support from the folks in the community.
The core ClusterLabs team is made up of full-time
developers from Australia, Austria, Canada, China, Czech
Repulic, England, Germany, Sweden and the USA. Contributions to
the code or documentation are always welcome.
The ClusterLabs stack ships with most modern enterprise
distributions and has been deployed in many critical
environments including Deutsche Flugsicherung GmbH
(DFS)
which uses Pacemaker to ensure
its air
traffic control systems are always available.
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 (colocation, ordering).
It can even use technology such
as Docker to
automatically isolate the resources managed by the
cluster.
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 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 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 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.
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.
The original configuration shell for Pacemaker. Written
and actively 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. Documentation for crmsh can be
found here.
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.
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.
There is a usage guide at hawk-guide.readthedocs.org, and it is
documented as part of the
SUSE Linux Enterprise High Availability Extension documentation
The Linux Cluster 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.
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.
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 provides a node fencing mechanism through the
exchange of messages via shared block storage such as for
example a SAN, iSCSI, FCoE. This isolates the fencing
mechanism from changes in firmware version or dependencies on
specific firmware controllers, and it can be used as a STONITH
mechanism in all configurations that have reliable shared
storage. It can also be used as a pure watchdog-based fencing
mechanism.
Recent versions of all major Linux distributions provide Pacemaker as
part of their usual repositories, so you can usually just launch your
favorite package manager.
One exception is Debian 8 ("jessie"), which had packaging issues not
resolved by the release deadline. For more information, see the Debian-HA team.
-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.
-
-
-
-
-
- On the otherhand, if you're looking for an exhaustive reference of
- all Pacemaker's options and features, try Pacemaker
- Explained. It's dry, but should have the answers you're
- 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.
-
A: Pacemaker ships as part of most modern
distributions, so you can usually just launch your
favorite package manager on:
openSUSE and SUSE Linux Enterprise Server (SLES)
Fedora and derivatives such as Red Hat Enterprise Linux (RHEL)
and CentOS
Debian and derivatives such as Ubuntu (with the exception of
Debian 8 "jessie", for which see the Debian-HA team for
details)
Gentoo
If all else fails, you can try installing from source.
Q: Is there any documentation?
A: Yes. You can find the set relevant to
your version in our documentation
index.
Q: Where should I ask questions?
A: Often basic questions can be answered
on irc,
but sending them to the
mailing list is
always a good idea so that everyone can benefit from the
answer.
Q: Do I need shared storage?
A: No. We can help manage it if you have
some, but Pacemaker itself has no need for shared storage.
Q: Which cluster filesystems does Pacemaker support?
A: Pacemaker supports the
popular OCFS2
and GFS2
filesystems. As you'd expect, you can use them on top of
real disks or network block devices
like DRBD.
Q: What kind of applications can I manage with Pacemaker?
A: Pacemaker is application agnostic, meaning
anything that can be scripted can be made highly available
- provided the script conforms to one of the supported
standards:
- LSB,
- OCF,
- Systemd,
- or Upstart.
+ LSB,
+ OCF,
+ Systemd,
+ or Upstart.
Q: Can I use Pacemaker with Heartbeat?
A: Yes. Pacemaker started off life as part
of the Heartbeat project and continues to support it as an
alternative to Corosync. See
this documentation for more details
Q: Can I use Pacemaker with CMAN?
A: Yes. Pacemaker added support
for CMAN
v3 in version 1.1.5 to better integrate with distros
that have traditionally shipped and/or supported the RHCS
cluster stack instead of Pacemaker. This is particularly
relevant for those looking to use GFS2 or OCFS2. See
- the documentation
+ the documentation
for more details
Q: Can I use Pacemaker with Corosync 1.x?
A: Yes. You will need to configure
Corosync to load Pacemaker's custom plugin to provide the
membership and quorum information we require. See
- the documentation for more details.
A: Yes. Pacemaker can obtain the
membership and quorum information it requires directly from
Corosync in this configuration. See
- the documentation for more details.
A: Yes. Fencing is the only 100% reliable
way to ensure the integrity of your data and that
applications are only active on one host. Although
Pacemaker is technically able to function without Fencing,
there are a good reasons SUSE and Red Hat will not support
such a configuration.
Q: Do I need to know XML to configure Pacemaker?
A: No. Although Pacemaker uses XML as its
native configuration format, there
exist 2 CLIs and at least 4 GUIs
that present the configuration in a human friendly format.
Q: How do I synchronize the cluster configuration?
A: Any changes to Pacemaker's
configuration are automatically replicated to other
machines. The configuration is also versioned, so any
offline machines will be updated when they return.
Q: Should I choose pcs or crmsh?
A: Arguably the best advice is to use
whichever one comes with your distro. This is the one
that will be tailored to that environment, receive regular
bugfixes and feature in the documentation.
Of course, for years people have been side-loading all of
Pacemaker onto enterprise distros that didn't ship it, so
doing the same for just a configuration tool should be
easy if your favorite distro does not ship your favorite
tool.
You can stay up to date with the Pacemaker project by subscribing to our
news and/or
site updates feeds.
A good first step is always to check out
the FAQ
- and documentation. Otherwise, many
+ and documentation. Otherwise, many
members of the community hang out
on irc
and are happy to answer questions. We are spread out over
many timezones though (and have day jobs), so you may need
to be patient when waiting for a reply.
Extended or complex issues might be better sent to the
relevant mailing list(s)
(you'll need to subscribe in order to send messages).
Don't worry if you pick the wrong one, many of us are on
multiple lists and someone will suggest a more appropriate
forum if necessary.
People new to the project, or Open Source generally, are
encouraged to
read Getting
Answers by Mike Ash from Rogue Amoeba. It provides
some very good tips on effective communication with groups
such as this one. Following the advice it contains will
greatly increase the chance of a quick and helpful reply.
Bugs and other problems can also be reported
via Bugzilla.
The development of most of the ClusterLabs-related projects take place as part of
the ClusterLabs organization at Github,
and the source code and issue trackers for these projects can be found there.
Providing Help
If you find this project useful, you may want to consider supporting its future development.
There are a number of ways to support the project (in no particular order):
If you're looking for external hosting, consider
using Linode.
Signing up for a new Linode with the referral code
75cc67af7ebaa39a56b66771a5b98501c643d312 provides
credits towards the hosting of this site, the code
repositories and mailing lists.
Heinlein Support offers
training
on Linux Clusters. Topics covered: heartbeat, openais,
pacemaker, DRBD, cluster filesystems, shared data and
the setup and integration of Linux Virtual Server (LVS)
into a high the cluster
LINBIT provides global
support
for DRBD, Linux-HA, Pacemaker and other HA-software
suites. Philipp Reisner and Lars Ellenberg, the authors
of DRBD oversee
LINBIT's Professional Services. In addition, they offer
training services, certification,
consultancy
, and turnkey solutions around DRBD and Pacemaker
B1 Systems
provides support (troubleshooting, maintenance,
debugging, ...), consulting and training for Linux
clusters, load balancing, storage clusters, virtual
system cluster and high availability. This includes
Pacemaker, Heartbeat and LVS as well as various cluster
filesystems (OCFS2, GPFS, GFS, ...)
Gurulabs offers
training
in the US on Linux Clusters. Topics covered: heartbeat,
openais, pacemaker, DRBD, cluster filesystems, shared
data and the setup and integration of Linux Virtual
Server (LVS) into the cluster
Does your company provide Pacemaker training or
support? Let
us know!
diff --git a/src/abi/pacemaker/index.php b/src/pacemaker/abi/index.php
similarity index 100%
rename from src/abi/pacemaker/index.php
rename to src/pacemaker/abi/index.php
diff --git a/src/pacemaker/doc/index.php b/src/pacemaker/doc/index.php
new file mode 100644
index 0000000..8843be1
--- /dev/null
+++ b/src/pacemaker/doc/index.php
@@ -0,0 +1,169 @@
+---
+layout: pacemaker
+title: Pacemaker Documentation
+---
+
+
+
+ Most of the documentation listed here was generated from the Pacemaker
+ sources.
+
+
+
+
Where to Start
+
+
+ If you're new to Pacemaker or clustering in general, the best place to
+ start is Clusters from Scratch, which walks you step-by-step through
+ the installation and configuration of a high-availability cluster with
+ Pacemaker. It even makes common configuration mistakes so that it can
+ demonstrate how to fix them.
+
+
+
+ On the other hand, if you're looking for an exhaustive reference of all
+ of Pacemaker's options and features, try Pacemaker Explained. It's
+ dry, but should have the answers you're looking for.
+
+
+
+ There is also a project wiki
+ with examples, how-to guides, and other information that doesn't make it
+ into the manuals.
+
Supports applications with multiple modes (eg. master/slave)
Provably correct response to any failure or cluster state. The
cluster's response to any stimuli can be tested offline
before the condition exists
Background
Pacemaker has been around
since 2004
and is primarily a collaborative effort
between Red Hat
and SuSE. However, we also
receive considerable help and support from the folks
at LinBit and the community in
general.
The core Pacemaker team is made up of full-time developers from
Australia, the Czech Republic, the USA, and Germany. Contributions to the code or
documentation are always welcome.
Pacemaker ships with most modern Linux distributions and has been
deployed in many critical environments including Deutsche
Flugsicherung GmbH
(DFS)
which uses Pacemaker to ensure
its air traffic
control systems are always available.
Currently Andrew Beekhof is
the project lead for Pacemaker.
diff --git a/src/man/pacemaker/index.php b/src/pacemaker/man/index.php
similarity index 100%
rename from src/man/pacemaker/index.php
rename to src/pacemaker/man/index.php
diff --git a/src/quickstart-redhat-6.html b/src/quickstart-redhat-6.html
index d1f1d3f..e03d3c3 100644
--- a/src/quickstart-redhat-6.html
+++ b/src/quickstart-redhat-6.html
@@ -1,197 +1,197 @@
---
layout: pacemaker
title: RHEL 6 Quickstart
---
{% include quickstart-common.html %}
Next we need to teach CMAN how to send it's fencing
requests to Pacemaker. We do this regardless of whether
or not fencing is enabled within Pacemaker.
Now copy /etc/cluster/cluster.conf to all
the other nodes that will be part of the cluster.
Start the Cluster
CMAN was originally written for rgmanager and assumes the
cluster should not start until the node has
quorum,
so before we try to start the cluster, we need to disable
this behavior:
[ALL] # service cman start
[ALL] # service pacemaker start
A note for users of prior RHEL versions
The original cluster shell (crmsh)
is no
longer available on RHEL. To help people make the
transition there is
a
quick reference guide for those wanting to know what
the pcs equivalent is for various crmsh commands.
Set Cluster Options
With so many devices and possible topologies, it is nearly
impossible to include Fencing in a document like this.
For now we will disable it.
[ONE] # pcs property set stonith-enabled=false
One of the most common ways to deploy Pacemaker is in a
2-node configuration. However quorum as a concept makes
no sense in this scenario (because you only have it when
more than half the nodes are available), so we'll disable
it too.
[ONE] # pcs property set no-quorum-policy=ignore
For demonstration purposes, we will force the cluster to
move services after a single failure:
Lets add a cluster service, we'll choose one doesn't
require any configuration and works everywhere to make
things easy. Here's the command:
[ONE] # pcs resource create my_first_svc Dummy op monitor interval=120s
"my_first_svc" is the name the service
will be known as.
"ocf:pacemaker:Dummy" tells Pacemaker
which script to use
(Dummy
- an agent that's useful as a template and for guides like
this one), which namespace it is in (pacemaker) and what
standard it conforms to
- (OCF).
+ (OCF).
"op monitor interval=120s" tells Pacemaker to
check the health of this service every 2 minutes by
calling the agent's monitor action.
You should now be able to see the service running using:
[ONE] # pcs status
or
[ONE] # crm_mon -1
Simulate a Service Failure
We can simulate an error by telling the service to stop
directly (without telling the cluster):
If you now run crm_mon in interactive
mode (the default), you should see (within the monitor
interval - 2 minutes) the cluster notice
that my_first_svc failed and move it to
another node.
With so many devices and possible topologies, it is nearly
impossible to include Fencing in a document like this.
For now we will disable it.
[ONE] # pcs property set stonith-enabled=false
One of the most common ways to deploy Pacemaker is in a
2-node configuration. However quorum as a concept makes
no sense in this scenario (because you only have it when
more than half the nodes are available), so we'll disable
it too.
[ONE] # pcs property set no-quorum-policy=ignore
For demonstration purposes, we will force the cluster to
move services after a single failure:
Lets add a cluster service, we'll choose one doesn't
require any configuration and works everywhere to make
things easy. Here's the command:
[ONE] # pcs resource create my_first_svc Dummy op monitor interval=120s
"my_first_svc" is the name the service
will be known as.
"ocf:pacemaker:Dummy" tells Pacemaker
which script to use
(Dummy
- an agent that's useful as a template and for guides like
this one), which namespace it is in (pacemaker) and what
standard it conforms to
- (OCF).
+ (OCF).
"op monitor interval=120s" tells Pacemaker to
check the health of this service every 2 minutes by
calling the agent's monitor action.
You should now be able to see the service running using:
[ONE] # pcs status
or
[ONE] # crm_mon -1
Simulate a Service Failure
We can simulate an error by telling the service to stop
directly (without telling the cluster):
If you now run crm_mon in interactive
mode (the default), you should see (within the monitor
interval of 2 minutes) the cluster notice
that my_first_svc failed and move it to
another node.
Pacemaker ships as part of the
SUSE High
Availability Extension. To install, follow the provided
documentation. It is also available in openSUSE Leap and openSUSE
Tumbleweed (for openSUSE, see the SLES 12 Quickstart guide.
Create the Cluster
The supported stack on SLES11 is based on Corosync/OpenAIS.
To get started, install the cluster stack on all nodes.
[ALL] # zypper install ha-cluster-bootstrap
First we initialize the cluster on the first machine (node1):
[ONE] # ha-cluster-init
Now we can join the cluster from the second machine (node2):
[ONE] # ha-cluster-join -c node1
These two steps create and start a basic cluster together with the
HAWK web interface. If given
additional arguments, ha-cluster-init can also configure
STONITH and OCFS2 as part of initial configuration.
For more details on ha-cluster-init, see the output of
ha-cluster-init --help.
Set Cluster Options
For demonstration purposes, we will force the cluster to
move services after a single failure:
Lets add a cluster service, we'll choose one doesn't
require any configuration and works everywhere to make
things easy. Here's the command:
[ONE] # crm configure primitive my_first_svc ocf:pacemaker:Dummy op monitor interval=120s
"my_first_svc" is the name the service
will be known as.
"ocf:pacemaker:Dummy" tells Pacemaker
which script to use
(Dummy
- an agent that's useful as a template and for guides like
this one), which namespace it is in (pacemaker) and what
standard it conforms to
- (OCF).
+ (OCF).
"op monitor interval=120s" tells Pacemaker to
check the health of this service every 2 minutes by
calling the agent's monitor action.
You should now be able to see the service running using:
[ONE] # crm status
Simulate a Service Failure
We can simulate an error by telling the service stop
directly (without telling the cluster):
If you now run crm_mon in interactive
mode (the default), you should see (within the monitor
interval - 2 minutes) the cluster notice
that my_first_svc failed and move it to
another node.
You can also watch the transition from the HAWK dashboard, by going
to https://node1:7630.
Pacemaker ships as part of the
SUSE High
Availability Extension. To install, follow the provided
documentation. It is also available in openSUSE Leap and openSUSE
Tumbleweed.
Create the Cluster
The supported stack on SLES12 is based on Corosync 2.x.
To get started, install the cluster stack on all nodes.
[ALL] # zypper install ha-cluster-bootstrap
First we initialize the cluster on the first machine (node1):
[ONE] # ha-cluster-init
Now we can join the cluster from the second machine (node2):
[ONE] # ha-cluster-join -c node1
These two steps create and start a basic cluster together with the
HAWK web interface. If given
additional arguments, ha-cluster-init can also configure
STONITH, OCFS2 and an administration IP address as part of initial
configuration. It is also possible to choose whether to use multicast
or unicast for corosync communication.
For more details on ha-cluster-init, see the output of
ha-cluster-init --help.
Set Cluster Options
For demonstration purposes, we will force the cluster to
move services after a single failure:
Lets add a cluster service, we'll choose one doesn't
require any configuration and works everywhere to make
things easy. Here's the command:
[ONE] # crm configure primitive my_first_svc Dummy op monitor interval=120s
"my_first_svc" is the name the service
will be known as.
"Dummy" tells Pacemaker
which script to use
(Dummy
- an agent that's useful as a template and for guides like
this one), which namespace it is in (pacemaker) and what
standard it conforms to
- (OCF).
+ (OCF).
"op monitor interval=120s" tells Pacemaker to
check the health of this service every 2 minutes by
calling the agent's monitor action.
You should now be able to see the service running using:
[ONE] # crm status
Simulate a Service Failure
We can simulate an error by telling the service stop
directly (without telling the cluster):
If you now run crm_mon in interactive
mode (the default), you should see (within the monitor
interval - 2 minutes) the cluster notice
that my_first_svc failed and move it to
another node.
You can also watch the transition from the HAWK dashboard, by going
to https://node1:7630.
One of the most common ways to deploy Pacemaker is in a
2-node configuration. However quorum as a concept makes
no sense in this scenario (because you only have it when
more than half the nodes are available), so we'll disable
it too.
Lets add a cluster service, we'll choose one doesn't
require any configuration and works everywhere to make
things easy. Here's the command:
[ONE] # crm configure primitive my_first_svc ocf:pacemaker:Dummy op monitor interval=120s
"my_first_svc" is the name the service
will be known as.
"ocf:pacemaker:Dummy" tells Pacemaker
which script to use
(Dummy
- an agent that's useful as a template and for guides like
this one), which namespace it is in (pacemaker) and what
standard it conforms to
- (OCF).
+ (OCF).
"op monitor interval=120s" tells Pacemaker to
check the health of this service every 2 minutes by
calling the agent's monitor action.
You should now be able to see the service running using:
[ONE] # crm_mon -1
Simulate a Service Failure
We can simulate an error by telling the service stop
directly (without telling the cluster):
If you now run crm_mon in interactive
mode (the default), you should see (within the monitor
interval - 2 minutes) the cluster notice
that my_first_svc failed and move it to
another node.