Installation Cluster VCS

De Le wiki de Fred sur gantzer.eu

Ce document présente l'installation d'un cluster VCS sur Linux RHES5.2 x64


Sommaire

PREREQUIS

PREREQUIS RESEAU

  • Les fichiers /etc/hosts des machines du cluster doivent être renseignée :
  cat /etc/hosts
  # Do not remove the following line, or various programs
  # that require network functionality will fail.
  127.0.0.1                localhost
  10.xxx.xxx.1            host1
  10.xxx.xxx.1            host2
  192.168.0.1             host1_priv
  192.168.0.2             host2_priv
  • Les deux machines doivent pouvoir communiquer via ssh sans authentification avec le user root. Il faut générer une clé ssh depuis la machine dite « primaire » et la déposer sur les différents nœuds du cluster :
  #/usr/bin/ssh-keygen -t dsa
  Generating public/private dsa key pair.
  Enter file in which to save the key (/root/.ssh/id_dsa):
  Enter passphrase (empty for no passphrase):
  Enter same passphrase again:
  Your identification has been saved in /root/.ssh/id_dsa.
  Your public key has been saved in /root/.ssh/id_dsa.pub.
  The key fingerprint is:
  c7:d0:0f:a1:23:9b:81:08:66:9e:df:e1:97:a5:62:72 root@host1
  • Copier le fichier /root/.ssh./id_dsa.pub vers /root/.ssh/authorized_keys2 des différents nœuds du cluster.
  • Passer les commandes suivantes :
  # exec /usr/bin/ssh-agent $SHELL
  # ssh-add
  Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa)

PREREQUIS LOGICIELS

  • Modifier l'environnement système
  PATH=/usr/sbin:/sbin:/opt/VRTS/bin:/opt/VRTSvcs/bin:$PATH;export PATH
  MANPATH=/usr/share/man:/opt/VRTS/man; export MANPATH


CONFIGURATION RESEAU

Préparer la configuration Cluster

host1 host2

Adresse IP Persistante 10.xxx.xxx.1 10.xxx.xxx.2

Adresse IP de Service 10.xxx.xxx.3

Adresse IP de HeartBeat 192.168.0.1 192.168.0.2

INSTALLATION DE VCS

L’installation de VCS se fait en 3 phases :

  • Installation de la licence.
  • Test si les systèmes sont éligibles à l’installation.
  • Installation des packages.

Installation de la licence

Installer le package de gestion des licences :

  # rpm -ivh ./cluster_server/rpms/VRTSvlic-3.02.33.5500-0.x86_64.rpm
  # vxlicinst
  Symantec License Manager vxlicinst utility version 3.02.33.0
  Copyright (C) 1996-2007 Symantec Corporation. All rights reserved.
  
  Enter your license key : xxx-xxxx-xxxx-xxxx-xxx
  Number of days left for Demo = 60
  License key successfully installed for VERITAS Storage Foundation Enterprise HA
  License key successfully installed for VERITAS Volume Manager
  License key successfully installed for VERITAS File System
  License key successfully installed for VERITAS Cluster Server

La commande vxlicrep permet de vérifier les licences installées et les fonctionnalités


Vérification des systèmes

Vérifier si les machines sont éligibles à l’installation :

  # cd /opt/VeritasStorageFundation/dvd1-redhatlinux/rhel5_x86_64/cluster_server
  # ./installvcs -precheck host1 host2


Installation du produit

  # cd /opt/VeritasStorageFundation/dvd1-redhatlinux/rhel5_x86_64/cluster_server
  # ./installvcs
  
  Enter the system names separated by spaces on which to install VCS: host1 host2
  Do you want to enter another license key for host1? [y,n,q] (n) n
     
  Enter a VCS license key for host2: xxx-xxxx-xxxx-xxxx-xxx
  xxx-xxxx-xxxx-xxxx-xxx successfully registered on host2

