Mise en place d'un cluster lvm à partir d'un stockage iscsi partagé.

L'instal s'est déroulée sur des vmwares. Bien que n'étant plus trop friand de cette techno, elle me rend encore des services et m'évite surtout à basculer toutes mes VM sur Xen ou Virtualbox Il faut savoir en effet que le support/développement de vmware-server-2.0 s'est arrếté en octobre 2009 et que depuis son fonctionnement n'est assuré qu'à coups de patchs que des bénévoles prennent le temps de développer. Ca passe encore sur la série des noyaux 2.6.32 mais AMHA ça ne survivra pas aux prochains.

Les machine utilisées ont déjà servi à d'autres tests et je n'ai eu qu'à ajouter les composants nécessaires et à googliser un max tout de même :)

J'utiliserais 2 machines pour constituer le cluster LVM et une autre pour me fournir "l'équivalent" d'un SAN à savoir un initiator iscsi.


********* MACHINE 1  Noeud du cluster *********************************************************


smbldap:/# cat /etc/issue.net
Debian GNU/Linux 6.0

smbldap:/# uname -a
Linux smbldap 2.6.32-5-amd64 #1 SMP Tue Jun 14 09:42:28 UTC 2011 x86_64 GNU/Linux

smbldap:/# free
             total       used       free     shared    buffers     cached
Mem:        379912     361992      17920          0      42528     220728
-/+ buffers/cache:      98736     281176
Swap:       409616        788     408828

smbldap:/# df -hTa
Sys. fich.    Type  Taille  Uti. Disp. Uti% Monté sur
/dev/sda1     ext3    7,5G  1,6G  5,6G  23% /
tmpfs        tmpfs    186M     0  186M   0% /lib/init/rw
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
udev         tmpfs    181M  136K  181M   1% /dev
tmpfs        tmpfs    186M   16M  171M   9% /dev/shm
devpts      devpts       0     0     0   -  /dev/pts
/dev/sdc1     ext3    496M  152M  320M  33% /home
/dev/mapper/VGDATAS-DATAS
              ext3    689M   18M  637M   3% /srv
none      configfs       0     0     0   -  /sys/kernel/config

smbldap:/# ifconfig|grep 192
          inet adr:192.168.0.62  Bcast:192.168.0.255  Masque:255.255.255.0


********* MACHINE 2 Noeud du cluster **********************************************************

raid:/# cat /etc/issue.net
Debian GNU/Linux 6.0


raid:/# uname -a
Linux raid 2.6.32-5-amd64 #1 SMP Tue Jun 14 09:42:28 UTC 2011 x86_64 GNU/Linux

raid:/# free
             total       used       free     shared    buffers     cached
Mem:        250896     236940      13956          0      18780     150800
-/+ buffers/cache:      67360     183536
Swap:       240932          0     240932
 
raid:/# df -hTa
Sys. fich.    Type  Taille  Uti. Disp. Uti% Monté sur
/dev/sda1     ext3    3,8G  3,2G  422M  89% /
tmpfs        tmpfs    123M     0  123M   0% /lib/init/rw
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
udev         tmpfs    118M  140K  118M   1% /dev
tmpfs        tmpfs    123M   16M  108M  13% /dev/shm
devpts      devpts       0     0     0   -  /dev/pts
/dev/sdc1     ext3   1008M  644M  313M  68% /var
/dev/sdd1     ext3    1,5G  920M  510M  65% /usr/src
/dev/sde1     ext3    7,9G  1,7G  5,9G  22% /home
nfsd          nfsd       0     0     0   -  /proc/fs/nfsd
/dev/mapper/VGDATAS-DATAS
              ext3    985M   18M  918M   2% /srv
none      configfs       0     0     0   -  /sys/kernel/config

raid:/# ifconfig | grep 192
          inet adr:192.168.0.16  Bcast:192.168.0.255  Masque:255.255.255.0


On constate que lvm2 était déjà installé sur ces machines. Cela ne change rien puisqu'on va utiliser un autre VG pour les tests.

