• Nenhum resultado encontrado

Alta disponibilidade em servidores GNU/Linux

N/A
N/A
Protected

Academic year: 2021

Share "Alta disponibilidade em servidores GNU/Linux"

Copied!
40
0
0

Texto

(1)

Universidade Federal da Bahia

Departamento de Ciência da Computação Curso de extensão em Administração de

Serviços GNU/Linux

Alta disponibilidade em servidores

Alta disponibilidade em servidores

GNU/Linux GNU/Linux Italo Valcy Italo Valcy italo@dcc.ufba.br italo@dcc.ufba.br

(2)

Aspectos abordados

✔ O que é um clusterO que é um cluster

✔ Tipos de clusterTipos de cluster

✔ Alta disponibilidadeAlta disponibilidade ✔ GNU/Linux HAGNU/Linux HA

✔ Estudo de CasoEstudo de Caso ✔ ReferênciasReferências

(3)

O que é um cluster

Conjunto de servidores agrupados com intenção de ganho Conjunto de servidores agrupados com intenção de ganho

de desempenho, disponibilidade, ou facilidade no

de desempenho, disponibilidade, ou facilidade no

gerenciamento.

gerenciamento.

✔ Normalmente um cluster é composto por máquinas Normalmente um cluster é composto por máquinas

convencionais ligadas em uma rede de alto desempenho e

convencionais ligadas em uma rede de alto desempenho e

fornecendo a abstração ao usuário de uma única máquina

fornecendo a abstração ao usuário de uma única máquina

(BUYYA, 1999).

(BUYYA, 1999). ✔Cluster Cluster vsvs Grids Grids

(4)
(5)

Tipos de cluster

✔ Alta disponibilidadeAlta disponibilidade

✔ Balanceamento de cargaBalanceamento de carga

(6)

Alta disponibilidade

✔ Intenção de manter a maior disponibilidade possível dos Intenção de manter a maior disponibilidade possível dos

serviços, através da duplicação de servidores, ambientes de

serviços, através da duplicação de servidores, ambientes de

rede, discos, etc.

rede, discos, etc.

✔ Disponibilidade xDisponibilidade x Downtime Downtime

✔ Sistema de monitoração interno no cluster garante que, no Sistema de monitoração interno no cluster garante que, no

caso de falha do servidor ativo, o sistema em standby

caso de falha do servidor ativo, o sistema em standby

assumirá os serviços automaticamente e

assumirá os serviços automaticamente e

“instantaneamente”.

(7)

Alta dispinibilidade

Requisitos:

Requisitos:

✔ Redundância de estruturaRedundância de estrutura

✔ Camada de software de monitoraçãoCamada de software de monitoração ✔ Mecanismos de sincroniaMecanismos de sincronia

(8)

Alta disponibilidade

Pontos a refletir:

Pontos a refletir:

✔ Cluster Cluster versusversus hardware tolerante à hardware tolerante à

falhas

falhas

(9)

Alta disponibilidade

Dificuldades:

Dificuldades:

✔ Implementação de sistema de failover completo, que possa Implementação de sistema de failover completo, que possa

identificar todos tipos de falha (single failure points) e

identificar todos tipos de falha (single failure points) e

eliminá-los.

eliminá-los.

✔ Failover de ação rápida;Failover de ação rápida;

✔ Manter a consistência de dados entre todos os nodes.Manter a consistência de dados entre todos os nodes. ✔ Integridade de dados em caso de failover, e no failback Integridade de dados em caso de failover, e no failback

para o node principal.

(10)

GNU/Linux HA

✔ HeartbeatHeartbeat ✔ MonMon

(11)

GNU/Linux HA

Heartbeat:

Heartbeat:

✔ Núcleo do ambiente de alta Núcleo do ambiente de alta

disponibilidade

disponibilidade

✔ Troca de mensagens entre os Troca de mensagens entre os

servidores

servidores

✔ Gerenciamento de um IP Gerenciamento de um IP

compartilhado entre os nodos.

(12)

GNU/Linux HA

