Install Cluster rhel5

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Procédure d'installation cluster RHEL5
Composants Luci, Ricci, cman, rgmanager, GFS2
Voir aussi CMANv2 · CMANv3

Procédure d'installation d'un Red Hat Cluster Suite sur RHEL 5 (voir CMANv2 pour la présentation générale de l'architecture CMAN/rgmanager/fenced/GFS2). Exemple complet allant du prérequis réseau jusqu'à un service haute disponibilité applicatif (base Oracle).

Prérequis

  • Déclarer l'ensemble des nœuds dans /etc/hosts de chaque nœud, en y plaçant
 une IP virtuelle (VIP) de cluster.
  • Créer de préférence un bond sur les cartes réseau de chaque nœud — un cluster
 perd le quorum si un nœud devient injoignable, un simple lien réseau redondant évite qu'une
 panne de câble ne déclenche un fencing inutile.

Installation des paquets

yum -y groupinstall Clustering
yum -y groupinstall "Cluster Storage"
  • Luci : démon serveur web d'administration du cluster.
  • Ricci : agent local qui reçoit et exécute les ordres envoyés par Luci sur chaque nœud.

Configuration de Luci

luci_admin init
chkconfig luci on
service luci start

SELinux doit être désactivé pour cette procédure sous RHEL 5.4 (limitation connue de cette version — à réévaluer si la cible est une version ultérieure, SELinux permissif/enforcing avec les bons contextes peut suffire) :

system-config-securitylevel

CMAN gère les services du cluster (GFS2 ou CLVM) :

chkconfig ricci on
chkconfig gfs2 on
chkconfig cman on
service ricci start

Création du cluster

Luci est accessible à l'adresse https://hostname:8084.

Dans l'onglet Cluster, créer un nouveau cluster. En l'absence de ricci démarré sur le nœud cible, l'empreinte de clé (key ID) affiche no key fingerprint available — démarrer ricci avant de retenter.

Journalisation dédiée

Rediriger les logs du cluster vers un fichier dédié plutôt que de les laisser noyés dans /var/log/messages :

# /etc/syslog.conf
local4.*    /var/log/rgmanager

Ajouter la rotation correspondante (dans la liste existante) :

vi /etc/logrotate.d/syslog

Puis référencer cette facility dans la configuration du cluster :

# /etc/cluster/cluster.conf
<rm log_facility="local4" log_level="5">

Propager le changement à l'ensemble des nœuds :

ccs_tool update /etc/cluster/cluster.conf

Ajout du fencing

Sur un environnement virtualisé (VMware), le fencing passe par l'agent fence_vmware, qui pilote l'API vSphere :

yum -y install openssl-devel perl-URI
tar -zxf VMware-vSphere-SDK-for-Perl-*.tar.gz
cd vmware-vsphere-cli-distrib
./vmware-install.pl

Cette installation fournit la commande /sbin/fence_vmware.

Avant d'activer le fencing, désactiver ACPI sur tous les nœuds (sans quoi une demande d'arrêt forcé peut être retardée ou ignorée par l'OS invité) :

service acpid stop
chkconfig --del acpid

Dans Luci, ajouter un fence device à chaque nœud du cluster. Pour des VM, préciser le chemin de l'objet dans l'inventaire vSphere (/vmfs/volumes/...).

Disque quorum

Le disque quorum est un support partagé sur lequel chaque nœud publie son état, vu par tous les autres — voir aussi la section quorum de CMANv3 pour le détail des heuristiques.

Sur une partition visible de l'ensemble des nœuds :

fdisk /dev/sdb              # créer /dev/sdb1
mkqdisk -c /dev/sdb1 -l cluster_name
partprobe                    # sur les autres nœuds, pour prendre en compte la partition
mkqdisk -L                   # vérifier que le label est vu par l'ensemble des nœuds
service qdiskd start          # sur tous les nœuds
chkconfig qdiskd on

Heuristiques

Clauses et règles utilisées pour exclure un nœud du quorum. Exemple : un script qui vérifie qu'un lien réseau est bien détecté.

# /usr/share/cluster/check_eth_link.sh
#!/bin/sh
# Network link status checker
ethtool $1 | grep -q "Link detected.*yes"
exit $?
chmod +x /usr/share/cluster/check_eth_link.sh

Dans Luci, onglet Quorum Partition du cluster créé plus haut : Interval: 2, Votes: 1, TKO: 5, Minimum Score: 1, Label: nom_du_cluster, Path to program: /usr/share/cluster/check_eth_link.sh / interval: 2 / score: 1.

Création d'un volume GFS

CLVM ou OCFS peuvent être utilisés comme alternative pour le partage de stockage ; cette section couvre GFS directement.

mkdir -p /gfsdata
mount -o acl -t gfs /dev/sdc1 /gfsdata

L'option -o acl active la prise en charge des ACL en écriture sur le volume.

Dans Luci, ajouter une ressource : name: gfsdata, mountpoint: /gfsdata, device: /dev/sdc1, filesystem type: GFS, options: acl, force unmount: yes.

Exemple d'intégration : base Oracle en HA

Installation des dépendances côté OS puis compte applicatif :

yum -y install compat-libstdc++-33 elfutils-libelf-devel gcc-c++ libaio-devel \
  libstdc++-devel sysstat unixODBC unixODBC-devel pdksh

mkdir /appli/oracle
groupadd dba
groupadd oinstall
useradd -g dba -d /appli/oracle oracle
chown oracle:dba /appli/oracle
passwd oracle

Installer ensuite la base Oracle en plaçant les fichiers de données (dbf) sur le stockage partagé (GFS/CLVM), créer un script /etc/init.d/oracle, puis le déclarer comme ressource du cluster.

Mise en conformité du second nœud

scp /appli/oracle/.profile /appli/oracle/startdb /appli/oracle/stopdb oracle@node2:/appli/oracle
scp /etc/init.d/oracle node2:/etc/init.d
scp /appli/oracle/11.2.0/dbs/* oracle@node2:/appli/oracle/11.2.0/dbs
scp /appli/oracle/11.2.0/network/admin/*.ora node2:/appli/oracle/11.2.0/network/admin

Mettre en place une synchronisation périodique du spfile du nœud actif vers le nœud passif, pour garantir que la configuration reste alignée entre les deux.

Service Oracle dans le cluster (via Luci)

  • Créer une ressource IP virtuelle.
  • Créer le domaine de basculement associé.
  • Créer le service :
 Automatically start: yes, enable NFS lock: no,
 run exclusive: yes, failover-domain: (celui créé ci-dessus),
 Recovery policy: restart, number of failures: 0,
 length of time after which to forget a restart: 0.
  • Ajouter les ressources nécessaires au service : un script d'arrêt/relance, un point de
 stockage partagé, et une IP virtuelle active uniquement sur le nœud actif.

Vérification

clustat

Voir aussi

  • CMANv2 — architecture générale du Red Hat Cluster Suite sur RHEL5
  • CMANv3 — génération suivante (RHEL6), pilotée par ccs
  • Ethtool — utilisé par le script heuristique de vérification de lien réseau
  • Bonding — recommandé en prérequis réseau du cluster