************ MACHINE 3  Hôte iscsi *********************************************************************************
deb260:~# cat /etc/issue.net
Debian GNU/Linux 6.0

deb260:~# uname -a
Linux deb260 2.6.32-5-686 #1 SMP Mon Jun 13 04:13:06 UTC 2011 i686 GNU/Linux

deb260:~# free
             total       used       free     shared    buffers     cached
Mem:        421108     384372      36736          0     278724      85028
-/+ buffers/cache:      20620     400488
Swap:       498004          0     498004

deb260:~# df -hTa
Sys. fich.    Type  Taille  Uti. Disp. Uti% Monté sur
/dev/sda1     ext3    1,9G  1,4G  378M  79% /
tmpfs        tmpfs    206M     0  206M   0% /lib/init/rw
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
udev         tmpfs     10M   88K   10M   1% /dev
tmpfs        tmpfs    206M     0  206M   0% /dev/shm
devpts      devpts       0     0     0   -  /dev/pts
/dev/sda5     ext3    464M  333M  107M  76% /usr/share
/dev/sdc1     ext3    7,9G  2,7G  4,9G  36% /usr/lib/oracle
/dev/sdd1     ext3    1,1G  506M  514M  50% /var/cache
deb260:~#

deb260:/# ifconfig|grep 192
          inet adr:192.168.0.26  Bcast:192.168.0.255  Masque:255.255.255.0



********** PAQUETS COMMUNS A MACHINE 1 et 2 *************************************************************************
raid:/mnt# dpkg -l clvm cman gfs2-tools open-iscsi
========================================================================================================
ii  clvm                                         2.02.66-5                                    Cluster LVM Daemon for lvm2
ii  cman                                         3.0.12-2                                     Red Hat cluster suite - cluster manager
ii  gfs2-tools                                   3.0.12-2                                     Red Hat cluster suite - global file system 2 tools
ii  lvm2                                         2.02.66-5                                    The Linux Logical Volume Manager
ii  open-iscsi                                   2.0.871.3-2squeeze1                          High performance, transport independent iSCSI implementation



Mes différentes recherches m'ont appris qu'il fallait installer cman sur les 2 noeuds du cluster et lvm2 bien sûr. Le jeu des dépendances faisant le reste voici la ligne de commande:

raid:/# apt-get install cman, clvm, lvm2, open-iscsi, gfs2-tools
smbldap:/# apt-get install cman, clvm, lvm2, open-iscsi, gfs2-tools

Je configure ensuite chacun des noeuds dans le fichier /etc/default/cman et dans le fichier cluster.conf:

raid:/etc/default# cat cman
CLUSTERNAME="CLUSDATAS"
NODENAME="raid"
USE_CCS="yes"
CLUSTER_JOIN_TIMEOUT=300
CLUSTER_JOIN_OPTIONS=""
CLUSTER_SHUTDOWN_TIMEOUT=60


raid:/etc/cluster# cat cluster.conf
<cluster name="CLUSDATAS" config_version="1">
               <clusternodes>
               <clusternode name="smbldap" nodeid="1">
               </clusternode>

               <clusternode name="raid" nodeid="2">
               </clusternode>

               </clusternodes>
</cluster>


smbldap:/etc/default# cat cman
CLUSTERNAME="CLUSDATAS"
NODENAME="smbldap"
USE_CCS="yes"
CLUSTER_JOIN_TIMEOUT=300
CLUSTER_JOIN_OPTIONS=""
CLUSTER_SHUTDOWN_TIMEOUT=60

Si vous ne disposez pas d'un dns local, il faudra ajouter les noms de machines dans les fichiers hosts respectifs.

Et je démarre cman sur les 2 nodes:

smbldap:/etc/cluster# /etc/init.d/cman start
Starting cluster:
   Checking Network Manager... [  OK  ]
   Global setup... [  OK  ]
   Loading kernel modules... [  OK  ]
   Mounting configfs... [  OK  ]
   Starting cman... [  OK  ]
   Waiting for quorum... [  OK  ]
   Starting fenced... [  OK  ]
   Starting dlm_controld... [  OK  ]
   Starting gfs_controld... [  OK  ]
   Unfencing self... [  OK  ]
   Joining fence domain... [  OK  ]

