MVP ShowCast IT - Mensageria - Exchange 2013 Alta Disponibilidade
FreeBsd com Alta Disponibilidade
-
Upload
boteco-4linux -
Category
Technology
-
view
3.253 -
download
2
description
Transcript of FreeBsd com Alta Disponibilidade
FreeBSD com Alta Disponibilidade
Denis Augusto
“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
Servidores
Derivado do
386BSD (1993)
SO muito customizável
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
Segurança
Estabilidade
Gerenciamento
Proteção de
Ativos
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).
net.inet.carp.preempt
Ativa os hosts que participam do grupo CARP e verificar melhor a ausência do
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).
net.inet.carp.arpbalance
Balanceamento de carga sob múltiplos grupos de redundância. Isto é aplicado a
operações de balanceamento de carga (load balance). O padrão é 0
(desabilitado).
net.inet.ip.same_prefix_carp_onlyEvita o conflito de endereços IP quando um mesmo esdereço é usado por clientes
distintos.
net.inet.carp.suppress_preemptO estado de failover pode ser manualmente suprimido se a interface do pfsync
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."
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
Servidor de Banco
de DadosServidor de
Servidor FTPServidor de
Vídeo
Servdiro Web
iSCSI Initiator iSCSI Initiator iSCSI Initiator iSCSI Initiator iSCSI Initiator
Servidor iSCSI
iSCSI Target
Disco Virtual 1
Disco Virtual 2
Disco Virtual N
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
# 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/
# gstripe load
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 "target0"
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/)