CentOS cluster computing

From Teknologisk videncenter
Revision as of 09:35, 4 April 2009 by Heth (talk | contribs) (DLM - Distributed Lock Manager)
Jump to: navigation, search

Abbreviations and systems

Redhat Clustering daemons and systems
System Meaning Runs on
CCS Cluster Configuration System Each node
CLVM Cluster Logical Volume Manager. Provides volume management to nodes. Each node
CMAN Cluster Manager Each node
DLM Distributed Lock Manager Each node
fenced Fence Daemon - The DLM Distributed Lock manager daemon Each node
GFS Global File System. Shared storage among nodes. Each node
GNDB Global Network Block Device. Low level storage access over Ethernet GFS server
LVS Linux Virtual Server, routing software to privide IP load balancing On two or more Linux gateways
RHCS RedHat Cluster Suite - Software components to build various types of Clusters

Quorum

  • Quorum: The minimum number of people in a organization to conduct business or in this case the minimum number of resources available to keep the cluster running.

In Redhat/Centos Clustering Quorum is when more than 50% of the votes are available. In a standard setting each node of a cluster have one vote. If you Cluster consists of eight nodes, the Cluster will first be available when five nodes are tied together in the Cluster. See the current operational status with cman_tool status command.
This rule is necessary for example in the case we have eight nodes and a network error cuts the cluster in half, we would suddenly have two clusters with four nodes. The two Clusters would destroy the integrity of databases and storage.

Red Hat Cluster Suite Introduction

Red Hat Cluster Suite (RHCS) is an integrated set of software components that can be deployed in a variety of configurations to suit your needs for performance, high-availability, load balancing, scalability, file sharing, and economy.

RHCS consists of the following major components

  • Cluster infrastructure — Provides fundamental functions for nodes to work together as a cluster: configuration-file management, membership management, lock management, and fencing.
  • High-availability Service Management — Provides failover of services from one cluster node to another in case a node becomes inoperative.
  • Cluster administration tools — Configuration and management tools for setting up, configuring, and managing a Red Hat cluster. The tools are for use with the Cluster Chapter Infrastructure components, the High-availability and Service Management components, and storage.
  • Linux Virtual Server (LVS) — Routing software that provides IP-Load-balancing. LVS runs in a pair of redundant servers that distributes client requests evenly to real servers that are behind the LVS servers.

Additional Cluster Components

You can supplement Red Hat Cluster Suite with the following components, which are part of an optional package (and not part of Red Hat Cluster Suite):

  • Red Hat GFS (Global File System) — Provides a cluster file system for use with Red Hat Cluster Suite. GFS allows multiple nodes to share storage at a block level as if the storage were connected locally to each cluster node.
  • Cluster Logical Volume Manager (CLVM) — Provides volume management of cluster storage.
  • Global Network Block Device (GNBD) — An ancillary component of GFS that exports block-level storage to Ethernet. This is an economical way to make block-level storage available to Red Hat GFS.

Cluster management with Conga

Starting luci and ricci

Follow the instructions in chapter 3 - Configuring Red Hat Cluster With Conga - in RedHat 5.2 Cluster Administration manual. Follow the instructions in

Cluster management from the console

Cluster subsystems

There are quite a few subsystems and daemons. See the picture below

CMAN new model, from the aiscman tutorial. (See below)

cman - Cluster Manager

cman consists in CMAN version 2 of OpenAIS See the aiscman tutorial

  • aisexec - The actual kernel manager. Communicates among the nodes using a token
  • cman_tool - Cluster Management Tool (join,leave,status etc.)
  • The service cman status starts the cluster manager services.

ccs - Cluster Configuration System

  • ccsd - daemon that manages the cluster.conf file in a cman cluster.
  • ccs_tool

clvmd - Cluster LVM daemon

clvmd is the daemon that distributes LVM metadata updates around a cluster. It must be running on all nodes in the cluster and will give an error if a node in the cluster does not have this daemon running.

notes

Services

ricci

ccsd

luci

cman

rgmanager - Resource Group Manager

The rgmanager manages and provides failover capabilities for collections of resources called services, resource groups, or resource trees in a cluster. See RedHAT rgmanager

ccsd - Cluster Configuration System Daemon

groupd

clvmd

aisexec

DLM - Distributed Lock Manager

  • The daemon dlm_controld

Many distributed/cluster applications use a dlm for inter-process synchronization where processes may live on different machines. GFS and CLVM are two examples. See wikipedia DLM article

utilities

  • clustat Cluster Status

Files

  • /etc/cluster/cluster.conf

hostnames give all the nodes hostnames in /etc/hosts or use dns

  • node1.tekkom.dk
  • node2.tekkom.dk
  • ..
hostname node1.tekkom.dk
vi /etc/sysconfig/network
service network restart

example

[root@node1 ~]# clustat
Cluster Status for webcluster2 @ Sat Apr  4 07:33:26 2009
Member Status: Quorate

 Member Name                                           ID   Status
 ------ ----                                           ---- ------
 node1.tekkom.dk                                           1 Online
 node2.tekkom.dk                                           2 Online, rgmanager
 node3.tekkom.dk                                           3 Online, Local, rgmanager

 Service Name                                 Owner (Last)                                 State
 ------- ----                                 ----- ------                                 -----
 service:apache_service                       node2.tekkom.dk                              started

[root@node1 cluster]# cman_tool status
Version: 6.1.0
Config Version: 16
Cluster Name: webcluster2
Cluster Id: 28826
Cluster Member: Yes
Cluster Generation: 252
Membership state: Cluster-Member
Nodes: 3
Expected votes: 3
Total votes: 3
Quorum: 2
Active subsystems: 9
Flags: Dirty
Ports Bound: 0 11 177
Node name: node3.tekkom.dk
Node ID: 3
Multicast addresses: 239.192.112.11
Node addresses: 192.168.138.157

[root@node1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster alias="webcluster2" config_version="16" name="webcluster2">
        <fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/>
        <clusternodes>
                <clusternode name="node1.tekkom.dk" nodeid="1" votes="1">
                        <fence/>
                </clusternode>
                <clusternode name="node2.tekkom.dk" nodeid="2" votes="1">
                        <fence/>
                </clusternode>
                <clusternode name="node3.tekkom.dk" nodeid="3" votes="1">
                        <fence/>
                </clusternode>
        </clusternodes>
        <cman/>
        <fencedevices/>
        <rm>
                <failoverdomains>
                        <failoverdomain name="webcluster-failover" nofailback="0" ordered="0" restricted="1">
                                <failoverdomainnode name="node2.tekkom.dk" priority="1"/>
                        </failoverdomain>
                </failoverdomains>
                <resources>
                        <apache config_file="conf/httpd.conf" name="Appache2" server_root="/mnt/iscsi" shutdown_wait="0"/>
                        <script file="/etc/rc.d/init.d/httpd" name="apachescript"/>
                </resources>
                <service autostart="1" domain="webcluster-failover" exclusive="0" name="apache_service"/>
        </rm>
</cluster>

Manuls

Clustering

Backup technologies