Heartbeat:

(13)

GNU/Linux HA

MON:

MON:

✔ O Mon tem como principal finalidade a de O Mon tem como principal finalidade a de

ser um monitor do sistema. Quando ele ser um monitor do sistema. Quando ele

detecta uma falha é possível enviar um detecta uma falha é possível enviar um

e-mail e até mesmo fazer com que ele acione mail e até mesmo fazer com que ele acione

o Heartbeat para que ele tome alguma o Heartbeat para que ele tome alguma

decisão para a solução do problema. decisão para a solução do problema.

(14)

GNU/Linux HA

DRBD:

DRBD:

✔ CConsiste em um módulo para o kernel onsiste em um módulo para o kernel

Linux que faz o espelhamento dos dados Linux que faz o espelhamento dos dados

de um dispositivo de bloco. de um dispositivo de bloco.

✔ Cada dispositivo de bloco envolvido na Cada dispositivo de bloco envolvido na

configuração do DRBD tem um estado, que configuração do DRBD tem um estado, que

pode ser primário ou secundário. pode ser primário ou secundário.

(15)

Estudo de caso

✔ Implemtação de um serviço de Implemtação de um serviço de

diretórios para autenticação de

diretórios para autenticação de

usuários.

usuários.

✔ Implementar estratégias para alta Implementar estratégias para alta

disponibilidade para este serviço

disponibilidade para este serviço

utilizando GNU/Linux.

(16)

Estudo de caso

Softwares utilizados: Softwares utilizados: ✔ OpenLDAPOpenLDAP ✔ HeartbeatHeartbeat ✔ MonMon ✔ DRBDDRBD

(17)

Estudo de caso

Topologia do serviço:

(18)

Estudo de Caso – Instalação do

OpenLDAP

✔ No debian: No debian:

aptitude install slapd aptitude install slapd

✔ Arquivo de configuração:Arquivo de configuração:

/etc/ldap/slapd.conf /etc/ldap/slapd.conf

✔ Ferramentas de gerenciamento:Ferramentas de gerenciamento:

aptitude install ldap-utils aptitude install ldap-utils

aptitude show phpldapadmin aptitude show phpldapadmin

(19)

Estudo de Caso – Configuração do

OpenLDAP

✔ Nome do domínio: grupoX.orgNome do domínio: grupoX.org ✔ Backend de DB: HDBBackend de DB: HDB

✔ Allow LDAPv2: SimAllow LDAPv2: Sim ✔ Iniciar o serviço:Iniciar o serviço:

/etc/init.d/slapd start/etc/init.d/slapd start

✔ Consulta à base:Consulta à base:

ldapsearch -x -b ldapsearch -x -b

dc=grupo1,dc=org -h localhost dc=grupo1,dc=org -h localhost

(20)

Estudo de Caso – Heartbeat

✔ Instalação:Instalação:

aptitude install heartbeataptitude install heartbeat

✔ Principais arquivos de configuração:Principais arquivos de configuração:

- ha.cf: configuração do heartbeat

- ha.cf: configuração do heartbeat

- authkeys: chaves para autenticação

- authkeys: chaves para autenticação

dos membros do cluster

dos membros do cluster

- haresources: define os recursos que

- haresources: define os recursos que

estarão sob controle do heartbeat

(21)

Estudo de Caso - Heartbeat

/etc/ha.d/ha.cf /etc/ha.d/ha.cf

logfacilitylogfacility - Utiliza o syslog para gravar os logs - Utiliza o syslog para gravar os logs utilizando a opção daemon.

utilizando a opção daemon.

Ex: Ex: logfacility nonelogfacility none

ucastucast – Configura o heartbeat para usar uma – Configura o heartbeat para usar uma comunicação unicast via UDP.

comunicação unicast via UDP.

Sintaxe: Sintaxe: ucast dev peer-ip-addressucast dev peer-ip-address

Ex: Ex: ucast eth0 10.1.151.102ucast eth0 10.1.151.102

