O Básico do Openstack

OPENSTACK

Openstack é um projeto opensource de IaaS (Infraestrutura como serviço), um software licenciado com uma licença livre e com seu copyright que prove acesso livre para estudos, modificações e de livre distribuição. Seu licenciamento ocorre sobre os termos da Apache Foundation e é gerenciado pela OpenStack Foundation. Foi uma iniciativa criada em julho de 2010, entre a empresa de hosting Rackspace e a NASA. A missão é de criar e oferecer computação em nuvem baseando-se em serviços rodando em hardware padrão. Grandes companhias como Intel, AMD e IBM apoiam esta tecnologia em seu desenvolvimento. A arquitetura do OpenStack compõe uma série de projetos, que veremos logo a seguir, que controlam um datacenter (Fig.1), pools de processamento, recursos de storage e de networking são gerenciados através de uma simples dashboard. Esta dashboard é uma interface web, de fácil acesso a partir de diversos dispositivos, que permite os administradores do datacenter manipular a entrega recursos, aqui chamados de flavors, para seus clientes

COMPUTE (NOVA)

O componente NOVA faz parte da arquitetura do OpenStack sendo responsável por entregar alocação de recursos de processamento para instâncias de VMs (Virtual Machine). É considerado como o controlador principal de computação em nuvem do OpenStack e entrega serviços IaaS. Foi desenvolvido em linguagem python e suporte os principais Hypervisors do mercado como KVM, XenServer, Xen Cloud Platform, VMWare ESXi e Microsoft Hyper-V.

OBJECT STORAGE (SWIFT)  

Este módulo é responsável para gerenciamento de discos de armazenamento. Podemos via interface web criar um objeto de storage como um volume de disco, ou um disco virtual para uma instância virtual. Assegura de que os arquivos gravados estejam sempre íntegros e que as replicações de arquivos são correlacionadas. Permite escalação massiva e redundante do sistema de storage do datacenter.

IMAGE SERVICE (GLANCE)   

Responsável por organizar e prover imagens de máquinas virtuais, servindo como um repositório de imagens. Ao criar uma instância virtual no OpenStack é necessário durante o seu provisionamento a criação de um disco na qual será anexada a máquina virtual. Estes discos contêm dados do sistema operacional e instruções de inicialização. Com a finalidade de facilitar a duplicação de instâncias, permite a criação de templates. Os templates são modelos prontos de discos de diversos tipos de sistemas como Linux, BSD e Microsoft Windows.

IDENTITY SERVICE (KEYSTONE)    

Este módulo provê os serviços de autenticação de forma unificada. Reconhece através de um diretório de usuários mapeados o acesso e política de controle de usuários aos outros componentes do OpenStack. Podemos integrar este serviço de autenticação de chaves de usuários com outro já existente na arquitetura da organização como o LDAP.

NETWORKING (NEUTRON)    

Este é o serviço do projeto OpenStack responsável por fornecer recursos de rede. Organiza recursos de rede como VLANs (Virtual LANs – redes locais virtuais), roteadores virtuais, switches virtuais, firewalls virtuais, balanceadores de carga, portas virtuais, subnets, redes e a entrega de endereçamento IP.     

A rede em ambiente OpenStack consiste em um servidor controlador de rede, identificado como o Neuitron Server, um servidor de banco de dados persistente e plug-ins para conectar a diferentes fabricantes, ou tecnologias de rede como controladores de SDN (Software-Defined Network) ou dispositivos de rede em sistemas Linux como o Open vSwitch e o Linux Bridge.  

Dentro do projeto OpenStack, o Neutron faz interface com outros componentes do projeto como o keystone, onde chaves são manipuladas para gestão de autorização de APIs e requisições de integrações, o Nova onde conecta-se a cada dispositivo de rede virtual de cada VM para determinada rede do ambiente virtual e o Horizon que é um dashboard web utilizado pelos administradores e usuários do projeto para criar e gerenciar serviços de rede virtual baseados em uma interface web gráfica, é acessível de um browser.

O Neutron também entrega serviços de rede comuns de data center como VPNaaS – Uma extensão chamada VPNaaS entrega VPN como serviço com a mesma eficácia e rapidez de uma entrega de VM no subprojeto de compute Nova; LBaaS – Uma extensão do Neutron para provisionamento e configuração balanceadores de carga. A programação é baseada no HAProxy, software bastante conhecimento de balanceamento de carga e o FWaaS – Serviço de firewall virtual, também uma extensão, ou plugin do Neutron. Também inclui alguns serviços:  

