Onix Uma plataforma de desenvolvimento para - DComp

Propaganda
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
?
Download