smbldap:/var/log/cluster# tail -f *
==> corosync.log <==
Aug 21 18:19:17 corosync [CLM   ]     r(0) ip(192.168.0.62)
Aug 21 18:19:17 corosync [CLM   ] Members Left:
Aug 21 18:19:17 corosync [CLM   ] Members Joined:
Aug 21 18:19:17 corosync [CLM   ]     r(0) ip(192.168.0.16)
Aug 21 18:19:17 corosync [TOTEM ] A processor joined or left the membership and a new membership was formed.
Aug 21 18:19:17 corosync [CMAN  ] quorum regained, resuming activity
Aug 21 18:19:17 corosync [QUORUM] This node is within the primary component and will provide service.
Aug 21 18:19:17 corosync [QUORUM] Members[2]: 1 2
Aug 21 18:19:17 corosync [QUORUM] Members[2]: 1 2
Aug 21 18:19:17 corosync [MAIN  ] Completed service synchronization, ready to provide service.

==> dlm_controld.log <==
Aug 21 18:19:19 dlm_controld dlm_controld 3.0.12 started

==> fenced.log <==
Aug 21 18:19:19 fenced fenced 3.0.12 started

==> gfs_controld.log <==
Aug 21 18:19:19 gfs_controld gfs_controld 3.0.12 started



raid:/etc/cluster# /etc/init.d/cman start
Starting cluster:
   Checking Network Manager... [  OK  ]
   Global setup... [  OK  ]
   Loading kernel modules... [  OK  ]
   Mounting configfs... [  OK  ]
   Starting cman... [  OK  ]
   Waiting for quorum... [  OK  ]
   Starting fenced... [  OK  ]
   Starting dlm_controld... [  OK  ]
   Starting gfs_controld... [  OK  ]
   Unfencing self... [  OK  ]
   Joining fence domain... [  OK  ]

raid:/var/log/cluster# ll
total 28
drwxr-xr-x  2 root root 4096 21 août  18:20 .
drwxr-xr-x 14 root root 4096 21 août  17:58 ..
-rw-r--r--  1 root root 4306 21 août  18:19 corosync.log
-rw-r--r--  1 root root   57 21 août  18:20 dlm_controld.log
-rw-rw-rw-  1 root root   45 21 août  18:20 fenced.log
-rw-r--r--  1 root root   57 21 août  18:20 gfs_controld.log

raid:/var/log/cluster# tail -f *
==> corosync.log <==
Aug 21 18:19:45 corosync [CLM   ]     r(0) ip(192.168.0.62)
Aug 21 18:19:45 corosync [CLM   ] Members Left:
Aug 21 18:19:45 corosync [CLM   ] Members Joined:
Aug 21 18:19:45 corosync [CLM   ]     r(0) ip(192.168.0.62)
Aug 21 18:19:45 corosync [TOTEM ] A processor joined or left the membership and a new membership was formed.
Aug 21 18:19:45 corosync [CMAN  ] quorum regained, resuming activity
Aug 21 18:19:45 corosync [QUORUM] This node is within the primary component and will provide service.
Aug 21 18:19:45 corosync [QUORUM] Members[2]: 1 2
Aug 21 18:19:45 corosync [QUORUM] Members[2]: 1 2
Aug 21 18:19:45 corosync [MAIN  ] Completed service synchronization, ready to provide service.

==> dlm_controld.log <==
Aug 21 18:20:11 dlm_controld dlm_controld 3.0.12 started

==> fenced.log <==
Aug 21 18:20:11 fenced fenced 3.0.12 started

==> gfs_controld.log <==
Aug 21 18:20:11 gfs_controld gfs_controld 3.0.12 started


A priori tout se passe bien.

Quelques petites vérifs tout de même:

D'un côté...