nodenode - Indica os nodos do cluster (sendo o primeiro - Indica os nodos do cluster (sendo o primeiro ele mesmo). Exemplo:

ele mesmo). Exemplo:

node s151pc01node s151pc01

(22)

Estudo de Caso - Heartbeat

/etc/ha.d/ha.cf /etc/ha.d/ha.cf

keepalivekeepalive – Tempo entre as 'batidas de coração' – Tempo entre as 'batidas de coração'

Ex: Ex: keepalive 2 # 2 segundoskeepalive 2 # 2 segundos

deadtimedeadtime - Tempo que indica se um nodo está - Tempo que indica se um nodo está morto.

morto.

Ex: Ex: deadtime 10 # 10 segundosdeadtime 10 # 10 segundos

warntimewarntime - Tempo de espera antes de emitir o - Tempo de espera antes de emitir o aviso de heartbeat atrasado. Exemplo:

aviso de heartbeat atrasado. Exemplo:

warntime 10 # 10 segundoswarntime 10 # 10 segundos

initdeadinitdead - Tempo de espera após reinicialização - Tempo de espera após reinicialização

do sistema

do sistema

(23)

Estudo de Caso - Heartbeat

/etc/ha.d/ha.cf /etc/ha.d/ha.cf

auto_failbackauto_failback - Faz com que a máquina retorne - Faz com que a máquina retorne ou não os serviços.

ou não os serviços.

(24)

Estudo de Caso - Heartbeat

/etc/ha.d/ha.cf (master) /etc/ha.d/ha.cf (master) logfacility daemon logfacility daemon ucast eth0 10.1.151.102 ucast eth0 10.1.151.102 node s151pc01 node s151pc01 node s151pc02 node s151pc02 keepalive 2 keepalive 2 deadtime 10 deadtime 10 warntime 10 warntime 10 initdead 60 initdead 60 auto_failback on auto_failback on

(25)

Estudo de Caso - Heartbeat

/etc/ha.d/ha.cf (slave) /etc/ha.d/ha.cf (slave) logfacility daemon logfacility daemon ucast eth0 10.1.151.101 ucast eth0 10.1.151.101 node s151pc02 node s151pc02 node s151pc01 node s151pc01 keepalive 2 keepalive 2 deadtime 10 deadtime 10 warntime 10 warntime 10 initdead 60 initdead 60 auto_failback on auto_failback on

(26)

Estudo de Caso - Heartbeat

cat /etc/ha.d/authkeys cat /etc/ha.d/authkeys auth 1 auth 1 1 md5 SenhaEntreNodes-HAOpenLdap 1 md5 SenhaEntreNodes-HAOpenLdap chmod 600 /etc/ha.d/authkeys chmod 600 /etc/ha.d/authkeys

(27)

Estudo de Caso - Heartbeat

/etc/ha.d/haresources /etc/ha.d/haresources s151pc01 Ipaddr::10.1.151.201/16/eth0:0 \ s151pc01 Ipaddr::10.1.151.201/16/eth0:0 \ MailTo::root@localhost::Problema-Cluster

MailTo::root@localhost::Problema-Cluster slapd slapd Onde:

Onde:

s151pc01

s151pc01 - É o nome da máquina master - É o nome da máquina master

10.1.151.201

10.1.151.201 - É o endereço IP virtual do Cluster - É o endereço IP virtual do Cluster

MailTo

MailTo - Envia um email para o usuário que você - Envia um email para o usuário que você configurar informando quando o cluster tem algum

configurar informando quando o cluster tem algum

problema de reinicialização

problema de reinicialização

slapd

(28)

Estudo de Caso - Heartbeat

Modificações necessárias:

Modificações necessárias:

✔ Inicialização do slapd:Inicialização do slapd:

update-rc.d -f slapd removeupdate-rc.d -f slapd remove

✔ Recursos administrados pelo Recursos administrados pelo

heartbeat

heartbeat

(29)

Estudo de Caso - Mon

✔ Instalação (apenas no master):Instalação (apenas no master):

aptitude install monaptitude install mon

✔ Arquivo de configuração:Arquivo de configuração:

(30)

Estudo de Caso - Mon

/etc/mon/mon.cf – opções globais:

/etc/mon/mon.cf – opções globais:

alertdir = /usr/lib/mon/alert.d alertdir = /usr/lib/mon/alert.d mondir = /usr/lib/mon/mon.d mondir = /usr/lib/mon/mon.d randstart = 60s randstart = 60s alertdir

alertdir - determina o caminho completo para o - determina o caminho completo para o diretório que contém os scripts de alerta.

diretório que contém os scripts de alerta.

mondir

mondir - especifica o caminho completo para o - especifica o caminho completo para o diretório que contém os scripts de monitoramento

diretório que contém os scripts de monitoramento

randstart –

randstart – faz com que cada monitor seja iniciado faz com que cada monitor seja iniciado em um momento aleatório que varia de 0 à

em um momento aleatório que varia de 0 à

randstart.

(31)

Estudo de Caso - Mon

/etc/mon/mon.cf – grupos monitorados:

/etc/mon/mon.cf – grupos monitorados:

hostgroup ldapserver

hostgroup ldapserver

10.1.151.201

10.1.151.201

É possível definir mais de um grupo. Para isso

É possível definir mais de um grupo. Para isso

deve-se deve-separar os grupos por linhas em branco.

(32)

Estudo de Caso - Mon

/etc/mon/mon.cf – monitores: /etc/mon/mon.cf – monitores: watch ldapserver watch ldapserver

service ldapservice ldap

interval 20sinterval 20s

monitor ldap.monitor -basedn dc=grupo1,dc=org -filter \monitor ldap.monitor -basedn dc=grupo1,dc=org -filter \

cn=admin -attribute objectClass -value organizationalRolecn=admin -attribute objectClass -value organizationalRole

periodperiod

numalerts 3numalerts 3

alert heartbeat.alertalert heartbeat.alert

alert mail.alert -S "Problema com servidor OpenLdap" \ alert mail.alert -S "Problema com servidor OpenLdap" \ administrador1@dominio.com

administrador1@dominio.com administrador2@dominio.comadministrador2@dominio.com

upalert heartbeat.alertupalert heartbeat.alert

upalert mail.alert -S "Servidor OpenLdap esta ok" \upalert mail.alert -S "Servidor OpenLdap esta ok" \

(33)

Estudo de Caso - Mon

/etc/mon/mon.cf – alerts (/usr/lib/mon/alert.d):

/etc/mon/mon.cf – alerts (/usr/lib/mon/alert.d):

#!/usr/bin/perl #!/usr/bin/perl use Getopt::Std; use Getopt::Std; getopts ("s:g:h:t:l:u"); getopts ("s:g:h:t:l:u"); if($opt_u) if($opt_u) { {

# This alert was sent because slapd was restoredy# This alert was sent because slapd was restoredy

