OpenStack Cloud Software
O que é o OpenStack? Concebido como um SO para a nuvem Todo em código aberto Infraestrutura de nuvem como serviço (IaaS) Nuvens públicas ou privadas Composto por um conjunto de componentes com funcionalidades específicas
"OpenStack: The Open Source Cloud Operating System" O OpenStack controla uma grande quantidade de recursos de processamento, rede e armazenamento distribuídos em todo o datacenter Dá total controle aos administradores, mas permite aos tenants ter controle fino sobre os recursos alocados à eles
Componentes OpenStack Compute (Nova) OpenStack Image Service (Glance) OpenStack Object Storage (Swift) OpenStack Block Storage (Cinder) OpenStack Networking (Neutron) OpenStack Identity (Keystone) OpenStack Dashboard (Horizon)
OpenStack Compute - Nova Gerenciar recursos das máquinas virtuais o Diferentes configurações de memória, disco e processamento Gerenciar recursos de virtualização o Distribuição de VMs entre os hypervisors Gerenciar conexões à rede o Conecta as interfaces das VMs aos switches virtuais
OpenStack Neutron Serviço que fornece conectividade às interfaces das VMs (Network as a service) API flexível que permite a construção de redes complexas o Redes Flat, Compartilhadas, VLANs, DHCP, IPv6 Extensível o Criação de plugins com funcionalidades inovadoras o Produtos comerciais
OpenStack Neutron
OpenStack Neutron - Single Flat Network Uma rede compartilhada entre todos os tenants Cada VM possui uma interface com IP fixo no mesmo bloco endereçamento
OpenStack Neutron - Multiple Flat Network Semelhante à anterior Diferença é que VMs podem ter interfaces em múltiplas redes
OpenStack Neutron - Mixed Flat and Private Network Redes compartilhadas Redes privadas para tráfego interno entre VMs
OpenStack Neutron - Provider Router with Private Networks São criados IPs públicos flutuantes que ficam associados à VMs especificas dos tenants O tráfego público é roteado para estas VMs VMs sem IP flutuante acessam rede externa utilizando SNAT
Referências OpenStack wiki: https://wiki.openstack.org/wiki/projects Technical Architecture of Quantum: http://sdrv.ms/ydnqys Object storage: the future building block for storage systems - Factor, M.; Meth, K.; Naor, D.; Rodeh, O.; Satran, J.,, - Local to Global Data Interoperability - Challenges and Technologies, 2005 Quantum Administrator Guide: http://goo.gl/hocym
Diferenças entre armazenamento em blocos e em objetos
OpenStack Swift Armazenamento de dados como objetos Distribuição de dados estáticos o arquivos, imagens de VMs, backup, etc Alta resistência à falhas Múltiplas replicas o Pode ser utilizado na replicação entre datacenters Acesso via HTTP através de API REST o Semelhante e compatível com o Amazon S3 Replicação assíncrona com consistência eventual
OpenStack Cinder Armazenamento no formato de blocos de dados Acesso através do SO em nível de dispositivo (ATA, SCSI, etc) Controle do armazenamento é responsabilidade da VM o Autorização e consistência Completamente integrado ao NOVA
OpenStack Neutron - Per-tenant Routers with Private Networks Tenants tem acesso direto à API do Neutron Roteamento e topologia privada Capazes de modificar a topologia SNAT e IPs flutuantes são utilizados para acesso interno>externo e externo>interno respectivamente
OpenStack Neutron - Plugins Plugins disponíveis na distribuição Grizzly: Open vswitch Plugin Cisco UCS/Nexus Plugin Linux Bridge Plugin Nicira Network Virtualization Platform (NVP) Plugin Ryu OpenFlow Controller Plugin NEC OpenFlow Plugin Big Switch Controller Plugin Cloudbase Hyper-V Plugin MidoNet Plugin Brocade Quantum Plugin Brocade Quantum Plugin PLUMgrid Plugin Plugins de terceiros:
Novos Componentes OpenStack Ceilometer OpenStack Heat
OpenStack Ceilometer É responsável por realizar coleta de estatísticas o de todos os serviços o de todos os contadores Será o ponto único de acesso às informações de utilização o o Informações para bilhetagem Estatísticas Já disponível para uso o Projeto ainda em incubação Será um Integrated Project na próxima
OpenStack Heat Serviço para orquestrar a criação de da nuvem completamente baseado em templates Utiliza as APIs disponíveis para chamar os diversos serviços do OpenStack e executar as tarefas necessárias Disponível para uso o Mas ainda em estado de incubação Será um Integrated Project na próxima versão do OpenStack - Havanna