>_Alta disponibilidade – CentOS 6 – configurando os pacotes DRBD + Gfs2 1.1

Fala galera! Antes de mais nada eu preciso escrever isso:

CentOS – Um ótimo Sistemas Operacional!

NODES

node-1 ( Princípal)
fqdn = centos-1.gnullinuxbr.com
eth0 = 192.168.1.21
eth1 = 10.0.20.1
eth2 = não configurada
Partição usada pelo DRBD /dev/sda5 /MYSQL

node -2
fqdn = centos-2.gnulinuxbr.com
eth0 = 192.168.1.22
eth1 = 10.0.20.2
eth2 = não configurada
Partição usada pelo DRBD /dev/sda5 /MYSQL

1 – Primeiro passo vamos instalar os pacotes de cluster do RedHat em ambos servidores.

# yum install gfs2-utils.i686 cman.i686 fence-virtd-checkpoint.i686 lvm2-cluster.i686 perl-Net-Telnet.noarch rgmanager.i686 device-mapper-multipath ipvsadm piranha luci.i686 modcluster.i686 cluster-snmp.i686 ricci.i686

2 – Antes mais do que nunca, desabilite ou crie as regras do teu firewall liberando os nós de cluster presente nesta configuração. Também não podemos esquecer o selinux, deixe ele desabilitado também neste momento.

3 – Execute os comandos abaixo em todos os nós.

# chkconfig --level 123456 ricci on
# chkconfig --level 123456 luci on
# chkconfig --level 123456 cman on
# chkconfig --level 123456 iptables off
# chkconfig --level 123456 ip6tables off

4 – Agora vamos instalar os pacotes DRBD.
Para a instalação do DRBD acesso o link abaixo:

http://gnulinuxbr.com/2011/10/25/alta-disponibilidade-centos-6-instalando-os-pacotes-drbd-e-heartbeat-ha/

5 – Bom a partir daqui teremos que configurar uma nova partição para podermos configurar o DRBD. No meu caso, estarei utilizando uma partição /dev/sda5 que acabei de configuar. Configure a sua também.

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00080aea

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1275    10240000   83  Linux
/dev/sda2            1275        1403     1024000   82  Linux swap / Solaris
/dev/sda3            1403        1530     1024000   83  Linux
/dev/sda4            1530        2610     8675801    5  Estendida
/dev/sda5            1530        2610     8675769+  83  Linux
[root@centos-2 i386]#

6 – Beleza, agora vamos configurar o DRBD.

# vim /etc/drbd.conf
#!/bin/bash
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

#include "drbd.d/global_common.conf";
#include "drbd.d/*.res";

global         {
          usage-count yes;
        }

common         {
      syncer         {
                rate 100M;
                al-extents 257;
              }
        }

resource mysql             {
                      protocol C;

                  handlers         {
                              }

                startup {
                        wfc-timeout  15;
                        degr-wfc-timeout 20;    # 2 minutes.
                        become-primary-on both;
                      }

                  disk     {
                        on-io-error   detach;
                      }

                  net     {
                        sndbuf-size 512k;
                        timeout       60;    #  6 seconds  (unit = 0.1 seconds)
                        connect-int   10;    # 10 seconds  (unit = 1 second)
                        ping-int      10;    # 10 seconds  (unit = 1 second)
                        ping-timeout   5;    # 500 ms (unit = 0.1 seconds)
                        max-buffers 2048;

                        allow-two-primaries;
                        after-sb-0pri discard-zero-changes;
                        after-sb-0pri discard-least-changes;
                        after-sb-1pri discard-secondary;
                        after-sb-2pri disconnect;
                      }

                  syncer     {
                        rate 100M;
                        al-extents 257;
                      }

                  on centos-1.gnulinuxbr.com    {
                                    device     /dev/drbd0;
                                    disk       /dev/sda5;
                                    address    10.0.20.1:7788;
                                    meta-disk  internal;
                                  }

                  on centos-2.gnulinuxbr.com    {
                                    device    /dev/drbd0;
                                    disk      /dev/sda5;
                                    address   10.0.20.2:7788;
                                    meta-disk internal;
                                  }
                }
# scp drbd.conf root@10.0.20.2:/etc/

7 – Execute os comandos abaixo em ambos servidores

servidor centos-1

# dd if=/dev/zero of=/dev/sda5 bs=1M count=128

[root@centos-1 ~]#  drbdadm create-md mysql
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success

servidor centos-2

# dd if=/dev/zero of=/dev/sda5 bs=1M count=128

[root@centos-2 ~]#  drbdadm create-md mysql
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success

Servidor centos-1

[root@centos-1 ~]# drbdadm attach mysql
[root@centos-1 ~]# drbdadm syncer mysql

Servidor centos-2

