Big Data Networking Felipe Santos e Lucas Teixeira
Roteiro Big Data O que é? Motivação Aplicações Modelagem de comunicação para Big Data Problemas comuns Considerações de design Tecnologias Multipath Demonstração
Big Data - O que é? Big data é o termo usado para data sets tão grandes que técnicas de análise e processamento de dados convencionais se tornam inadequadas. Com o advento do aumento de uso de tecnologias, podemos encontrar big data em quase todas as áreas de conhecimento.
Big Data - Características Volume: Quanto mais dados, mais potencial e valor o data set terá. Variedade: O tipo do conteúdo junto a dados que auxiliam a análise dos dados Velocidade: A velocidade em que a informação ou dados estão sendo gerados
Big Data - Características Variabilidade: Inconsistência que pode ocorrer nos dados, tornando a análise mais difícil. Variabilidade Variedade! Veracidade: A qualidade dos dados obtidos, que pode variar bastante. Complexidade: Gerenciamento dos dados pode ser complexo: correlacionar dados.
Big Data - Aplicações As aplicações em big data se espalham, como dito por virtualmente todas as áreas de conhecimento onde ocorrem coleta de dados com auxílio de alguma tecnologia ou dispositivo.
Big Data - Aplicações Antes de citar as aplicações, alguns fatos: 4.4 zetabytes de informação no mundo A cada minuto: 2.5 milhões de shares no Facebook 300.000 tweets 200 milhões de e-mails 48h de video em upload no YouTube
Big Data - Aplicações Governos Censos, dados de tráfico, serviços de inteligência Ciência LHC produz 25 petabytes de dados por ano Pesquisas em genética: Projeto Genoma Indústria de Tecnologia Processamentos de transações Internet of Things (IoT)
Mas como lidar com essa imensidão de dados?
Big Data - Arquitetura de Sistema Métodos de computação centralizadas não são eficientes para lidar com o volume de dados, tanto em questão de processamento quanto de armazenamento. Solução: sistemas distribuidos.
Big Data - Arquitetura de Sistema Quando se lida com grandes quantidades de dados, o sistema deve possuir certas características: Resiliência de rede Soluções para problemas de congestionamento da rede Consistência é mais importante que latência Escalabilidade Particionamento de rede
Big Data - Resiliência Acesso à rede é uma prioridade No entanto, falhas sempre ocorrem O sistema deve considerar fontes diversas de falhas e ser desenhado de forma a contornar as falhas e continuar ativo Exemplo: Multipath
Big Data - Congestionamento Grande volume de dados -> congestionamento -> perda de pacotes -> retransmissão de dados Sistemas que lidam com big data devem ser projetados de forma a lidar com grandes cargas de transferência Solução: alta diversidade de caminhos de modo a mitigar o congestionamento. (Fibre Channel + Multipath)
Big Data - Consistência > Latência Sistemas de big data tendem a ser altamente síncronos: tarefas em paralelo Discrepância de performace entre nós pode gerar falhas Consistência entre as máquinas se torna importante O sistema não é sensível a latência, no entanto: tempo de execução na escala de minutos
Big Data - Escalabilidade A quantidade de dados gerados no mundo tende a aumentar de modo exponencial A questão é: como escalar seu sistema? Adicionar máquinas físicas Data warehouse Localidade pode ser um problema Re-projetar o sistema Este ponto é menos sobre escala absoluta e mais sobre o caminho para uma solução suficentemente escalável
Big Data - Particionamento de Rede Particionar a rede é importante para direcionar o tráfico de dados. Impede que a carga de trabalho gerada pelo tráfego impacte em outras tarefas do sistema.
Multipath Definição: múltiplos caminhos para acesso a um dispositivo de armazenamento Conceito: um dispositivo virtual lida trata o acesso a um dispositivo real por diversos caminhos.
Diagrama multipath
Multipath - por quê? Tolerância a falhas Balanceamento de carga Ganho de performance
Multipath - contexto Alguns discos/controladoras possuem duas portas.
Exemplo: Fibre Channel
Multipath - funcionamento O dispositivo virtual trata os pedidos de I/O para o dispositivo real Recebe pedido de I/O (read/write) Escalona o pedido (entre os caminhos, segundo política de roteamento: round-robin, prioridade, etc) Despacha o pedido (para um caminho disponível) ou falha/enfilera (não há caminhos disponíveis) Espera que a operação termine Responde o pedido de I/O
Multipath - funcionamento Kernel Utiliza device-mappers para mapear dispositivos reais em dispositivos reais Dispositivo virtual: /dev/mapper/mpath* Dispositivo(s) real(is): /dev/sd* (um dispositivo por caminho; muitos dipositivos por mapa)
Demonstração A demonstração utilizando QEMU cobrirá: Linha de comando do QEMU para simulação de multipath Descoberta de caminhos e configuração dos mapas Remoção de caminho e adição I/O em dispositivo single-path vs multipath
Perguntas?