raid:/# cman_tool nodes -a
Node  Sts   Inc   Joined               Name
   1   M     68   2011-08-22 17:02:41  smbldap
       Addresses: 192.168.0.62
   2   M     64   2011-08-22 17:02:41  raid
       Addresses: 192.168.0.16


Puis de l'autre:

smbldap:/# cman_tool status
Version: 6.2.0
Config Version: 1
Cluster Name: CLUSDATAS
Cluster Id: 37133
Cluster Member: Yes
Cluster Generation: 8
Membership state: Cluster-Member
Nodes: 2
Expected votes: 2
Total votes: 2
Node votes: 1
Quorum: 2 
Active subsystems: 7
Flags:
Ports Bound: 0 
Node name: smbldap
Node ID: 1
Multicast addresses: 239.192.145.158
Node addresses: 192.168.0.62

Passons maintenant à l'hôte iscsi.

La config de l'initiator:

deb260:/etc/iet# dpkg -l iscsitarget*

||/ Nom                                          Version                                      Description
+++-============================================-============================================-===================================================================
ii  iscsitarget                                  1.4.20.2-1                                   iSCSI Enterprise Target userland tools
ii  iscsitarget-dkms                             1.4.20.2-1                                   iSCSI Enterprise Target kernel module source - dkms version


Résumé des opérations:

deb260:/etc/init.d# apt-get install iscsitarget-dkms
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
  coreutils dkms libattr1
Paquets recommandés :
  fakeroot
Les NOUVEAUX paquets suivants seront installés :
  dkms iscsitarget-dkms
Les paquets suivants seront mis à jour :
  coreutils libattr1
2 mis à jour, 2 nouvellement installés, 0 à enlever et 442 non mis à jour.
Il est nécessaire de prendre 142ko/4762ko dans les archives.
Après dépaquetage, 2560ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?
Réception de : 1 http://192.168.0.155 squeeze/main dkms 2.1.1.2-5 [71,3kB]
Réception de : 2 http://192.168.0.155 squeeze/main iscsitarget-dkms 1.4.20.2-1 [70,9kB]
142ko réceptionnés en 0s (328ko/s)    
(Lecture de la base de données... 77250 fichiers et répertoires déjà installés.)
Préparation du remplacement de libattr1 2.4.32-1 (en utilisant .../libattr1_1%3a2.4.44-2_i386.deb) ...
Dépaquetage de la mise à jour de libattr1 ...
Paramétrage de libattr1 (1:2.4.44-2) ...
(Lecture de la base de données... 77249 fichiers et répertoires déjà installés.)
Préparation du remplacement de coreutils 5.97-5.3 (en utilisant .../coreutils_8.5-1_i386.deb) ...
install-info: warning: maintainer scripts should not call install-info anymore,
install-info: warning: this is handled now by a dpkg trigger provided by the
install-info: warning: install-info package; package coreutils should be updated.
Dépaquetage de la mise à jour de coreutils ...
Remplacement de fichiers dans l'ancien paquet mktemp ...
Paramétrage de coreutils (8.5-1) ...
Sélection du paquet dkms précédemment désélectionné.
(Lecture de la base de données... 77270 fichiers et répertoires déjà installés.)
Dépaquetage de dkms (à partir de .../dkms_2.1.1.2-5_all.deb) ...
Sélection du paquet iscsitarget-dkms précédemment désélectionné.
Dépaquetage de iscsitarget-dkms (à partir de .../iscsitarget-dkms_1.4.20.2-1_all.deb) ...
Paramétrage de dkms (2.1.1.2-5) ...
Paramétrage de iscsitarget-dkms (1.4.20.2-1) ...

Creating symlink /var/lib/dkms/iscsitarget/1.4.20.2/source ->
                 /usr/src/iscsitarget-1.4.20.2

DKMS: add Completed.

Kernel preparation unnecessary for this kernel.  Skipping...
applying patch compat-2.6.32.patch...patching file kernel/conn.c


