O documento fornece uma visão geral do sistema operacional FreeBSD e ferramentas para alta disponibilidade, como CARP, RAID, snapshots, ZFS e sistemas iSCSI. Apresenta exemplos práticos de configuração dessas ferramentas e links recomendados para mais informações.
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.
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)
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
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
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
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/)