API Server – A rede no OpenStack permite a entrega de IPs e seu gerenciamento através de um IPAM (IP Address Management), o tráfego de várias subnets de camada 2 em uma extensão camada 3 com roteadores virtuais e uma vasta gama de plug-ins com várias tecnologias existentes no mercado incluindo roteadores, switches virtuais e controlares de redes definidas por software, os chamados SDNs (Software-Defined networking).   

Plugins e Agentes para o Neutron: permitem ações como conectar e desconectar portas de switches, criar subnets, redes, endereçamento IPs, VLANs podem ser automatizadas através da implementação de um agente ou plugin de acordo com o fabricante e tecnologias empregadas num data center.  

Filas de Mensageria – para que a comunicação entre o agente do servidor de VMs com o servidor Neutron funcionem em harmonia é utilizado um plugin ML2 no Neutron. Este método de mensageria por fila permite o gerenciamento eficiente para drivers de Open vSwitch e Linux Bridge nos hypervisors que participam do projeto em OpenStack.         

A comunicação entre diferentes subnets dentro de um projeto de OpenStack se dá pelos roteadores virtuais, que funciona de acordo com o que foi esquematizado topologicamente pelo cliente em sua dashboard. A possibilidade de trafegar pacotes entre diferentes redes em hypervisors separados é dada pelo encapsulamento de pacotes IPs. O Openstack suporta dois modelos: GRE (Generic Routing Encapsulation) e VXLAN (Virtual extensible local area network).        

No método via GRE o pacote IP é implementado quando o pacote deve ser entregue quando os protocolos de entrega e de payload são compatíveis, mas o endereçamento é incompatível. Para a instância, VM, o tráfego de payload acha que está trafegando numa mesma rede de dados, mas na verdade está utilizando uma camada de transporte a mais. Simplificadamente é um túnel privado ponto-a-ponto criado a partir do encapsulamento do payload.        

No método via VXLAN, o propósito principal é a segregação de tráfego entre projetos ou clientes de determinada topologia. O uso de VXLAN permite a escalabilidade de isolamento de rede, trabalha com o esquema de camada 2 do modelo OSI funcionando dentro da camada 3. Permitindo assim, transpor uma rede de camada 2 em múltiplos domínios de redes de camada 3. Cada sobreposição de rede é identificada como um segmento de VXLAN. Lembrando que apenas VMs de um mesmo segmento de VXLAN podem se comunicar.        

O funcionamento da sobreposição de rede entre uma rede externa nomeada como Provider Network e a rede de computação de VMs separadas por tenant que permite sua comunicação transparente. O tráfego que pode ser originada da rede do provedor externo passa pelo controlador de rede virtual, Neutron, que fica em um servidor com o papel de gerir o ambiente de rede virtual, identificado como Network Node. Já o servidor de virtualização de VMs, o Compute Node, possui agentes do Neutron para que possa comunicar e formar a comunicação das VMs através de ações geridas pelo controlador de rede para orquestrar toda a infraestrutura de rede do projeto

Permite, portanto, uma comunicação de rede transparente para a VM através de técnicas de tunelamento e segregação de redes dentro de uma rede já existente. Como um em data center virtual.

BLOCK STORAGE (CINDER)

Este recurso do OpenStack permite a utilização de recursos de plataformas massivas de storages como HP 3PAR, IBM Storage e NetAPP. Responsável por alocar, anexar ou desanexar Block Devices às máquinas virtuais. Permite a criação de snapshots (cópia momentânea do disco) em Block Devices de instâncias virtuais, facilitando o gerenciamento de backups.

DASHBOARD (HORIZON)

Recurso que provê uma interface gráfica web para acesso, provisionamento de recursos de nuvem do OpenStack. Facilita o gerenciamento pelos administradores de recursos de serviços, como billing (controle de consumo dos recursos de cloud), monitoramento e a disponibilização de recursos de API como integração com AWS EC2 (Amazon Web Service – Elastic Cloud Compute).

fale com o especialista

Entre em contato com um especialista Tivre

talk to the expert

Get in touch with a Tivre specialist