onix Uma plataforma de desenvolvimento para controle distribuído introdução o Cloud computing – a evolução o Paradigma geral de controle o Provisão de serviços o Foco em lógica ao invés de infraestrutura introdução o Modelo tradicional o Dificuldade o Criação de funções de controle o Exige criação de protocolo próprio o Envolvimento no aspecto baixo nível introdução o Plataforma genérica o Controle em nível de rede o Abstração de distribuição de estado o Interface para desenvolvimento o “Abaixo a visão de baixo nível !” introdução o Plano de controle | Plano de encaminhamento o Funções da plataforma o o o o Coletar informações dos switches e... ... Distribuir o estado apropriado entre eles Coordenar o estado entre servidores da plataforma Prover uma API para desenvolvimento o Rede definida por software - SDN introdução o Modelo RDS o Nova função implementada sobre a API o Dificuldades por conta da plataforma o De que forma? o Primitivas de distribuição de estado o Uso de técnicas consolidadas introdução o Mas... ...e os... Desafios! o o o o o Generalidade Escalabilidade Confiabilidade Simplicidade Desempenho arquitetura o Componentes - Infraestrutura Física o Switches o Roteadores o Outros elementos de rede manipuláveis arquitetura o Componentes - Conectividade o Canal de controle o In band x Out of band o Comunicação bidirecional o Protocolos padrão arquitetura o Componentes - Onix o Sistema distribuído o Cluster de um ou mais servidores o Cada um Uma ou mais instâncias da Onix o Responsabilidades o Habilitar lógica das aplicações o Operar sobre estados dos elementos o Disseminar estados arquitetura o Componentes - Lógica de Controle o Codificada sobre a API o Determina comportamento da rede o Determina características da aplicação arquitetura o API o “... útil e genérica ...” o Visibilidade da rede o Ler e escrever estados o Modelo de dados o Elemento de rede Objeto o Ler, escrever o NIB – Cópia da rede arquitetura Node Forwarding Engine 1 n Forwarding Table Host 1 n Network Port 2 1 Link arquitetura o NIB (Network Information Base) o Mecanismo de replicação e distribuição o o o o o Mantém entidades de rede Elementos de rede ou suas subpartes Identificador global 128-bits Atributos (chave-valor) Métodos arquitetura Categoria Finalidade Consulta Criar, excluir Buscar por entidades. Criar e excluir entidades. Acesso a atributos Inspecionar e modificar entidades. Notificações Receber atualizações sobre mudanças. Sincronização Esperar que atualizações sejam aplicadas no conteúdo dos elementos da rede e dos controladores. Configuração Configurar como os estados são importados e exportados da NIB. Solicitar que entidades sejam importadas sob demanda. Pull arquitetura o NIB (Network Information Base) o Consulta direta o Notificações: adição, alteração ou remoção o Manipulação {entidades estado da rede} o Operações assíncronas o o o o Eventualmente! Sem garantia de ordenação ou latência Eficiência x Necessidade Primitiva de sincronização - callback arquitetura o NIB (Network Information Base) o NIB Escalabilidade o Consistência ajustável o Detecção e resolução de conflitos o Sem mecanismo de bloqueio distribuído o {requisição, liberação} de acesso exclusivo o Dependência dos mecanismos de distribuição mecanismo de distribuição o Observações sobre aplicações o Escalabilidade o Frequência de atualização o Durabilidade o Consistência o Opções quanto a taxa de atualização ( ) Alta Disponibilidade ( ) Baixa Consistência e durabilidade mecanismo de distribuição o Distribuição de estado entre instâncias Onix o Banco de dados replicado o Durabilidade o Consistência o Problema de desempenho o Dados com baixas taxas de mudança o API SQL o Suporte a Importação e Exportação o Transações o Mudanças Banco de Dados NIB mecanismo de distribuição o Distribuição de estado entre instâncias Onix o Distributed Hash Table o Disponibilidade o Consistência eventual o Armazenada em memória o Dados com altas taxas de mudança o Atualizações simultâneas o Estados inconsistentes o Aplicações resolvem o Evitam o conflitos ou atuação simultânea mecanismo de distribuição o Gerenciamento de estado de elemento de rede o Não usa protocolo particular o Qualquer protocolo é aceito o Condição o Sincronização o {Estado atual da rede, NIB} o OpenFlow o {Evento, Operações} Estados o Manipulados como entidades da NIB mecanismo de distribuição o Consistência e Coordenação o NIB é o point dos dados o “Não mexe aqui!” o Aplicação declara que dados import./export. o Integração sem exigências o Estados inconsistentes são armazenados o Fonte específica o Inconsistência entre diferentes fontes o Aplicações dizem como vão resolver mecanismo de distribuição o Consistência e Coordenação o Dois modos são disponibilizados: o Modo 1 o Entidades são classes C++ o Herança lógica de detecção de inconsistência o Sem exposição a inconsistência o Mas.... E se acontece? o Mudanças inconsistentes ficam pendentes o ( ) Aplicadas na NIB ( ) Inválidas mecanismo de distribuição o Consistência e Coordenação o Dois modos são disponibilizados: o Modo 2 o Resolução de conflito na importação o {Fonte do dado, NIB} escalabilidade e confiabilidade o Utilização da NIB determina o Propriedades de {escalabilidade, confiabilidade} o número de elementos exaurir memória o número de eventos saturar CPU escalabilidade e confiabilidade o Escalabilidade o Particionamento o Agregação o Consistência e durabilidade escalabilidade e confiabilidade o Escalabilidade o Suporte a três estratégias o Particionamento o Instância mantem parte atualizada da NIB o Menor número de eventos para processar o Agregação o Expõe subconjunto da NIB como um agregado escalabilidade e confiabilidade o Escalabilidade o Consistência e durabilidade o Através de mecanismos de bloqueio e o Algoritmos de consistência ou o Detecção e resolução de conflitos o Alta durabilidade e consistência o Banco de dados o Volatilidade e tolerância a inconsistência o DHT escalabilidade e confiabilidade o Confiabilidade o Gerência de falha: o Elementos de rede o Link o Instância Onix o Conectividade escalabilidade e confiabilidade o Confiabilidade o Gerência de falha o Elementos de rede e link o Desviar tráfego de elementos problemáticos o Tempo mínimo: Disseminação + Recálculo o Instâncias Onix o Outra instância assume as responsabilidades o Gerenciamento redundante o Perda de atualização em atuação concorrente o Alterações {pode, não pode} ser sobrescrita? escalabilidade e confiabilidade o Confiabilidade o Gerência de falha o Falha de conectividade o Distribuição de estado separada da topologia o Conectividade requerida o {Elementos de rede, Instância Onix} o {Instância Onix, Instância Onix} o Rede {gerenciamento , tráfego} separadas o Topologia física é conhecida pela Onix o {Encaminhamento estático, Multipathing} implementação o 150000 linhas de código C++ o Bibliotecas de terceiros o Contém lógica para o Comunicação com elementos de rede o Gestão de informação na NIB o Framework para desenvolvedores o Comunicação por RPC sobre conexões IPC o Suporte a linguagens: C++, Python e Java implementação o Módulos escritos com baixo acoplamento o Substituição sem recompilação o Interface deve permanecer a mesma o {Carga, descarga} dinâmica de componentes o Desenvolvedor deve expressar as dependências o Assegurar ordem apropriada de {carga, descarga} aplicações o Distributed Virtual Switch o Ambientes corporativos virtualizados o Switches Baseados em software o Milhares ou dez. de milhares de VMs o Ambientes altamente dinâmicos o Criação, exclusão, migração on-the-fly o Distributed Virtual Switch (DVS) aplicações o Distributed Virtual Switch o DVS provê abstração lógico de switch o Nas portas declaram-se políticas o Ligadas nas VMs pelo hypervisor o DVS assegura que o Políticas o Nada de reconfiguração manual o Ok. Mas E A ONIX ? VMs aplicações o Distributed Virtual Switch o Onix não se envolve no encaminhamento o Invocada quando as VMs são: o Criadas, excluídas ou migradas o Pools o VMs tipicamente não migram entre pools o A lógica de controle particiona-se em pools o Uma instância Onix (1) (1) Pool aplicações o Distributed Virtual Switch o Configuração dos switches armazenadas no BD o Localização das VMs o Desconhecida entre instâncias Onix o Em caso de falha o Rede ainda pode operar o VMs dinâmicas no way ! aplicações o Data centers virtualizados multi locatários o Responsabilidades da rede o Gerenciar a dinâmica de hosts o Isolar endereçamento e recursos o Ex.: Sobreposição de IP ou MAC o Aplicação baseada na Onix o Permite criar redes locatárias o Cada uma com configuração independente aplicações o Data centers virtualizados multi locatários o Funções da lógica de controle o Estabelecer túneis entre hypervisor da mesmo rede o Particionar a rede entre instâncias Onix o Instância Onix o Gerencia subconjunto de hypervisors o Divulga seus pontos terminais na DHT o Outras instâncias o Configuram módulo importação DHT NIB conclusão o {Ambientes, Soluções, Protocolos} específicos o Exigem abordagem baixo nível o Onix o Abstração de nível físico o Foco em lógica o Facilidade de inclusão de novas técnicas o Facilidade de inclusão de novos algoritmos o Customização baixo nível em serviço sob demanda referências 1. Hurwitz, Judith, Bloor, Robin e Kaufman, Marcia. Cloud computing for dummies - HP Special Edition. Hoboken, NJ : Wiley Publishing, Inc, 2010. 978-0-470-63881-1. 2. Koponen, Teemu, et al., et al. Onix: A Distribuited Control Platform for Large-Scale Production Networks. 3. Tanenbaum, Andrew. Distribuited Systems, Principles and Paradigms. New Jersey : Prentice Hall, 2007. 0-13239227-5. 4. Kurose, James F. e Ross, Keith W. Computer networking, a top-down approach featuring the Internet. 3ª. s.l. : Pearson, 2006. 85-88639-18-1. 5. Akella, Aditya. Multi-Path Routing: A Different Perspective. s.l. : Carnagie Mellon University. 6. Elmasri, Ramez e Navathe, Shamkant B. Fundamentals of database systems. s.l. : Pearson, 2004. 0-321-12226-7. 7. Mckeown, N., et al., et al. OpenFlow: Enabling Innovation in Campus Networks. SIGCOMM CCR 38. 2, 2008. 8. Hunt, P., et al., et al. ZooKeeper: Wait-free Coordination for Internet-Scale Systems. Usenix Annual Technical Conference. Junho de 2010. perguntas ?