20.03.2015 Views

Entendendo o RAID1 local - Eriberto.pro.br

Entendendo o RAID1 local - Eriberto.pro.br

Entendendo o RAID1 local - Eriberto.pro.br

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Espelhamento <strong>local</strong> e<<strong>br</strong> />

remoto de HDs (<strong>RAID1</strong>)<<strong>br</strong> />

com mdadm e DRBD<<strong>br</strong> />

João <strong>Eriberto</strong> Mota Filho<<strong>br</strong> />

Foz do Iguaçu, <strong>Eriberto</strong> PR, 17 – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Quanto valem os seus dados?<<strong>br</strong> />

✔ Você faz backups completos regularmente?<<strong>br</strong> />

✔ E se o seu HD queimar???<<strong>br</strong> />

✔ Você pode perder tudo o que possui?<<strong>br</strong> />

✔ O seu trabalho ou os seus servidores<<strong>br</strong> />

podem ser interrompidos por dias?<<strong>br</strong> />

✔ Sabia que você pode ter RAID até<<strong>br</strong> />

mesmo em casa?<<strong>br</strong> />

✔ Você sabe quanto custa um HD de<<strong>br</strong> />

boa capacidade atualmente?<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


<strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ RAID = Redundant Array of Independent Drives (ou<<strong>br</strong> />

agrupamento redundante de discos independentes).<<strong>br</strong> />

✔ O RAID, geralmente, manipula blocos de filesystem.<<strong>br</strong> />

✔ Tipos mais comuns de RAID:<<strong>br</strong> />

●<<strong>br</strong> />

●<<strong>br</strong> />

●<<strong>br</strong> />

RAID0 ou strip: divide cada arquivo entre blocos em vários discos.<<strong>br</strong> />

Velocidade sem garantia de integridade. Precisa de 2 ou mais discos.<<strong>br</strong> />

<strong>RAID1</strong> ou mirror: replica as informações, em tempo real, entre vários<<strong>br</strong> />

discos. Precisa de 2 ou mais discos.<<strong>br</strong> />

RAID5 ou strip com paridade: idêntico ao RAID0. No entanto, há um<<strong>br</strong> />

controle de paridade distribuída pelos diversos discos. Caso haja a perda de<<strong>br</strong> />

um disco, o dado poderá ser recuperado. Precisa de 3 ou mais discos. Difícil<<strong>br</strong> />

implementação e menor performance que o RAID 1+0.<<strong>br</strong> />

● RAID 1+0 (ou <strong>RAID1</strong>0): mirror + strip. Necessita de 4 ou mais discos.<<strong>br</strong> />

● RAID 0+1: : similar ao 1+0 mas com menor desempenho.<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


<strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ O <strong>RAID1</strong> pode espelhar um disco inteiro ou algumas partições<<strong>br</strong> />

apenas, manipulando blocos de filesystem.<<strong>br</strong> />

✔ O <strong>RAID1</strong> é simples e pode ser implementado até mesmo em<<strong>br</strong> />

residências. (eu uso em casa!!!)<<strong>br</strong> />

✔ <strong>RAID1</strong> previne perdas totais em desastres mas não atua contra<<strong>br</strong> />

deleções acidentais. Tenha sempre um backup mensal! (pelo<<strong>br</strong> />

menos)<<strong>br</strong> />

✔ No Debian, por exemplo, qualquer tipo de RAID <strong>local</strong> pode ser<<strong>br</strong> />

criado durante a instalação do sistema operacional ou, depois,<<strong>br</strong> />

com o comando mdadm (# apt­get install mdadm).<<strong>br</strong> />

✔ Criação pós­instalação no Debian Squeeze (adaptável a outras<<strong>br</strong> />

distros): disponível em http://bit.ly/raid1_squeeze_<strong>pro</strong>ducao.<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Será criado o <strong>RAID1</strong> para apenas uma partição em <strong>pro</strong>dução.<<strong>br</strong> />

✔ RAID utiliza metadados de controle. Então, primeiramente, os<<strong>br</strong> />

dados existentes deverão ser copiados para o HD secundário,<<strong>br</strong> />

já com <strong>RAID1</strong>.<<strong>br</strong> />

DEMONSTRAÇÃO Nr 1<<strong>br</strong> />

(simulação em máquina virtual com dois discos de 10 GB)<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


<strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ O <strong>RAID1</strong> remoto é feito entre máquinas pelo DRBD.<<strong>br</strong> />

✔ DRBD = Distributed Replicated Block Device (ou replicação<<strong>br</strong> />

distribuída em dispositivos de blocos).<<strong>br</strong> />

✔ Assim como no <strong>RAID1</strong> <strong>local</strong>, o DRBD opera por blocos.<<strong>br</strong> />

✔ No Debian: # apt­get install drbd8­utils. Comando drbdadm.<<strong>br</strong> />

✔ Modos ativo­passivo e ativo­ativo.<<strong>br</strong> />

✔ Modo mais comum: ativo­passivo, específico para failover. O<<strong>br</strong> />

modo ativo­ativo é usado em balanceamento de carga e<<strong>br</strong> />

requer filesystem especial (GFS, OCFS2 etc).<<strong>br</strong> />

✔ Cada elemento replicado é um nó.<<strong>br</strong> />

✔ Autoativação de nós: cuidado...<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


<strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Exemplo de arquivo de configuração de recurso DRBD (no<<strong>br</strong> />

caso, /etc/drbd.d/teste.res):<<strong>br</strong> />

resource teste {<<strong>br</strong> />

on li<strong>br</strong>a­1 {<<strong>br</strong> />

device<<strong>br</strong> />

/dev/drbd0;<<strong>br</strong> />

disk<<strong>br</strong> />

/dev/sda2;<<strong>br</strong> />

address 10.0.0.101:5000;<<strong>br</strong> />

meta­disk internal;<<strong>br</strong> />

}<<strong>br</strong> />

}<<strong>br</strong> />

on li<strong>br</strong>a­2 {<<strong>br</strong> />

device<<strong>br</strong> />

/dev/drbd0;<<strong>br</strong> />

disk<<strong>br</strong> />

/dev/sda2;<<strong>br</strong> />

address 10.0.0.102:5000;<<strong>br</strong> />

meta­disk internal;<<strong>br</strong> />

}<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Demonstração do DRBD<<strong>br</strong> />

✔ Será criado o espelhamento para apenas uma partição.<<strong>br</strong> />

✔ A experiência se dará entre duas máquinas distintas.<<strong>br</strong> />

DEMONSTRAÇÃO Nr 2<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Com o LVM obtêm­se mais de 15 partições em HDs SATA.<<strong>br</strong> />

✔ Inicialmente, são criados os LVs (Logical Volume).<<strong>br</strong> />

✔ A seguir, são criados os dispositivos DRBD.<<strong>br</strong> />

✔ Cada dispositivo DRBD é associado a um LV, transformando­se<<strong>br</strong> />

em nó entre duas máquinas.<<strong>br</strong> />

✔ Por último, o Xen é instalado so<strong>br</strong>e o dispositivo DRBD para<<strong>br</strong> />

suportar um serviço de rede.<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Resumo:<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Sumário<<strong>br</strong> />

✔ Quanto valem os seus dados?<<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ Demonstração do <strong>RAID1</strong> <strong>local</strong><<strong>br</strong> />

✔ <strong>Entendendo</strong> o <strong>RAID1</strong> remoto<<strong>br</strong> />

✔ Demonstração do DRBD<<strong>br</strong> />

✔ Um exemplo real: LVM + DRBD + Xen<<strong>br</strong> />

✔ Conclusão<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013


Conclusão<<strong>br</strong> />

✔ Um HD novo e grande = poucos R$.<<strong>br</strong> />

✔ Um HD antigo queimado = sua vida.<<strong>br</strong> />

✔ Quanto vale a sua vida?<<strong>br</strong> />

✔ O seu trabalho ou os seus servidores<<strong>br</strong> />

podem ser interrompidos por dias?<<strong>br</strong> />

Esta palestra está disponível em:<<strong>br</strong> />

http://eriberto.<strong>pro</strong>.<strong>br</strong><<strong>br</strong> />

Siga­me no Twitter @eribertomota<<strong>br</strong> />

<strong>Eriberto</strong> – out. 2013

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!