CONFIGURATION INITIALE DU CLUSTER

  #installvcs -configure
  
  Are you ready to configure VCS? [y,n,q] (y) y
  Enter the unique cluster name: [?] clusterTest
  Enter the unique Cluster ID number between 0-65535: [b,?] 1
  
  Enter the NIC for the first private heartbeat link on host1: [b,?] eth1
  eth1 has an IP address configured on it. It could be a public NIC on host1.
  Are you sure you want to use eth1 for the first private heartbeat link? [y,n,q,b,?] (n) y
  Would you like to configure a second private heartbeat link? [y,n,q,b,?] (y) n
  
  Enter the NIC for the low priority heartbeat link on host1: [b,?] eth0
  
  Are you using the same NICs for private heartbeat links on all systems? [y,n,q,b,?] (y) y
  Checking Media Speed for eth1 on   host1 ........................................................ 100Mb/s
  Checking Media Speed for eth1 on host1 ........................................................ 100Mb/s
  Cluster information verification:
       Cluster Name: clusterTest
       Cluster ID Number: 1
       Private Heartbeat NICs for host1: link1=eth1
       Low Priority Heartbeat NIC for host1: link-lowpri=eth0
       Private Heartbeat NICs for host2: link1=eth1
       Low Priority Heartbeat NIC for host2: link-lowpri=eth0
  Is this information correct? [y,n,q] (y) y
  
  Would you like to configure VCS to use Symantec Security Services? [y,n,q] (n) n
  Do you want to set the username and/or password for the Admin user
  (default username = 'admin', password='password')? [y,n,q] (n) n
  Do you want to add another user to the cluster? [y,n,q] (y) n
  Is this information correct? [y,n,q] (y) y
  • Suite à cette pré-configuration, rebooter les nœuds du cluster.

Vérification de l’installation

  • Vérifier que la couche LLT est bien configurée (cette couche logiciel vérifie la connectivité heartbeat des machines)
  # lltstat  -n
  LLT node information:
  Node               State    Links
  * 0 host1          OPEN        2
    1 host2          OPEN        2
  • Vérifier que les nœuds utilisent bien les communications GAB (protocole de communication entre les machines)
  #gabconfig -a
  GAB Port Memberships
  ===============================================================
  Port a gen   583601 membership 01
  Port h gen   583603 membership 01

Signification de l’output:

  • Port a:

Les nœuds utilisent les communications GAB 0 1: les nodes 0 et 1 sont connectés

  • Port h:

VCS est démarré 0 1: les nodes 0 et 1 ont démarré VCS


  • Afficher l’état du cluster :
  # hastatus -summary
  
  -- SYSTEM STATE
  -- System               State                Frozen
  A  host1                RUNNING              0
  A  host2                RUNNING              0
  • Si un des clusters n’a pas démarré, aller sur ce dernier et exécuter la commande hastart
  • Une synthèse plus complète de l’état des nœuds peut être obtenue via la commande:
  hasys -display

CONFIGURATION DU CLUSTER

Le fichier de configuration main.cf

Le fichier de configuration se trouve sous /etc/VRTSvcs/conf/config/main.cf. Il ne faut pas l’éditer manuellement ! Des API existent pour manipuler ce fichier. Il faut au préalable faire une sorte de check-in / check-out du fichier.

  • Passer le fichier on mode read/write
  haconf –makerw


  • Pour pouvoir afficher le fichier correctement (optionnel) :
  hacf -cftocmd config
  hacf -cmdtocf config
  • Pour effectuer une vérification syntaxique du fichier main.cf
  hacf -verify  /etc/VRTSvcs/conf/config


  • Pour valider et écrire la configuration dans le fichier et le passer en readonly :
  haconf -dump –makero

NB : toutes les modifications peuvent être faites alors que le cluster est en fonctionnement.


Sauvegarde de la configuration du cluster

  # hasnap  -backup -f /tmp/sauvegarde_conf_11092008
  Starting Configuration Backup for Cluster clusterTest
  Do you want to dump the VCS Configuration before proceeding? [yes(default),no] yes

Arrêt / Relance de VCS

  • Démarrage :
  hastart
  hastart –force system  (si un système est en ADMIN_WAIT )
  • Arrêt :
  hastop  -all      : arrêt sur tous les systèmes gérés en mise offline des groupes
  hastop –local     : arrêt de vcs sur le système sur lequel on est connecté
  hastop –force     : arrêt de vcs sans mise offline des ressources
  hastop –evacuate  : arrêt du système local avec activation des ressources qui étaient online sur un autre nœud.