system "sudo /etc/init.d/heartbeat start"system "sudo /etc/init.d/heartbeat start" } } else else { {

# slapd is down# slapd is down

system "sudo /etc/init.d/heartbeat stop"system "sudo /etc/init.d/heartbeat stop" }

(34)

Estudo de Caso - Mon

✔ Dar permissão ao mon de parar o heartbeat Dar permissão ao mon de parar o heartbeat

(sudoers): (sudoers):

mon ALL= NOPASSWD: /etc/init.d/heartbeatmon ALL= NOPASSWD: /etc/init.d/heartbeat

✔ Iniciar o serviço:Iniciar o serviço:

(35)

Estudo de Caso - Drbd

✔ Instalação no debian:Instalação no debian:

aptitude install drbd8-modules-`uname -r` aptitude install drbd8-modules-`uname -r` drbd8-utils

drbd8-utils

✔ Configuração:Configuração:

(36)

Estudo de Caso - Drbd

✔ /etc/drbd.conf:/etc/drbd.conf:

global { global {

usage-count no; usage-count no; } } common { common { protocol C;protocol C; } } resource r0 { resource r0 {

# some options# some options }

}

resource r1 { resource r1 {

# some options# some options }

(37)

Estudo de Caso - Drbd

✔ /etc/drbd.conf:/etc/drbd.conf: resource r0 { resource r0 { on s151pc01 {on s151pc01 {

device /dev/drbd0;device /dev/drbd0;

disk /dev/sda7;disk /dev/sda7;

address 10.1.151.101:7789;address 10.1.151.101:7789;

meta-disk internal;meta-disk internal;

}}

on s151pc02 {on s151pc02 {

device /dev/drbd0;device /dev/drbd0;

disk /dev/sda5;disk /dev/sda5;

address 10.1.151.102:7789;address 10.1.151.102:7789;

meta-disk internal;meta-disk internal;

}} } }

(38)

Estudo de Caso - Drbd

Exemplo de haresources: Exemplo de haresources: s151pc01 IPaddr::10.1.151.201/16/eth0:0 \ s151pc01 IPaddr::10.1.151.201/16/eth0:0 \ drbddisk::drbd-resource-0 \ drbddisk::drbd-resource-0 \ Filesystem::/dev/drbd0::/mnt/algo::reiserfs \ Filesystem::/dev/drbd0::/mnt/algo::reiserfs \ MailTo::root@localhost::Problema-Cluster \ MailTo::root@localhost::Problema-Cluster \ slapd slapd

(39)

Dúvidas

???

(40)

Referências

✔ PITANGA, M. Computação em Cluster. 1. ed. Rio de Janeiro: Brasport, 2003.PITANGA, M. Computação em Cluster. 1. ed. Rio de Janeiro: Brasport, 2003. ✔ BUYYA, R. High Performance Cluster Computing: Programming and BUYYA, R. High Performance Cluster Computing: Programming and

Applications. New Jersey - USA: Prentice Hall, 1999. ISBN 0-13-013785-5. Applications. New Jersey - USA: Prentice Hall, 1999. ISBN 0-13-013785-5.

✔ http://www.linuxjournal.com/article/3247http://www.linuxjournal.com/article/3247 ✔ http://ha-mc.org/?q=node/15http://ha-mc.org/?q=node/15 ✔ http://www.linux-ha.org/Heartbeathttp://www.linux-ha.org/Heartbeat ✔ http://mon.wiki.kernel.org/index.php/Main_Pagehttp://mon.wiki.kernel.org/index.php/Main_Page ✔ http://mon.wiki.kernel.org/index.php/Documentationhttp://mon.wiki.kernel.org/index.php/Documentation ✔ http://www.drbd.org/users-guide-emb/s-replication-protocols.htmlhttp://www.drbd.org/users-guide-emb/s-replication-protocols.html ✔

Referências

Documentos relacionados

Projeto Descrição Promotores Industriais Promotores: ENE SI&I Medida Investimento projeto Incentivo projeto. 1 SMIT Smart Multifunctional Integrated Tool ITJ, RTJ

A presente dissertação começou a ser estruturada com a minha participação no projeto denominado “Potencialização da Autonomia da Gestão Escolar Municipal de Indaiatuba” 1

Para resolver este problema pensou-se em aplicar t´ecnicas de pesquisa local no marcador de nomes pr´oprios, sendo um estado (interpretac¸˜ao) constitu´ıdo por um conjunto de tuplo

Assim sendo, esse trabalho teve como objetivo a produção de uma blenda ativa utilizando dois polímeros biodegradáveis, o acetato de celulose e a quitosana, incorporados com óleo

Efetuado o estudo dos efeitos de transferência de massa para o sistema, foi feita a simulação da reação no estado transiente para o caso de otimização da produção de

a) deverá recolher as custas, o depósito recursal e o valor da multa por litigância de má-fé para viabilizar o recurso. b) não havendo nenhum normativo a respeito, deverá

Para além da exposição da imagem estas plataformas servem como veículo para partilha de conhecimentos e troca de ideias sobre a execução dos fatos com outros praticantes e