[root@centos-2 ~]# drbdadm attach mysql
[root@centos-2 ~]# drbdadm syncer mysql

Servidor centos-1

# drbdsetup /dev/drbd0 primary -o
# drbdadm primary mysql
# chkconfig --level 123456 drbd on

Servidor centos-2

# drbdsetup /dev/drbd0 primary -o
# drbdadm primary mysql
# chkconfig --level 123456 drbd on

Servidor cento-1

# /etc/init.d/drbd start

[root@centos-1 ~]# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@centos-2.gnulinuxbr.com.br, 2011-10-28 12:28:09
 0: cs:SyncTarget ro:Primary/Primary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:3217164 dw:3214464 dr:608 al:0 bm:205 lo:22 pe:7413 ua:21 ap:0 ep:1 wo:b oos:5203336
	[======>.............] sync'ed: 37.3% (5080/8088)M
	finish: 0:07:44 speed: 11,184 (10,876) want: 102,400 K/sec

Servidor centos-2

# /etc/init.d/drbd start

[root@centos-2 ~]# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@centos-3.gnulinuxbr.com.br, 2011-10-28 12:28:07
 0: cs:SyncSource ro:Primary/Primary ds:UpToDate/Inconsistent C r-----
    ns:2751692 nr:0 dw:0 dr:2760472 al:0 bm:191 lo:1 pe:0 ua:64 ap:0 ep:1 wo:b oos:5530760
	[=====>..............] sync'ed: 33.3% (5400/8088)M
	finish: 0:08:25 speed: 10,920 (10,916) K/sec

Pronto o nosso DRBD está configurado com sucesso!

Configurando o GFS2

1 – Para configurar o nosso GFS2, vamos precisar inicar alguns serviços.

No servidor centos-1 façamos o seguinte:

[root@centos-1 ~]# /etc/init.d/ricci start
Iniciando o oddjobd:                                       [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Iniciando ricci:                                           [  OK  ]
[root@centos-1 ~]# /etc/init.d/luci start
Point your web browser to https://centos-2.gnulinuxbr.com.br:8084 to access luci
[root@centos-1 ~]# chkconfig --level 123456 ricci on
[root@centos-1 ~]# chkconfig --level 123456 luci on

Servidor centos-2

[root@centos-2 ~]# /etc/init.d/ricci start
Iniciando o oddjobd:                                       [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Iniciando ricci:                                           [  OK  ]
[root@centos-2 ~]# chkconfig --level 123456 ricci on

O serviço luci é um serviço que pode ser administrador via interface Web, não será o meu objetivo nesse momento pois pretendo abordar toda configuração no modod texto. Rumbora!

2 – Para acessar digite:

https://192.168.1.21:8084

3 – Continuando, vamos instalar o Mysql em ambos servidores

Servidor centos-1

[root@centos-1 /]# yum install mysql-server
[root@centos-1 /]# chkconfig --level 123456 mysqld off

Servidor centos-2

[root@centos-2 /]# yum install mysql-server
[root@centos-2 /]# chkconfig --level 123456 mysqld off

4 – Com a instalação concluída com sucesso, vamos criar o arquivo /etc/cluster/cluster.conf.

# vim /etc/cluster/cluster.conf

Explicando o arquivo cluster.conf:

O que é CMAN?
CMAN é simétrica, de propósito geral, gerente de cluster baseado em kernel. Ela tem duas partes. Connection Manager (cnxman) lida com a adesão, a notificação de eventos de mensagens, quorum, e transições. Service Manager (sm) lida com “grupos de serviço” que são uma forma geral de representação e gestão de casos de sistemas externos que necessitam de gerenciamento de cluster. O gerenciador de clusters CMAN é o sistema fundamental sobre a qual DLM, GFS, CLVM e Fence todos dependentes um do outro.

CMAN consiste de um conjunto de patches no kernel e um programa userspace (cman_tool). CMAN depende CCS (apenas cman_tool que opcionalmente pode ser usado sem CCS se todos os parâmetros são dados na linha de comando.)

cluster.conf
Este arquivo inicia a execução do Complemento de Alta Disponibilidade.
Um de seus recursos é utilizar o file System de tipo gfs e gfs2 que pode ser implementado em conjunto com o DRBD, podendo adicionar 2 ou mais nós como PRIMÁRIO.

Algumas dicas do arquivo de configuração cluster.conf

cluster name=”mysql” – Específica o nome do cluster que está sendo criado.
config_version=”1″ – Versão do arquivo que está sendo criado.
clusternode name=”centos-1″ – Nome do primeiro nó do cluster.
clusternode name=”centos-2″ – Nome do segundo nó do cluster.

Com o arquivo criado no servidor centos-1 (nó-1) execute o comando abaixo:

#  scp /etc/cluster/cluster.conf root@192.168.1.22:/etc/cluster/

Agora vamos executar os comandos abaixo em ambos servidores.

# /etc/init.d/cman restart
# mkdir /MYSQL
# reboot

No servidor centos-1 (nó-1) execute o comando abaixo:

# mkfs.gfs2 -t mysql:mysql -j 2 /dev/drbd0

Explicando:
mkfs.gfs2 – Tipo de file System
mysql:mysql – resource do drbd.conf (mysql) e o name do arquivo Cluster.conf (mysql)
/dev/drbd0 – DRBD

5 – Verificando se os servidores estão como Primay/Primary

[root@centos-1 ~]# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@centos-1.gnulinuxbr.com, 2011-10-31 17:06:10
 0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
    ns:0 nr:12 dw:12 dr:5284 al:0 bm:3 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

[root@centos-2 ~]# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
GIT-hash: 0de839cee13a4160eed6037c4bddd066645e23c5 build by root@centos-2.gnulinuxbr.com, 2011-10-31 17:43:38
 0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
    ns:96 nr:160 dw:248 dr:5292 al:5 bm:5 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

6 – Agora o próximo passo é montar o sistema de arquivo gfs2 em ambos servidores:

[root@centos-1 ~]# mount -t gfs2 /dev/drbd0 /MYSQL/
[root@centos-2 ~]# mount -t gfs2 /dev/drbd0 /MYSQL/

7 – Ufa! montando com sucesso aqui no meu ambiente de teste, espero que também esteja montando no seu ambiente de teste. Caso não esteja reveja tudo novamente.

[root@centos-1 ~]# df -h
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda1             8,7G  1,1G  7,2G  14% /
tmpfs                 250M   32M  219M  13% /dev/shm
/dev/drbd0             31G  259M   30G   1% /MYSQL

[root@centos-2 ~]# df -h
Sist. Arq.            Size  Used Avail Use% Montado em
/dev/sda1             8,7G  1,1G  7,2G  14% /
tmpfs                 250M   32M  219M  13% /dev/shm
/dev/drbd0             31G  259M   30G   1% /MYSQL

8 – Crie dentro do diretório alguns arquivos e verifique se aparece em ambos servidores os arquivos.

9 – Agora vamos colocar na inicialização do sistema operacional o ponto de montagem /dev/drbd0. Faça isso em ambos servidores.

# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Oct 31 17:19:33 2011
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=57805b9a-8908-4ba2-95a8-cddbc1f27fed /                       ext4    defaults        1 1
UUID=b7b08635-eb8d-44a7-8de7-4f5056b4a003 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/drbd0              /MYSQL  gfs2    defaults        0       0

10 – Um outro ponto importante que acabei apanhando bastante nessa configuração, foi a desmontagem do /dev/drbd0 no reboot do sistema operacional, para resolver este problema ou bug eu realizei a seguinte alteração de inicialização dos serviços:

Faça isso em ambos servidores:

# cd /etc/rc3.d/
# mv S70drbd S20drbd
# umount /MYSQL

11 – Realizado toda configuração, reinicie os servidores e verifique se foi montando a partição /MYSQL no momento do boot do sistema, faça mais um reboot e veja se tudo ocorre de forma correta.

Alguns comandos importantes para administração do cluster

Em qualquer nó no cluster, rode o cman_tools nodes para verificar que os nós estão funcionando como membros no cluster

[root@centos-1 ~]# cman_tool nodes
Node  Sts   Inc   Joined               Name
   1   M    100   2011-10-31 20:37:37  centos-1
   2   M    104   2011-10-31 20:37:37  centos-2

Em qualquer nó, usando o utilitário clustat, verifique que os serviços de Alta Disponibilidade estão rodando conforme esperados. Além disso, o clustat, exibe o estado dos nós do cluster. Por exemplo:

[root@centos-1 ~]# clustat
Cluster Status for mysql @ Mon Oct 31 21:58:33 2011
Member Status: Quorate

 Member Name                                                     ID   Status
 ------ ----                                                     ---- ------
 centos-1                                                            1 Online, Local
 centos-2                                                            2 Online

Continua na parte 2 com o processo de inicialização de serviços. (mysql-server)
Lembrando que essa configuração está super simples, nos links abaixo você verá a quantidade de recursos que pode ser adicionado no seu cluster.

Fontes do tutorial:
http://docs.redhat.com/docs/pt-BR/Red_Hat_Enterprise_Linux/6/html/Global_File_System_2/index.html

http://docs.redhat.com/docs/pt-BR/Red_Hat_Enterprise_Linux/6/html/Cluster_Administration/

até!

>_Alta disponibilidade – CentOS 6 – configurando os pacotes DRBD + Gfs2 1.1
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: