SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
FreeBSD com Alta
 Disponibilidade

          Denis Augusto
   (denis.augusto@gmail.com)


“Comece pequeno, pense grande, cresça rápido”
Agenda
• Visão geral
   – O que é FreeBSD?
   – Para que usar FreeBSD?
   – Novidades para pensar
• O que é Alta Disponibilidade?
• Ferramentas com FreeBSD em Alta Disponibilidade
   –   CARP (Common Address Redundancy Protocol)
   –   RAID (Redundant Array of Independent Drives )
   –   Snapshots
   –   ZFS (Zettabyte File System)
   –   Sistemas iSCSI
• Aplicações práticas
• Links recomendados
O que é FreeBSD
                  Sistema Operacional




Específico para       Derivado do       SO muito customizável
  Servidores         386BSD (1993)        com recursos de
                                                storage
Para que usar FreeBSD?
• Multitarefa preemptiva com ajuste dinâmico de prioridades e
  algoritmos para a proteção de áreas de memória;
• O mais popular sistema BSD;
• Para aplicações de grande I/O de disco
   – o Servidores de bases de dados;
   – o Aplicações de imagem e vídeo;
• Uso de Storages;
• Servidores para resolução de nomes DNS;
• Para execução eficiente de binários pertencentes a outros sistemas
  operacionais, principalmente de Linux;
• Serviços de Web Proxy, Web Cache, Web Servers, roteadores,
  impressão, correio eletrônico, roteadores e muito mais;
• Concentra o record de armazenamento de 2TBytes em um único
  sistema operacional.
O Gerente de TI é a Assim?
O Gerente de TI
Pontos de Preocupação

        Desempenho                        Estabilidade




Proteção de
   Ativos




              Segurança   Gerenciamento
Proteção de Ativos



         1
Novidades para Pensar

“Como configurar o acesso a porta 22/TCP feito por 20 origens
   diferentes?”

Em Linux (20 vezes a mesma linha):

/usr/sbin/iptables -v -A INPUT -p tcp -s IPfonte/32 --destination-port 22 -j ACCEPT


Usando Packet Filter (Uma Só linha):

pass in from <Tabela_IPs_Fonte> to $Interface_Externa port = 22 queue SSH
O que é Alta Disponibilidade?
• Conceito Geral
• Alta Disponibilidade X SLA (Service Level Agreement)
   –   Para que serve o SLA?
   –   Usando MTBF (Mean Time Between Failures/Tempo Médio Entre Falhas)
   –   Usando MTTR (Mean Time To Repair/Tempo Médio para Recuperação)
   –   Disponibilidade = MTBF / (MTBF + MTTR)
   –   Alta Disponibilidade X Custos

               Nível do SLA      Downtime/mês         Downtime/ano

                   95%          1 dias 12:00:00h     18 dias 6:00:00h
                   96%           1 dias 4:48:00h     14 dias 14:24:00h
                   97%          0 dias 21:36:00h     10 dias 22:48:00h
                   98%          0 dias 14:24:00h      7 dias 7:12:00h
                   99%           0 dias 7:12:00h     3 dias 15:36:00h
                  99,9%         0 dias 0:43:11.99h   0 dias 8:45:35.99h
                 99,99%         0 dias 0:04:19.20h   0 dias 0:52:33.60h
                 99,999%        0 dias 0:00:25.92h   0 dias 0:05:15.36h
Exemplo
Ferramentas com FreeBSD
• Baseado nas RFCs RFC3768 e RFC2281
• Compilando no Kernel com a opção

       device carp


• Simples uso
• Nativo do kernel
• Seguro
   – criptografia e senha para autenticação
• CARP com interfaces de sincronia (pfsync)
Ferramentas com FreeBSD
• Funcionamento Geral
Ferramentas com FreeBSD
• Customizando o Kernel

    Variável                            Descrição

    net.inet.carp.allow                 Aceita pacotes CARP entrando pelas interfaces ou não. O padrão é 1 (ativado).

                                        Ativa os hosts que participam do grupo CARP e verificar melhor a ausência do
    net.inet.carp.preempt               host master. Esta opção ativa em todas as interfaces a verificação de falha
                                        (failover). Esta opção é desabilitada por padrão.

    net.inet.carp.log                   Registra em log os pacotes CARP ruins. O padrão é 1(ativado).

                                        Balanceamento de carga sob múltiplos grupos de redundância. Isto é aplicado a
    net.inet.carp.arpbalance            operações de balanceamento de carga (load balance). O padrão é 0
                                        (desabilitado).

                                        Evita o conflito de endereços IP quando um mesmo esdereço é usado por clientes
    net.inet.ip.same_prefix_carp_only
                                        distintos.

                                        O estado de failover pode ser manualmente suprimido se a interface do pfsync
    net.inet.carp.suppress_preempt
                                        não estiver funcionando ou se o link estar ausente.
Proteção de Ativos



         2
Ferramentas com FreeBSD
• O que é RAID (Redundant Array of Independent Drives)?
• Auxílio na performance e na redundância
• Exemplos: RAID 0, RAID 1, RAID 5 e RAID 0+1




   “Deus salve os pessimistas, pois eles inventaram o backup.quot;
                                                         Anônimo
Ferramentas com FreeBSD
• O que é RAID 0?
Ferramentas com FreeBSD
• O que é RAID 1?
Ferramentas com FreeBSD
• O que é RAID 5?
Ferramentas com FreeBSD
• O que é RAID 0+1?
Ferramentas com FreeBSD
• O que são Snaphots?
Ferramentas com FreeBSD
•   O que são ZFS?
•   Sistema desenvolvido pela Sun Microsystems
•   Específico para storages
•   Características
    –   O tamanho máximo de arquivos é de 16EiB (264 bytes);
    –   Numero máximo de arquivos na ordem de 248 (281.474.976.710.656);
    –   Tamanho em bytes para nomes de arquivos: 255;
    –   Tamanho máximo para cada volume usado 16EiB;
    –   Podemos ter até 264 snapshots em um sistema de arquivos ZFS;
    –   Os dados armazenados podem superar facilmente sistemas de 64bits;
    –   Sistemas stripes dinâmicos;
• 1 exbibyte = 260 bytes = 1,152,921,504,606,846,976 bytes = 1,024
  pebibytes e 1 pebibyte = 250 bytes = 1,125,899,906,842,624 bytes =
  1,024 tebibytes e 1 tebibyte = 240 bytes = 1,099,511,627,776 bytes =
  1,024 gibibytes
Ferramentas com FreeBSD
• O que são Sistemas iSCSI?
   – padrão de comunicação definido pela RFC 3720 para acesso remoto a blocos
     de dados em ambientes de storage

                                                                                             Disco Virtual 1


                                                                                             Disco Virtual 2
                                           Servidor iSCSI
                                                                                             Disco Virtual N
                                                      iSCSI Target




               iSCSI Initiator      iSCSI Initiator                  iSCSI Initiator     iSCSI Initiator       iSCSI Initiator




                Servidor de Banco         Servidor de                     Servdiro Web         Servidor de          Servidor FTP
                    de Dados                E-Mail                                               Vídeo
Proteção de Ativos



         3
Vendo na Prática
• Criando um sistema em CARP

# sysctl -w net.inet.carp.allow=1
# ifconfig carp1 create
# ifconfig carp1 vhid 1 pass P@ssw0rd carpdev em0 advskew 100 10.0.0.1
    255.255.255.0
# ifconfig carp1
carp1: flags=8802<UP,BROADCAST,SIMPLEX,MULTICAST> mtu 1500
    carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 100
    inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
Vendo na Prática
• RAID 0                                        # gstripe load

# kldload geom_stripe
# gstripe create stripefs /dev/da0 /dev/da1
# bsdlabel -wB /dev/stripe/stripefs

Agora é basta formatar e disponibilizar para uso:

# newfs /dev/stripe/stripefs
/dev/stripe/stripefs: 149504.0MB (306184192 sectors) block size 16384, fragment
    size 2048
     using 814 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, ... ... ...
#
# mkdir /mnt/stripe
# mount /dev/stripe/stripefs /mnt/stripe/
Vendo na Prática
• RAID 0

   – Vendo o status dos discos

       # gstripe status
        Name Status Components
        stripe/stripefs UP da0
                          da1


   – Parando o stripe (RAID 0):

       # umount /mnt/stripe
       # gstripe stop stripefs
Vendo na Prática
• RAID 0+1
Vendo na Prática
• RAID 0+1

# kldstat
Id Refs Address Size Name
 1 9 0xc0400000 906518 kernel
 2 1 0xc0d07000 6a32c acpi.ko
 3 1 0xc23db000 22000 linux.ko
 5 1 0xc2682000 15000 geom_mirror.ko
 6 1 0xc26c0000 7000 geom_stripe.ko


Crie os stripes envolvendo os dois pares de discos
Vendo na Prática
• RAID 0+1

# gmirror label -v -b round-robin mirrorfs2 /dev/stripe/stripefs1 /dev/stripe/stripefs2
Metadata value stored on /dev/stripe/stripefs1.
Metadata value stored on /dev/stripe/stripefs2.
Done.

# mkdir /mnt/espelhamento
# newfs /dev/mirror/mirrorfs2
/dev/mirror/mirrorfs2: 149504.0MB (306184188 sectors) block size 16384, fragment
    size 2048
     using 814 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976,
    3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440,
 6021792, 6398144, 6774496, 7150848, 7527200, ... ... ...

# mount /dev/mirror/mirrorfs2 /mnt/espelhamento
Vendo na Prática
• Snapshots

Criando:
# mkdir /usr/snapshots
# mksnap_ffs /usr /usr/snapshots/snapshot_usr.snap

Montando:
# mdconfig –a –t vnode –f /usr/snapshot/snapshot_usr.snap
WARNING: opening backing store: /usr/snapshot/snapshot_usr.snap readonly md0
# mkdir /mnt/snapshot_testes
# mount –r /dev/md0 /mnt/snapshot_testes

Removendo:
# umount /mnt/snapshot_testes
# mdconfig –d –u 0
Vendo na Prática
• Sistemas iSCSI
• Utilitário iscsi-target do NetBSD (/usr/ports/net/iscsi-target)
• Exempllo para o arquivo de configuração

     # Storage      Arquivo            início   Tamanho
     extent0      /mnt/iSCSI/iscsi-target0    0     100MB
     # target     flags Storage       Rede ou maquina para acesso
     target0      rw     extent0      192.168.241.0/24


•   Iniciando o serviço

# /usr/local/etc/rc.d/iscsi_target start
Starting iscsi_target.
Reading configuration from `/usr/local/etc/iscsi/targets'
target0:rw:192.168.241.0/24
     extent0:/mnt/iSCSI/iscsi-target0:0:104857600
DISK: 1 logical unit (204800 blocks, 512 bytes/block), type iscsi fs
DISK: LUN 0: 100 MB disk storage for quot;target0quot;
TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target
Vendo na Prática
• Um Sistemas iSCSI Seguro
Links Recomendados
• Alta Disponibilidade:
   http://pt.wikipedia.org/wiki/Sistema_de_alta_disponibilidade
• Site de Jorge Castro (Gestão de TI, ITIL, Gestão de Processos de
  Negócio)
   –   (http://webinsider.uol.com.br/index.php/author/jorge_castro)
• VMware High Availability (HA)
   –   (http://www.vmware.com/products/vi/vc/ha.html)
• How to install FreeBSD 7.0 under ZFS
   – (https://www.ish.com.au/solutions/articles/freebsdzfs)
• WHEN TO (AND NOT TO) USE RAID-Z
   – (http://blogs.sun.com/roller/page/roch?entry=when_to_and_not_to)
• ZFS, Sun's Cutting-Edge File System (Part 2: Ease of
  Administration and Future Enhancements)
   – (http://www.sun.com/bigadmin/features/articles/zfs_part2_ease.jsp)
• Official Linux Unionfs home page
   – (http://unionfs.filesystems.org/)
FreeBsd com Alta Disponibilidade

Mais conteúdo relacionado

Mais procurados

FreeBSD & Campi Universitários
FreeBSD & Campi UniversitáriosFreeBSD & Campi Universitários
FreeBSD & Campi UniversitáriosVinícius Zavam
 
Instalacao e Configuracao de um Ambiente FreeBSD
Instalacao e Configuracao de um Ambiente FreeBSDInstalacao e Configuracao de um Ambiente FreeBSD
Instalacao e Configuracao de um Ambiente FreeBSDVinícius Zavam
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores LinuxJoão Sá
 
Workshop linux system administration ls
Workshop linux system administration lsWorkshop linux system administration ls
Workshop linux system administration lsLinux Solutions
 
Debian Linux - Demonstração de Aula
Debian Linux - Demonstração de AulaDebian Linux - Demonstração de Aula
Debian Linux - Demonstração de AulaInstituto Inovar
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSDflisolmaringa
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William SouzaTchelinux
 
Debian para servidores
Debian para servidoresDebian para servidores
Debian para servidoresThiago Finardi
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Ivo Calado
 
Aula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVMAula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVMLeo Amorim
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debianEduardo Mendes
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneosFernando Ike
 

Mais procurados (20)

FreeBSD & Campi Universitários
FreeBSD & Campi UniversitáriosFreeBSD & Campi Universitários
FreeBSD & Campi Universitários
 
Instalacao e Configuracao de um Ambiente FreeBSD
Instalacao e Configuracao de um Ambiente FreeBSDInstalacao e Configuracao de um Ambiente FreeBSD
Instalacao e Configuracao de um Ambiente FreeBSD
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Administração de Redes Linux - I
Administração de Redes Linux - IAdministração de Redes Linux - I
Administração de Redes Linux - I
 
Administração de servidores Linux
Administração de servidores LinuxAdministração de servidores Linux
Administração de servidores Linux
 
Linux
LinuxLinux
Linux
 
Workshop linux system administration ls
Workshop linux system administration lsWorkshop linux system administration ls
Workshop linux system administration ls
 
Adm sop-unidade2
Adm sop-unidade2Adm sop-unidade2
Adm sop-unidade2
 
Debian Linux - Demonstração de Aula
Debian Linux - Demonstração de AulaDebian Linux - Demonstração de Aula
Debian Linux - Demonstração de Aula
 
Free BSD e Cent OS
Free BSD e Cent OS Free BSD e Cent OS
Free BSD e Cent OS
 
Apresentando o FreeBSD
Apresentando o FreeBSDApresentando o FreeBSD
Apresentando o FreeBSD
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William Souza
 
Linux de A a Z
Linux de A a ZLinux de A a Z
Linux de A a Z
 
Debian para servidores
Debian para servidoresDebian para servidores
Debian para servidores
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1
 
Aula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVMAula Grátis de RAID via software e LVM
Aula Grátis de RAID via software e LVM
 
Kernel do Linux
Kernel do LinuxKernel do Linux
Kernel do Linux
 
Instalação de um servidor debian
Instalação de um servidor debianInstalação de um servidor debian
Instalação de um servidor debian
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Trabalho de Nathalia & Edgar
Trabalho de Nathalia & EdgarTrabalho de Nathalia & Edgar
Trabalho de Nathalia & Edgar
 

Semelhante a FreeBsd com Alta Disponibilidade

DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)Caio Candido
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorsimoesflavio
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorAndré bogas
 
Redes de computadores módulo 3
Redes de computadores módulo 3Redes de computadores módulo 3
Redes de computadores módulo 3ruitavares998
 
Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1diogomendes99
 
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsArmazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsAmazon Web Services LATAM
 
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Bruno Castelucci
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesJoao Galdino Mello de Souza
 
Sistemas operacionais raid
Sistemas operacionais   raidSistemas operacionais   raid
Sistemas operacionais raidCarlos Melo
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL Brasil
 
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureDBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureFranky Weber Faust
 

Semelhante a FreeBsd com Alta Disponibilidade (20)

DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Redes de computadores módulo 3
Redes de computadores módulo 3Redes de computadores módulo 3
Redes de computadores módulo 3
 
Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1
 
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsArmazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
 
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Redes e Servidores
Redes e ServidoresRedes e Servidores
Redes e Servidores
 
Virtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno DominguesVirtualização de Banco de Dados por Bruno Domingues
Virtualização de Banco de Dados por Bruno Domingues
 
Sistemas operacionais raid
Sistemas operacionais   raidSistemas operacionais   raid
Sistemas operacionais raid
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Performance tuning
Performance tuningPerformance tuning
Performance tuning
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI Tecnologia
 
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructureDBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
DBABrasil 2.0 - Extraindo o máximo do oracle grid infrastructure
 
Asterisk
AsteriskAsterisk
Asterisk
 

FreeBsd com Alta Disponibilidade

  • 1. FreeBSD com Alta Disponibilidade Denis Augusto (denis.augusto@gmail.com) “Comece pequeno, pense grande, cresça rápido”
  • 2. Agenda • Visão geral – O que é FreeBSD? – Para que usar FreeBSD? – Novidades para pensar • O que é Alta Disponibilidade? • Ferramentas com FreeBSD em Alta Disponibilidade – CARP (Common Address Redundancy Protocol) – RAID (Redundant Array of Independent Drives ) – Snapshots – ZFS (Zettabyte File System) – Sistemas iSCSI • Aplicações práticas • Links recomendados
  • 3. O que é FreeBSD Sistema Operacional Específico para Derivado do SO muito customizável Servidores 386BSD (1993) com recursos de storage
  • 4. Para que usar FreeBSD? • Multitarefa preemptiva com ajuste dinâmico de prioridades e algoritmos para a proteção de áreas de memória; • O mais popular sistema BSD; • Para aplicações de grande I/O de disco – o Servidores de bases de dados; – o Aplicações de imagem e vídeo; • Uso de Storages; • Servidores para resolução de nomes DNS; • Para execução eficiente de binários pertencentes a outros sistemas operacionais, principalmente de Linux; • Serviços de Web Proxy, Web Cache, Web Servers, roteadores, impressão, correio eletrônico, roteadores e muito mais; • Concentra o record de armazenamento de 2TBytes em um único sistema operacional.
  • 5. O Gerente de TI é a Assim?
  • 7. Pontos de Preocupação Desempenho Estabilidade Proteção de Ativos Segurança Gerenciamento
  • 9. Novidades para Pensar “Como configurar o acesso a porta 22/TCP feito por 20 origens diferentes?” Em Linux (20 vezes a mesma linha): /usr/sbin/iptables -v -A INPUT -p tcp -s IPfonte/32 --destination-port 22 -j ACCEPT Usando Packet Filter (Uma Só linha): pass in from <Tabela_IPs_Fonte> to $Interface_Externa port = 22 queue SSH
  • 10. O que é Alta Disponibilidade? • Conceito Geral • Alta Disponibilidade X SLA (Service Level Agreement) – Para que serve o SLA? – Usando MTBF (Mean Time Between Failures/Tempo Médio Entre Falhas) – Usando MTTR (Mean Time To Repair/Tempo Médio para Recuperação) – Disponibilidade = MTBF / (MTBF + MTTR) – Alta Disponibilidade X Custos Nível do SLA Downtime/mês Downtime/ano 95% 1 dias 12:00:00h 18 dias 6:00:00h 96% 1 dias 4:48:00h 14 dias 14:24:00h 97% 0 dias 21:36:00h 10 dias 22:48:00h 98% 0 dias 14:24:00h 7 dias 7:12:00h 99% 0 dias 7:12:00h 3 dias 15:36:00h 99,9% 0 dias 0:43:11.99h 0 dias 8:45:35.99h 99,99% 0 dias 0:04:19.20h 0 dias 0:52:33.60h 99,999% 0 dias 0:00:25.92h 0 dias 0:05:15.36h
  • 12. Ferramentas com FreeBSD • Baseado nas RFCs RFC3768 e RFC2281 • Compilando no Kernel com a opção device carp • Simples uso • Nativo do kernel • Seguro – criptografia e senha para autenticação • CARP com interfaces de sincronia (pfsync)
  • 13. Ferramentas com FreeBSD • Funcionamento Geral
  • 14. Ferramentas com FreeBSD • Customizando o Kernel Variável Descrição net.inet.carp.allow Aceita pacotes CARP entrando pelas interfaces ou não. O padrão é 1 (ativado). Ativa os hosts que participam do grupo CARP e verificar melhor a ausência do net.inet.carp.preempt host master. Esta opção ativa em todas as interfaces a verificação de falha (failover). Esta opção é desabilitada por padrão. net.inet.carp.log Registra em log os pacotes CARP ruins. O padrão é 1(ativado). Balanceamento de carga sob múltiplos grupos de redundância. Isto é aplicado a net.inet.carp.arpbalance operações de balanceamento de carga (load balance). O padrão é 0 (desabilitado). Evita o conflito de endereços IP quando um mesmo esdereço é usado por clientes net.inet.ip.same_prefix_carp_only distintos. O estado de failover pode ser manualmente suprimido se a interface do pfsync net.inet.carp.suppress_preempt não estiver funcionando ou se o link estar ausente.
  • 16. Ferramentas com FreeBSD • O que é RAID (Redundant Array of Independent Drives)? • Auxílio na performance e na redundância • Exemplos: RAID 0, RAID 1, RAID 5 e RAID 0+1 “Deus salve os pessimistas, pois eles inventaram o backup.quot; Anônimo
  • 17. Ferramentas com FreeBSD • O que é RAID 0?
  • 18. Ferramentas com FreeBSD • O que é RAID 1?
  • 19. Ferramentas com FreeBSD • O que é RAID 5?
  • 20. Ferramentas com FreeBSD • O que é RAID 0+1?
  • 21. Ferramentas com FreeBSD • O que são Snaphots?
  • 22. Ferramentas com FreeBSD • O que são ZFS? • Sistema desenvolvido pela Sun Microsystems • Específico para storages • Características – O tamanho máximo de arquivos é de 16EiB (264 bytes); – Numero máximo de arquivos na ordem de 248 (281.474.976.710.656); – Tamanho em bytes para nomes de arquivos: 255; – Tamanho máximo para cada volume usado 16EiB; – Podemos ter até 264 snapshots em um sistema de arquivos ZFS; – Os dados armazenados podem superar facilmente sistemas de 64bits; – Sistemas stripes dinâmicos; • 1 exbibyte = 260 bytes = 1,152,921,504,606,846,976 bytes = 1,024 pebibytes e 1 pebibyte = 250 bytes = 1,125,899,906,842,624 bytes = 1,024 tebibytes e 1 tebibyte = 240 bytes = 1,099,511,627,776 bytes = 1,024 gibibytes
  • 23. Ferramentas com FreeBSD • O que são Sistemas iSCSI? – padrão de comunicação definido pela RFC 3720 para acesso remoto a blocos de dados em ambientes de storage Disco Virtual 1 Disco Virtual 2 Servidor iSCSI Disco Virtual N iSCSI Target iSCSI Initiator iSCSI Initiator iSCSI Initiator iSCSI Initiator iSCSI Initiator Servidor de Banco Servidor de Servdiro Web Servidor de Servidor FTP de Dados E-Mail Vídeo
  • 25. Vendo na Prática • Criando um sistema em CARP # sysctl -w net.inet.carp.allow=1 # ifconfig carp1 create # ifconfig carp1 vhid 1 pass P@ssw0rd carpdev em0 advskew 100 10.0.0.1 255.255.255.0 # ifconfig carp1 carp1: flags=8802<UP,BROADCAST,SIMPLEX,MULTICAST> mtu 1500 carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 100 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
  • 26. Vendo na Prática • RAID 0 # gstripe load # kldload geom_stripe # gstripe create stripefs /dev/da0 /dev/da1 # bsdlabel -wB /dev/stripe/stripefs Agora é basta formatar e disponibilizar para uso: # newfs /dev/stripe/stripefs /dev/stripe/stripefs: 149504.0MB (306184192 sectors) block size 16384, fragment size 2048 using 814 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. super-block backups (for fsck -b #) at: 160, 376512, 752864, 1129216, 1505568, ... ... ... # # mkdir /mnt/stripe # mount /dev/stripe/stripefs /mnt/stripe/
  • 27. Vendo na Prática • RAID 0 – Vendo o status dos discos # gstripe status Name Status Components stripe/stripefs UP da0 da1 – Parando o stripe (RAID 0): # umount /mnt/stripe # gstripe stop stripefs
  • 29. Vendo na Prática • RAID 0+1 # kldstat Id Refs Address Size Name 1 9 0xc0400000 906518 kernel 2 1 0xc0d07000 6a32c acpi.ko 3 1 0xc23db000 22000 linux.ko 5 1 0xc2682000 15000 geom_mirror.ko 6 1 0xc26c0000 7000 geom_stripe.ko Crie os stripes envolvendo os dois pares de discos
  • 30. Vendo na Prática • RAID 0+1 # gmirror label -v -b round-robin mirrorfs2 /dev/stripe/stripefs1 /dev/stripe/stripefs2 Metadata value stored on /dev/stripe/stripefs1. Metadata value stored on /dev/stripe/stripefs2. Done. # mkdir /mnt/espelhamento # newfs /dev/mirror/mirrorfs2 /dev/mirror/mirrorfs2: 149504.0MB (306184188 sectors) block size 16384, fragment size 2048 using 814 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. super-block backups (for fsck -b #) at: 160, 376512, 752864, 1129216, 1505568, 1881920, 2258272, 2634624, 3010976, 3387328, 3763680, 4140032, 4516384, 4892736, 5269088, 5645440, 6021792, 6398144, 6774496, 7150848, 7527200, ... ... ... # mount /dev/mirror/mirrorfs2 /mnt/espelhamento
  • 31. Vendo na Prática • Snapshots Criando: # mkdir /usr/snapshots # mksnap_ffs /usr /usr/snapshots/snapshot_usr.snap Montando: # mdconfig –a –t vnode –f /usr/snapshot/snapshot_usr.snap WARNING: opening backing store: /usr/snapshot/snapshot_usr.snap readonly md0 # mkdir /mnt/snapshot_testes # mount –r /dev/md0 /mnt/snapshot_testes Removendo: # umount /mnt/snapshot_testes # mdconfig –d –u 0
  • 32. Vendo na Prática • Sistemas iSCSI • Utilitário iscsi-target do NetBSD (/usr/ports/net/iscsi-target) • Exempllo para o arquivo de configuração # Storage Arquivo início Tamanho extent0 /mnt/iSCSI/iscsi-target0 0 100MB # target flags Storage Rede ou maquina para acesso target0 rw extent0 192.168.241.0/24 • Iniciando o serviço # /usr/local/etc/rc.d/iscsi_target start Starting iscsi_target. Reading configuration from `/usr/local/etc/iscsi/targets' target0:rw:192.168.241.0/24 extent0:/mnt/iSCSI/iscsi-target0:0:104857600 DISK: 1 logical unit (204800 blocks, 512 bytes/block), type iscsi fs DISK: LUN 0: 100 MB disk storage for quot;target0quot; TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target
  • 33. Vendo na Prática • Um Sistemas iSCSI Seguro
  • 34. Links Recomendados • Alta Disponibilidade: http://pt.wikipedia.org/wiki/Sistema_de_alta_disponibilidade • Site de Jorge Castro (Gestão de TI, ITIL, Gestão de Processos de Negócio) – (http://webinsider.uol.com.br/index.php/author/jorge_castro) • VMware High Availability (HA) – (http://www.vmware.com/products/vi/vc/ha.html) • How to install FreeBSD 7.0 under ZFS – (https://www.ish.com.au/solutions/articles/freebsdzfs) • WHEN TO (AND NOT TO) USE RAID-Z – (http://blogs.sun.com/roller/page/roch?entry=when_to_and_not_to) • ZFS, Sun's Cutting-Edge File System (Part 2: Ease of Administration and Future Enhancements) – (http://www.sun.com/bigadmin/features/articles/zfs_part2_ease.jsp) • Official Linux Unionfs home page – (http://unionfs.filesystems.org/)