onix uma plataforma de desenvolvimento para controle distribuído
TRANSCRIPT
onixUma plataforma de desenvolvimento para controle distribuído
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
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çãoo Plano de controle | Plano de
encaminhamento
o Funções da plataforma
o Coletar informações dos switches e...o ... Distribuir o estado apropriado entre eleso Coordenar o estado entre servidores da
plataformao 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 estadoo Uso de técnicas consolidadas
o Mas......e os...
Desafios!
o Generalidadeo Escalabilidadeo Confiabilidadeo Simplicidadeo Desempenho
introdução
o Componentes - Infraestrutura Física
o Switches
o Roteadores
o Outros elementos de rede manipuláveis
arquitetura
o Componentes - Conectividade
o Canal de controleo In band x Out of bando Comunicação bidirecionalo Protocolos padrão
arquitetura
onix
o Componentes - Onixo Sistema distribuídoo Cluster de um ou mais servidoreso Cada um Uma ou mais instâncias da Onix
o Responsabilidadeso Habilitar lógica das aplicaçõeso Operar sobre estados dos elementoso 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 APIo “... útil e genérica ...”o Visibilidade da redeo Ler e escrever estados
o Modelo de dadoso Elemento de rede Objetoo Ler, escrevero NIB – Cópia da rede
arquitetura
arquitetura
Node Port Link
ForwardingEngine
Host Network
ForwardingTable
1
n
1 n 2 1
o NIB (Network Information Base)
o Mecanismo de replicação e distribuiçãoo Mantém entidades de redeo Elementos de rede ou suas subparteso Identificador global 128-bitso Atributos (chave-valor)o Métodos
arquitetura
arquiteturaCategoria FinalidadeConsulta Buscar por entidades.Criar, excluir 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.
Pull Solicitar que entidades sejam importadas sob demanda.
o NIB (Network Information Base)o Consulta direta o Notificações: adição, alteração ou remoçãoo Manipulação {entidades estado da rede}
o Operações assíncronaso Eventualmente!o Sem garantia de ordenação ou latênciao Eficiência x Necessidadeo Primitiva de sincronização - callback
arquitetura
o NIB (Network Information Base)o NIB Escalabilidadeo Consistência ajustávelo Detecção e resolução de conflitos
o Sem mecanismo de bloqueio distribuídoo {requisição, liberação} de acesso
exclusivoo Dependência dos mecanismos de
distribuição
arquitetura
o Observações sobre aplicaçõeso Escalabilidadeo Frequência de atualizaçãoo Durabilidadeo 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 Onixo Banco de dados replicadoo Durabilidadeo Consistênciao Problema de desempenhoo Dados com baixas taxas de mudançao API SQLo Suporte a Importação e Exportaçãoo Transaçõeso Mudanças Banco de Dados NIB
mecanismo de distribuição
o Distribuição de estado entre instâncias Onixo Distributed Hash Tableo Disponibilidadeo Consistência eventualo Armazenada em memóriao Dados com altas taxas de mudançao Atualizações simultâneaso Estados inconsistenteso Aplicações resolvemo Evitam o conflitos ou atuação
simultânea
mecanismo de distribuição
o Gerenciamento de estado de elemento de redeo Não usa protocolo particularo Qualquer protocolo é aceitoo Condiçãoo Sincronizaçãoo {Estado atual da rede, NIB}
o OpenFlowo {Evento, Operações} Estadoso Manipulados como entidades da NIB
mecanismo de distribuição
o Consistência e Coordenaçãoo NIB é o point dos dadoso “Não mexe aqui!”o Aplicação declara que dados
import./export.o Integração sem exigênciaso Estados inconsistentes são armazenadoso Fonte específicao Inconsistência entre diferentes fontes
o Aplicações dizem como vão resolver
mecanismo de distribuição
o Consistência e Coordenaçãoo Dois modos são disponibilizados:o Modo 1o Entidades são classes C++o Herança lógica de detecção de
inconsistênciao Sem exposição a inconsistência
o Mas.... E se acontece?o Mudanças inconsistentes ficam
pendenteso ( ) Aplicadas na NIB ( ) Inválidas
mecanismo de distribuição
o Consistência e Coordenaçãoo Dois modos são disponibilizados:
o Modo 2o Resolução de conflito na importaçãoo {Fonte do dado, NIB}
mecanismo de distribuição
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 Escalabilidadeo Suporte a três estratégias
o Particionamentoo Instância mantem parte atualizada da
NIBo Menor número de eventos para
processar
o Agregaçãoo Expõe subconjunto da NIB como um
agregado
escalabilidade e confiabilidade
o Escalabilidadeo Consistência e durabilidadeo Através de mecanismos de bloqueio eo Algoritmos de consistência ou o Detecção e resolução de conflitos
o Alta durabilidade e consistênciao Banco de dados
o Volatilidade e tolerância a inconsistênciao DHT
escalabilidade e confiabilidade
o Confiabilidadeo Gerência de falha:
o Elementos de rede
o Link
o Instância Onix
o Conectividade
escalabilidade e confiabilidade
o Confiabilidadeo Gerência de falhao Elementos de rede e link
o Desviar tráfego de elementos problemáticos
o Tempo mínimo: Disseminação + Recálculo
o Instâncias Onixo Outra instância assume as
responsabilidadeso Gerenciamento redundanteo Perda de atualização em atuação
concorrenteo Alterações {pode, não pode} ser
sobrescrita?
escalabilidade e confiabilidade
o Confiabilidadeo Gerência de falhao Falha de conectividade
o Distribuição de estado separada da topologia
o Conectividade requeridao {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 Onixo {Encaminhamento estático,
Multipathing}
escalabilidade e confiabilidade
o 150000 linhas de código C++o Bibliotecas de terceiros
o Contém lógica parao Comunicação com elementos de redeo Gestão de informação na NIBo Framework para desenvolvedores
o Comunicação por RPC sobre conexões IPCo Suporte a linguagens: C++, Python e Java
implementação
o Módulos escritos com baixo acoplamento
o Substituição sem recompilaçãoo Interface deve permanecer a mesma
o {Carga, descarga} dinâmica de componentes
o Desenvolvedor deve expressar as dependênciaso Assegurar ordem apropriada de {carga,
descarga}
implementação
o Distributed Virtual Switch
o Ambientes corporativos virtualizadoso Switches Baseados em softwareo Milhares ou dez. de milhares de VMso Ambientes altamente dinâmicoso Criação, exclusão, migração on-the-fly
o Distributed Virtual Switch (DVS)
aplicações
o Distributed Virtual Switcho DVS provê abstração lógico de switcho Nas portas declaram-se políticaso Ligadas nas VMs pelo hypervisor
o DVS assegura queo Políticas VMs
o Nada de reconfiguração manualo Ok. Mas E A ONIX ?
aplicações
o Distributed Virtual Switcho Onix não se envolve no encaminhamentoo Invocada quando as VMs são:o Criadas, excluídas ou migradas
o Poolso VMs tipicamente não migram entre poolso A lógica de controle particiona-se em pools
o Uma instância Onix (1) (1) Pool
aplicações
o Distributed Virtual Switcho Configuração dos switches armazenadas no
BDo Localização das VMso Desconhecida entre instâncias Onix
o Em caso de falhao Rede ainda pode operaro VMs dinâmicas no way !
aplicações
o Data centers virtualizados multi locatárioso Responsabilidades da redeo Gerenciar a dinâmica de hostso Isolar endereçamento e recursoso Ex.: Sobreposição de IP ou MAC
o Aplicação baseada na Onixo Permite criar redes locatáriaso Cada uma com configuração independente
aplicações
o Data centers virtualizados multi locatárioso Funções da lógica de controle o Estabelecer túneis entre hypervisor da
mesmo redeo Particionar a rede entre instâncias Onix
o Instância Onixo Gerencia subconjunto de hypervisorso Divulga seus pontos terminais na DHTo Outras instânciaso Configuram módulo importação DHT NIB
aplicações
o {Ambientes, Soluções, Protocolos} específicoso Exigem abordagem baixo nível
o Onixo Abstração de nível físicoo Foco em lógica
o Facilidade de inclusão de novas técnicaso Facilidade de inclusão de novos algoritmoso Customização baixo nível em serviço sob
demanda
conclusão
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-13-239227-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.
referências
perguntas
?