Building module:
cleaning build area....(bad exit status: 2)
make KERNELRELEASE=2.6.32-5-686 -C /lib/modules/2.6.32-5-686/build M=/var/lib/dkms/iscsitarget/1.4.20.2/build.......
cleaning build area....(bad exit status: 2)

DKMS: build Completed.

iscsi_trgt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/2.6.32-5-686/updates/dkms/

depmod....

DKMS: install Completed.



deb260:/etc/init.d# apt-get install iscsitarget
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Les paquets supplémentaires suivants seront installés :
  lsb-base
Paquets suggérés :
  iscsitarget-source
Paquets recommandés :
  iscsitarget-module
Les paquets suivants seront mis à jour :
  iscsitarget lsb-base
2 mis à jour, 0 nouvellement installés, 0 à enlever et 440 non mis à jour.
Il est nécessaire de prendre 0o/89,9ko dans les archives.
Après dépaquetage, 57,3ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?
(Lecture de la base de données... 77377 fichiers et répertoires déjà installés.)
Préparation du remplacement de lsb-base 3.1-23.2etch1 (en utilisant .../lsb-base_3.2-23.2squeeze1_all.deb) ...
Dépaquetage de la mise à jour de lsb-base ...
Paramétrage de lsb-base (3.2-23.2squeeze1) ...
(Lecture de la base de données... 77377 fichiers et répertoires déjà installés.)
Préparation du remplacement de iscsitarget 0.4.15+svn145-1~bpo40+1 (en utilisant .../iscsitarget_1.4.20.2-1_i386.deb) ...
Removing iSCSI enterprise target devices: succeeded.
Stopping iSCSI enterprise target service: succeeded.
Removing iSCSI enterprise target modules: succeeded.
Dépaquetage de la mise à jour de iscsitarget ...
Paramétrage de iscsitarget (1.4.20.2-1) ...
Installation de la nouvelle version du fichier de configuration /etc/init.d/iscsitarget ...
Moving config /etc/ietd.conf to new location /etc/iet/
Moving config /etc/initiators.allow to new location /etc/iet/
Moving config /etc/initiators.deny to new location /etc/iet/
iscsitarget not enabled in "/etc/default/iscsitarget", not starting... ... (warning).
deb260:/etc/init.d# vi /etc/default/iscsitarget

Devinez ce que je modifie.... :)


deb260:/etc/init.d# ./iscsitarget start
Starting iSCSI enterprise target service:.
.
deb260:/etc/init.d# netstat -tpan
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name  
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     2062/inetd         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     2072/sshd          
tcp        0      0 0.0.0.0:3260            0.0.0.0:*               LISTEN     3250/ietd          
tcp        0      0 192.168.0.26:22         192.168.0.22:35648      ESTABLISHED2144/0             
tcp6       0      0 :::3260                 :::*                    LISTEN     3250/ietd          

C'est bon.


deb260:/etc/iet# ll
total 28
drwxr-xr-x   2 root root 4096 22 août  15:16 .
drwxr-xr-x 105 root root 8192 22 août  15:16 ..
-rw-------   1 root root 2057  9 mars   2008 ietd.conf
-rw-r--r--   1 root root  327  2 nov.   2007 initiators.allow
-rw-r--r--   1 root root  580  2 nov.   2007 initiators.deny
-rw-r--r--   1 root root  864 16 sept.  2009 targets.allow


deb260:/etc/iet# cat /etc/iet/ietd.conf  | egrep -v '.#|^#|^$'
Target iqn.2008-03.caen.net:storage.disk2.sys1.xyz
    Lun 0 Path=/dev/sdb,Type=fileio
    Alias iSCSI
    InitialR2T        Yes

On voit ici que j'ai dédié le disque /dev/sdb à cet usage:

deb260:/etc/iet# cat /proc/partitions
major minor  #blocks  name

   8        0    4192965 sda
   8        1    1951866 sda1
   8        2     498015 sda2
   8        3          1 sda3
   8        5     489951 sda5
   8        6     489951 sda6
   8        7     763056 sda7
   8       16     524288 sdb
   8       17     522081 sdb1
   8       32    8388608 sdc
   8       33    8385898 sdc1
   8       48    2097152 sdd
   8       49    1116486 sdd1
   8       50     979965 sdd2


