Relatório de Piloto Tecnológico Plataforma de Cloud Privada baseada em OpenStack Março 2015 Resumo Executivo: A Inok realizou uma instalação piloto para analisar as funcionalidades, características técnicas, casos de utilização e performance da plataforma Openstack como Cloud Privada IaaS. O piloto foi realizado no laboratório de I&D da Inok, ao longo de 3 meses, com um esforço de mais de 1000 homens/hora. A plataforma Openstack cumpriu os objetivos propostos e passou a produção, suportando atualmente a Cloud Privada de desenvolvimento da Inok. Enquadramento: A Inok adotou o OpenStack como plataforma de IaaS, em configurações single e multi cloud, dentre as diversas soluções de orquestração que providenciam ou utilizam plataformas IaaS. É a plataforma com maior taxa de adopção, como se pode ver pela imagem seguinte (período 2009-13) www.inokconsulting.com Março-2015 A plataforma Openstack tem um posicionamento próximo da Amazon AWS, no que refere à criação, gestão e orquestração das cargas de trabalho (workloads). A imagem seguinte ilustra o posicionamento das plataformas em duas abordagens distintas: • • Datacenter Virtualization – a cloud como uma extensão da virtualização de infraestruturas, procurando automação, orquestração e simplificação da gestão dos recursos virtualizados; Infrastructure Provision – a cloud mais no sentido de on-premise AWS (Amazon Web Services), a procura de ferramentas de aprovisionamento (self-service) para providenciar recursos virtualizados a pedido. Objetivos do Piloto: Pretende-se criar uma plataforma de fornecimento em regime self-service de máquinas (computação e storage), com base numa biblioteca de imagens previamente criada, suficientemente ampla para cobrir as necessidades dos utilizadores. O sistema tem por objectivo servir utilizadores internos a uma organização (Cloud Privada) ou de um conjunto de organizações associadas (Cloud Comunidade). Deverá ser possível aos utilizadores acederem às referidas máquinas para gestão/administração. O portal deve disponibilizar os recursos aos utilizadores, com base em quotas de recursos definidas por departamento ou por utilizador. O sistema faz a contabilização dos recursos usados para efeitos de charge-back. Tendo por base algumas plataformas públicas (Amazon AWS, Bitnami Cloud Hosting, etc), foram idealizados alguns casos de uso, como a implementação rápida de servidores com uma aplicação de uso corrente pré-instalada, e no limite o conceito de . one click to launch. Pretende-se um ambiente alta disponibilidade, com storage partilhado, escalável, com mecanismos de gestão automática da carga pelos nós de computação, com adição e remoção automática de nós (bastando adicionar um nó ao cluster). www.inokconsulting.com Março-2015 Casos de Uso: - Uma única organização, de grande dimensão e com uma elevada intensidade tecnológica, pode distribuir a função de criação de servidores e aplicações por diferentes grupos, que passam a ter autonomia e desta forma aumentam a rapidez e a flexibilidade dos seus projetos. - Um grupo de organizações associadas, por exemplo um grupo económico ou um conjunto de Ministérios, pode beneficiar de uma Cloud em regime de Serviços Partilhados, com os respectivos ganhos de escala mas com autonomia de cada uma das organizações. Arquitetura do Piloto: O OpenStack é uma plataforma de cloud computing que providencia uma infraestrutura como serviço (IaaS) e uma variedade de serviços complementares. A base da plataforma é composta por 3 serviços: • • • Compute Service (OpenStack Nova) – responsável pelo ciclo das máquinas virtuais. Networking Service (OpenStack Neutron) – responsável pela conectividade das máquinas virtuais e outros serviços como DHCP, firewall, etc… Storage Service (Openstack Cinder e Swift) – responsável por dois tipos de armazenamento - block store (discos virtuais para as instâncias, designados por volumes no OpenStack) e objetos (object store) para aplicações (tipo Amazon S3). A estes somam-se os serviços designados por serviços partilhados que oferecem funcionalidades como: • • Autenticação e Autorização (Identity Service – OpenStack Keystone) Repositório de Imagens (Image Service – OpenStack Glance) – Imagens são normalmente discos de arranque (bootable) para máquinas virtuais. Os discos são previamente configurados para permitir cenários como arranque de N máquinas virtuais “idênticas”, arranque de máquina virtual com volume de capacidade superior ao registado na imagem, etc. Este serviço normalmente utiliza o Swift (object store) para armazenar as imagens. www.inokconsulting.com Março-2015 • • • Monitorização e Medição (Telemetry Service – OpenStack Ceilometer) – primariamente orientado ao billing, é um projeto muito recente e ainda sem um dashboard amigável. On-demand provisioning de clusters Hadoop (openstack Sahara) Catálogo de aplicações que são instaladas automaticamente (openstack Murano) Estes serviços expõem todas as suas funcionalidades via API. Esta é, por exemplo, utilizada por um outro serviço, um “Portal de acesso à plataforma” (Dashboard Service OpenStack Horizon). O diagrama seguinte ilustra a relação entres todos os serviços (mostrando também o OpenStack Heat, um novo serviço que oferece funcionalidades de orquestração). Escolhemos o Ceph como storage backend para os serviços Cinder (volumes) e Glance (imagens) permite-nos acelerar a criação de máquinas virtuais com base em imagens aproveitando a inteligência copy-on-write do storage Ceph. Na prática isto significa que o tempo de criação de uma máquina virtual deixa de depender do tamanho do disco (volume) associado à mesma. O storage backend implementado com um cluster Ceph exige no mínimo 3 nós de armazenamento (com Ceph OSDs) sendo aconselhável existirem 3 outros nós que controlam o funcionamento do cluster (3 Ceph MON nodes). www.inokconsulting.com Março-2015 Instalação do Piloto: A figura seguinte ilustra o cenário escolhido para a implementação do piloto recorrendo aos servidores existentes no laboratório de R&D da Inok Consulting. Os servidores utilizados são idênticos, com 2 CPUs six-core, 32G de RAM, discos SAS e discos SSD para boot de sistema, 4 placas de rede 10Gbit. Três servidores foram instalados compute+storage nodes utilizando o disco SAS para uso exclusivo do CEPH (OSD - object storage daemon) e o disco SSD para boot e journal do CEPH. No piloto utilizaram-se 4 redes (conforme diagrama): a rede de storage, management, pública e administrativa. www.inokconsulting.com Março-2015 Resultados e Use Cases: O administrador do Portal cria as contas de utilizadores e organizações, e procede às reservas de recursos previstas no acordo de serviços. O utilizador começa por se autenticar num portal, tendo posteriormente acesso à lista de instâncias criadas, imagens disponíveis em catálogo, gestão de volumes, redes e segurança. Para criar uma máquina virtual, o utilizador escolhe uma das imagens e, especificando as características de CPU, memória e disco desejadas, cria e levanta a máquina virtual. Uma vez criada, o utilizador pode aceder remotamente ao servidor, utilizar as aplicações na rede, ou aceder via consola no portal, como se ilustra na imagem seguinte. www.inokconsulting.com Março-2015 Performance e Benchmark: O Openstack permite uma performance muito elevada ao nível de nós de computação. A escolha do Ceph como armazenamento distribuído permitiu obter um tempo muito reduzido no aprovisionamento de uma máquina virtual. Realizaram-se testes de carga para a criação de máquinas virtuais com base em imagens, medindo-se os seguintes parâmetros: • • • User Input - O tempo despendido no interface do Horizon para configurar uma nova máquina virtual. VM Started - O tempo que a plataforma leva para aprovisionar a nova máquina virtual. VM Ready - O tempo do primeiro arranque da referida máquina. O quadro seguinte ilustra estes tempos de forma cumulativa, i.e. tempo até VM Started, tempo até VM Ready, para o caso da criação individual de uma máquina virtual: Imagem CentOS-7-x86_64-GenericCloud20141129_01 Ubuntu 14.04 LTS (trusty-servercloudimg) Bitnami-wordpress-4.1.1-0-ubuntu-14.04 Windows2012R2 cloudbase init Flavor User Input VM Started VM Read y 2VCPU-1GRAM10G 0m20s 1m01s 1m12s 2VCPU-1GRAM10G 0m22s 1m04s 1m41s 2VCPU-2GRAM20G 2VCPU-2GRAM20G 0m20s 1m02s 2m26s 0m21s 1m02s 3m55s Realizámos um teste comparativo (benchmark) com fornecedores de Clouds públicas, para imagens com as mesmas características: Plataforma S.O./Aplicação CentOS Ubuntu/Moodle VM Started 2m20s 2m40s VM Ready 6m00s 3m23s Lunacloud CentOS Bitnami Cloud Hosting on Amazon EC2 Lunacloud Win2008 Windows 2008 12m22 15m24s Em qualquer dos casos a Cloud Privada tem mais performance que as Clouds públicas. Conclusões: A prova de conceito permitiu atingir os objetivos inicialmente propostos de criação e obter um Portal self-service eficiente para criação rápida de máquinas virtuais, com base em imagens previamente configuradas, com uma performance superior às plataformas comerciais públicas. O OpenStack provou responder ao cenário Private Cloud/Community Cloud para utilizadores com algum domínio técnico. É recomendado adoptar um portal de frontend, para esconder parte da riqueza e diversidade técnica do Horizon, criando ambientes de one-click-to-launch. www.inokconsulting.com Março-2015