Configuration d’un GROUPE DE SERVICE

Un groupe de services est par définition un ensemble de ressources systèmes et applicatives (montages, IP virtuelle, agents applicatifs, etc, etc…). C’est ce groupe qui peut être basculé sur l’ensemble des nœuds d’un cluster. Par définition, il ne peut être actif que sur un seul membre du cluster. En cas de défaillance d’une ou plusieurs ressources d’un groupe, ce dernier est basculé sur le nœud suivant.

Création d'un groupe

  hagrp -add GROUPE_RESEAU
  hagrp -modify GROUPE_RESEAU SystemList -add host1 1 host2 2

NB: 1 et 2 sont les priorités

  # hagrp -list
  GROUPE_RESEAU host1
  GROUPE_RESEAU host2

Configuration des ressources

On va associer au groupe créé une ressource de type IP.

Une ressource est liée à un agent. Un agent est soit intégré (surveillance des IP, des disques, des partage, de l’infrastructure…), soit externe (oracle, pour la réplication baie, etc, etc…). C’est l’agent qui est chargé de « monitorer » et de « gérer » une ressource en fonction de règles de gestion qui lui ont été associées. Il est possible d’écrire son propre agent. Les ressources existantes sont définies avec les attributs dans le fichier : /etc/VRTSvcs/conf/config/types.cf

Ressource de type IP

Cette ressource va permettre de gérer une IP virtuelle entre les deux nœuds du cluster.

Sa définition dans le fichier types.cf est la suivante :

  type IP (
       static keylist SupportedActions = { "device.vfd", "route.vfd" }
       static str ArgList[] = { Device, Address, NetMask, Options }
       str Device
       str Address
       str NetMask
       str Options
  )
  • Création de la ressource. On la définie dans le groupe GROUPE_RESEAU créé préalablement
  # hares -add virtual_IP_clusterTest IP GROUPE_RESEAU
  VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors


  • Modification des attributs de la ressource
  hares -modify virtual_IP_clusterTest Address 10.xxx.xxx.3
  hares -modify virtual_IP_clusterTest Device eth0
  hares -modify virtual_IP_clusterTest NetMask 255.255.254.0


  • « Enable » de la ressource (pour qu’une ressource soit monitorée par vcs, il faut obligatoirement l’activer après sa création)
  hares -modify virtual_IP_clusterTest Enabled 1


  • Mise « online » de la ressource. La mise online de la ressource va l’activer. C'est-à-dire que dans notre exemple, la NIC eth0 va avoir pour IP virtuelle 10.xxx.xxx.3 en plus de 10.xxx.xxx.1 sur la machine sur laquelle on fait le online !
  hares -online virtual_IP_clusterTest -sys host2


Ceci aura aussi pour conséquence de passer le groupe GROUPE_RESEAU online, car c’est la seule ressource du groupe. Si on avait eu plusieurs ressources dans le groupe, le groupe serait passé online uniquement si toutes ses ressources étaient online.

On vérifie :

  hastatus
     
  attempting to connect....connected
  group       resource             	system               message
  --------------- -------------------- -------------------- --------------------
                                    		host1       RUNNING
                                    		host2       RUNNING
  GROUPE_RESEAU                          	 	host1      OFFLINE
  GROUPE_RESEAU                          	 	host2      ONLINE
  -------------------------------------------------------------------------
  VCShmg                              	        host1       OFFLINE
  VCShmg                               	        host2       OFFLINE
               virtual_IP_clusterTest          host1       OFFLINE
               virtual_IP_clusterTest          host2       ONLINE
               VCShm                	        host1       ONLINE
               VCShm                	        host2       ONLINE


Et on a bien évidemment l’IP virtuelle sur host2:

  [root@host2 tmp]# ifconfig -a |grep eth0
  eth0      Link encap:Ethernet  HWaddr 00:50:56:AE:0E:FD
  eth0:0    Link encap:Ethernet  HWaddr 00:50:56:AE:0E:FD

Bascule manuelle

On provoque manuellement l’arrêt du groupe sur host2 avec activation sur host1 :

  hagrp -offline GROUPE_RESEAU-sys host2
  hagrp -online GROUPE_RESEAU-sys host1
Outils personnels
Navigation