C'est terminé pour l'initiator.

Revenons à notre cluster.

Il va falloir connecter le périphérique exporté par iscsi à nos 2 noeuds.

Je lance donc :

smbldap:~# /etc/init.d/open-iscsi start
Starting iSCSI initiator service: iscsid.
Setting up iSCSI targets:
iscsiadm: No records found!
.
Mounting network filesystems:.

En clair il ne voit rien. Pas grave on va l'aider un peu:

smbldap:/# iscsiadm -m discovery -t st -p 192.168.0.26 -l -d 8

Le -d8 génére pas mal de lignes. J'abrège ici  (pour le détail c'est là )

......
iscsiadm: found 192.168.0.26,3260,1
......

192.168.0.26:3260,1 iqn.2008-03.caen.net:storage.disk2.sys1.xyz
Logging in to [iface: default, target: iqn.2008-03.caen.net:storage.disk2.sys1.xyz, portal: 192.168.0.26,3260]
Login to [iface: default, target: iqn.2008-03.caen.net:storage.disk2.sys1.xyz, portal: 192.168.0.26,3260]: successful

De fait un nouveau périph est apparu: /dev/sdd

smbldap:/var/log# cat /proc/partitions
major minor  #blocks  name

   8        0    8388608 sda
   8        1    7976241 sda1
   8        2          1 sda2
   8        5     409626 sda5
   8       16    1048576 sdb
   8       17    1044193 sdb1
   8       32     524288 sdc
   8       33     524272 sdc1
   8       48     524288 sdd
   8       49     522081 sdd1

Et le fichier /var/log/messages me le confirme:

smbldap:/var/log# tail messages
Aug 21 20:10:32 smbldap kernel: [239923.277499] iscsi: registered transport (tcp)
Aug 21 20:10:32 smbldap kernel: [239923.371945] iscsi: registered transport (iser)
Aug 21 20:22:21 smbldap kernel: [240632.458982] scsi3 : iSCSI Initiator over TCP/IP
Aug 21 20:22:22 smbldap kernel: [240632.786840] scsi 3:0:0:0: Direct-Access     IET      VIRTUAL-DISK     0    PQ: 0 ANSI: 4
Aug 21 20:22:22 smbldap kernel: [240632.788099] sd 3:0:0:0: Attached scsi generic sg4 type 0
Aug 21 20:22:22 smbldap kernel: [240632.792950] sd 3:0:0:0: [sdd] 1048576 512-byte logical blocks: (536 MB/512 MiB)
Aug 21 20:22:22 smbldap kernel: [240632.794427] sd 3:0:0:0: [sdd] Write Protect is off
Aug 21 20:22:22 smbldap kernel: [240632.795108] sd 3:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Aug 21 20:22:22 smbldap kernel: [240632.796042]  sdd: sdd1
Aug 21 20:22:22 smbldap kernel: [240632.799579] sd 3:0:0:0: [sdd] Attached SCSI disk

Je répête la même opération sur la machine nommé raid.

Je configure ensuite le lvm depuis l'un des 2 noeuds

smbldap:/# pvcreate /dev/sdd1
smbldap:/# vgcreate CLUSDATAS /dev/sdd1
smbldap:/# lvcreate -n CLDATAS -L 400M  CLUSDATAS

Je crée ensuite un système de fichiers gfs2 sur ce LV

