HA + DRBD

From Tuxunix
Jump to: navigation, search

DRBD (RH6)

Ajout depot :

#> wget http://dl.atrpms.net/el6-x86_64/atrpms/stable/atrpms-repo-6-5.el6.x86_64.rpm
#> rpm -Uvh atrpms-repo*rpm
#> yum install drbd
============================================================================================================================================================
Package                                        Arch                     Version                               Repository                              Size
============================================================================================================================================================
Installing:
drbd                                           x86_64                   8.4.0-31.el6                          atrpms                                 275 k
Installing for dependencies:
drbd-kmdl-2.6.32-220.7.1.el6                   x86_64                   8.4.0-31.el6                          atrpms                                 138 k
kernel                                         x86_64                   2.6.32-220.7.1.el6                    rhel-x86_64-server-6                    24 M
Updating for dependencies:
kernel-firmware                                noarch                   2.6.32-220.17.1.el6                   rhel-x86_64-server-6                   6.3 M

Transaction Summary
============================================================================================================================================================
Install       3 Package(s)
Upgrade       1 Package(s)

Total download size: 31 M
Is this ok [y/N]: y
#> reboot

...

[root@serverTest1 ~]# /etc/init.d/drbd start
Starting DRBD resources:

 --==  Thank you for participating in the global usage survey  ==--
The server's response is:

you are the 4508th user to install this version
no resources defined!
[root@serverTest1 ~]# lsmod | grep drbd
drbd                  304553  0
libcrc32c               1246  1 drbd
[root@serverTest1 ~]# cat /proc/drbd
version: 8.4.0 (api:1/proto:86-100)
GIT-hash: 28753f559ab51b549d16bcf487fe625d5919c49c build by gardner@, 2012-03-08 03:57:48


Configuration

initialisation disque

mkfs.ext4 /dev/sdb
EOF fdisk /dev/sdb n
p
1

 
w <<EOF

DRBD

mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.sample
  • Creer un nouveau fichier :
# vi /etc/drbd.d/global_common.conf

global { usage-count no; }
common {
 syncer { rate 10M; }
}
  • Creer un fichier de ressource (paramétre host + disque)
/etc/drbd.d/main.res
resource main {

protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }

on serverTest1 {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address X.X.X.X:7788;
}

on serverTest2 {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address X.X.X.X:7788;
}

}
  • Creation des métadatas sur les 2 serveurs :
[root@serverTest1]# drbdadm create-md main
[root@serverTest2]# drbdadm create-md main
  • Start DRBD
[root@serverTest1 drbd.d]# service drbd start
Starting DRBD resources: [ d(main) s(main) n(main) ].
[root@serverTest2 drbd.d]# service drbd start
Starting DRBD resources: [ d(main) s(main) n(main) ].


  • Syncrho sur le server1:
# drbdsetup /dev/drbd0 primary --force=yes
version: 8.4.0 (api:1/proto:86-100)
GIT-hash: 28753f559ab51b549d16bcf487fe625d5919c49c build by gardner@, 2012-03-08 03:57:48
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
   ns:710656 nr:0 dw:0 dr:711320 al:0 bm:41 lo:0 pe:7 ua:0 ap:0 ep:1 wo:b oos:3488412
       [==>.................] sync'ed: 16.9% (3488412/4191900)K
       finish: 0:00:59 speed: 58,624 (58,624) K/sec
  • A la fin de la syncrho on formate le disque :

Sur le server1:

# mkfs.ext4 /dev/drbd0
  • deplacer le répertoire pgsql sur le disque drbd
#> mount /dev/drbd0 /mnt
#> mv /var/lib/pgsql/* /mnt
#> umount /mnt

Au niveau du FSTAB sur les 2 serveurs ajouter cette ligne :

/dev/drbd0      /var/lib/pgsql                       ext4    defaults,noauto        0 0

Hearbeat (RH6)

  • Attention penser à désactiver SELINUX!!

Ajout depot :

#> wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-6.noarch.rpm
#> rpm -Uvh epel-release*rpm
#> yum install heartbeat

Si erreur dependance :

cat <<EOF > /etc/yum.repo.d/slinux.repo
[scientific-linux]
name=Scientific Linux
baseurl=http://ftp.scientificlinux.org/linux/scientific/6/x86_64/os/
enabled=0
EOF
yum check-update
yum --nogpg install cluster-glue*

Configuration

  • Ajouter le fichier "ha.cf" sous le répertoire : "/etc/ha.d" sur les 2 serveurs
keepalive 2
deadtime 30
bcast eth0
node serverTest1 serverTest2
debugfile /var/log/ha-debug
logfile /var/log/ha-log
  • Ajouter le fichier "haresources" sous le répertoire : "/etc/ha.d" (server1)
serverTest1 IPaddr::X.X.X.X/25/eth0 drbddisk::main Filesystem::/dev/drbd0::/var/lib/pgsql::ext4 postgresql
  • Ajouter le fichier "haresources" sous le répertoire : "/etc/ha.d" (server2)
serverTest2 IPaddr::X.X.X.X/25/eth0 drbddisk::main Filesystem::/dev/drbd0::/var/lib/pgsql::ext4 postgresql


Problèmatique rencontré

Lors d'une bascule postgresql ne démarre pas:

ResourceManager[7003]:  2012/05/21_12:42:52 info: Running /etc/init.d/postgresql  start
ResourceManager[7003]:  2012/05/21_12:42:59 ERROR: Return code 1 from /etc/init.d/postgresql

Solution => Désactiver Selinux.