smbldap:/# mkfs.gfs2 -t CLUSDATAS:CLDATAS -j2 -p lock_dlm /dev/CLUSDATAS/CLDATAS
This will destroy any data on /dev/CLUSDATAS/CLDATAS.
It appears to contain: symbolic link to `../dm-0'

Are you sure you want to proceed? [y/n] y

Device:                    /dev/CLUSDATAS/CLDATAS
Blocksize:                 4096
Device Size                0,39 GB (102400 blocks)
Filesystem Size:           0,39 GB (102397 blocks)
Journals:                  2
Resource Groups:           2
Locking Protocol:          "lock_dlm"
Lock Table:                "CLUSDATAS:CLDATAS"
UUID:                      F7FCC062-0B2F-325D-0444-E347798E283B


Et je démarre (ou plutôt tente de démarrer le demon clvm) depuis l'autre machine:

raid:~# /etc/init.d/clvm start
Starting Cluster LVM Daemon: clvmclvmd could not create local socket
Another clvmd is probably already running
 failed!
Activating all VGs.
  connect() failed on local socket: Aucun fichier ou dossier de ce type
  Internal cluster locking initialisation failed.
  WARNING: Falling back to local file-based locking.
  Volume Groups with the clustered attribute will be inaccessible.
  1 logical volume(s) in volume group "CLUSDATAS" now active
  1 logical volume(s) in volume group "VGDATAS" now active


Pas bon => Recherches => Soluces:

1) raid:/# grep locking_type /etc/lvm/lvm.conf
    locking_type = 3
    # NB. This option only affects locking_type = 1 viz. local file-based
    # The external locking library to load if locking_type is set to 2.

2) Créer à la mano (!) un répertoire lvm dans /var/run:
raid:/# mkdir -p /var/run/lvm

Et ça fonctionne tout de suite mieux:

raid:/var/run# /etc/init.d/clvm start
Starting Cluster LVM Daemon: clvm.
Activating all VGs.
  1 logical volume(s) in volume group "CLUSDATAS" now active
  1 logical volume(s) in volume group "VGDATAS" now active


Les logs correspondants:

Aug 21 20:37:08 raid kernel: [21888.816805] DLM (built Jun 14 2011 09:04:22) installed
Aug 21 20:37:08 raid corosync[5464]:   [MAIN  ] Corosync Cluster Engine ('1.2.1'): started and ready to provide service.
Aug 21 20:37:08 raid corosync[5464]:   [MAIN  ] Corosync built-in features: nss
Aug 21 20:37:08 raid corosync[5464]:   [MAIN  ] Successfully read config from /etc/cluster/cluster.conf
Aug 21 20:37:08 raid corosync[5464]:   [MAIN  ] Successfully parsed cman config
Aug 21 20:37:08 raid corosync[5464]:   [MAIN  ] Successfully configured openais services to load
Aug 21 20:37:08 raid corosync[5464]:   [TOTEM ] Initializing transport (UDP/IP).
Aug 21 20:37:08 raid corosync[5464]:   [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
Aug 21 20:37:09 raid corosync[5464]:   [TOTEM ] The network interface [192.168.0.16] is now up.
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] Using quorum provider quorum_cman
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync cluster quorum service v0.1
Aug 21 20:37:09 raid corosync[5464]:   [CMAN  ] CMAN 3.0.12 (built Jul  2 2010 09:55:14) started
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync CMAN membership service 2.90
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: openais cluster membership service B.01.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: openais event service B.01.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: openais checkpoint service B.01.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: openais message service B.03.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: openais distributed locking service B.03.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: openais timer service A.01.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync extended virtual synchrony service
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync configuration service
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync cluster closed process group service v1.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync cluster config database access v1.01
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync profile loading service
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] Using quorum provider quorum_cman
Aug 21 20:37:09 raid corosync[5464]:   [SERV  ] Service engine loaded: corosync cluster quorum service v0.1
Aug 21 20:37:09 raid corosync[5464]:   [MAIN  ] Compatibility mode set to whitetank.  Using V1 and V2 of the synchronization engine.
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] CLM CONFIGURATION CHANGE
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] New Configuration:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Left:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Joined:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] CLM CONFIGURATION CHANGE
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] New Configuration:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] ^Ir(0) ip(192.168.0.16)
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Left:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Joined:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] ^Ir(0) ip(192.168.0.16)
Aug 21 20:37:09 raid corosync[5464]:   [TOTEM ] A processor joined or left the membership and a new membership was formed.
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] Members[1]: 2
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] Members[1]: 2
Aug 21 20:37:09 raid corosync[5464]:   [MAIN  ] Completed service synchronization, ready to provide service.
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] CLM CONFIGURATION CHANGE
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] New Configuration:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] ^Ir(0) ip(192.168.0.16)
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Left:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Joined:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] CLM CONFIGURATION CHANGE
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] New Configuration:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] ^Ir(0) ip(192.168.0.16)
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] ^Ir(0) ip(192.168.0.62)
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Left:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] Members Joined:
Aug 21 20:37:09 raid corosync[5464]:   [CLM   ] ^Ir(0) ip(192.168.0.62)
Aug 21 20:37:09 raid corosync[5464]:   [TOTEM ] A processor joined or left the membership and a new membership was formed.
Aug 21 20:37:09 raid corosync[5464]:   [CMAN  ] quorum regained, resuming activity
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] This node is within the primary component and will provide service.
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] Members[2]: 1 2
Aug 21 20:37:09 raid corosync[5464]:   [QUORUM] Members[2]: 1 2
Aug 21 20:37:09 raid corosync[5464]:   [MAIN  ] Completed service synchronization, ready to provide service.
Aug 21 20:37:11 raid fenced[5516]: fenced 3.0.12 started
Aug 21 20:37:11 raid dlm_controld[5528]: dlm_controld 3.0.12 started
Aug 21 20:37:11 raid gfs_controld[5542]: gfs_controld 3.0.12 started
Aug 21 20:38:44 raid kernel: [21984.302447] kjournald starting.  Commit interval 5 seconds
Aug 21 20:38:44 raid kernel: [21984.303022] EXT3 FS on dm-0, internal journal
Aug 21 20:38:44 raid kernel: [21984.303026] EXT3-fs: mounted filesystem with ordered data mode.
Aug 21 20:44:57 raid clvmd: Cluster LVM daemon started - connected to CMAN



Il ne reste plus qu'à monter la ressource:

raid:~# mount -t gfs2 /dev/CLUSDATAS/CLDATAS /mnt

raid:/# mount | grep mnt
/dev/dm-1 on /mnt type gfs2 (rw,relatime,hostdata=jid=1)


Je fais la même chose sur l'autre noeud:

smbldap:/# mount | grep mnt
/dev/dm-0 on /mnt type gfs2 (rw,relatime,hostdata=jid=0)


Quelques tests:

raid:~# cd /mnt
raid:/mnt# ll
total 8
drwxr-xr-x  2 root root 3864 22 août  17:01 .
drwxr-xr-x 23 root root 4096  2 avril 19:18 ..

raid:/mnt# touch toto
raid:/mnt# ll
total 12
drwxr-xr-x  2 root root 3864 22 août  17:09 .
drwxr-xr-x 23 root root 4096  2 avril 19:18 ..
-rw-r--r--  1 root root    0 22 août  17:09 toto


smbldap:/mnt# ll
total 12
drwxr-xr-x  2 root root 3864 22 août   2011 .
drwxr-xr-x 22 root root 4096 24 juil. 17:29 ..
-rw-r--r--  1 root root    0 22 août   2011 toto

smbldap:/mnt# echo test > toto

raid:/mnt# cat toto
test

C'est tout bon.

Après... c'est à chacun de voir l'utilisation. On peut par exemple monter un samba sur chacun des noeuds du cluster et faire pointer le partage sur le LV. Ou tout simplement faire pointer le home des utilisateurs sur celui-ci sachant qu'on ne risque pas de manquer de place puisque lvm est fait pour ça.


Liens:

http://www.stealthisblog.fr/2008/03/20/lvm-fonctionnement-mise-en-place/

http://www.redhat.com/magazine/006apr05/features/gfs/

http://markmail.org/message/ewzybbt5l5ghsuir#query:clvm%20cman%20iscsi+page:1+mid:vvtyqr6vwdmajrnk+state:results

http://forum.hardware.fr/hfr/OSAlternatifs/Logiciels-2/resolu-iscsi-multipath-sujet_70772_1.htm