OpenStack IFSC

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Como acessar as máquinas virtuais: Acesso ao IFSC-CLOUD.

Ferramentas

  • Editor online de JSON, com validação de código e autoidentação, entre outras facilidades.
  • Stackalytics: contribuição no código do OpenStack, por empresa e módulo.

Projetos

Pesquisa: Maria Fernanda Tutui

24/10: serviço Neutron

Estudo sobre o serviço Neutron, suas potencialidades e limitações.

1) Uma rede pode ter duas sub-redes?

Sim. Para isso é necessário rodar 2 processos.

2) Para cada sub-rede, pode ser uma faixa diferente de IPs?

Sim. Pois elas são independentes.

3) Essas sub-redes se comunicam entre si?

Sim, a partir de do serviço "FWaaS: firewall as a service", ainda não disponível.

4) Os grupos de segurança bloqueiam apenas conexões externas, ou entre as VMs entre si, dentro da mesma sub-rede? E em sub-redes diferentes?

Os grupos de segurança bloqueiam somente conexões externas. Para o bloqueio dentro de conexões internas é necessário o uso de um firewall.

5) A comunicação entre as duas sub-redes passa pelo roteador?

Sim.

6) Posso criar uma máquina com duas placas de rede, uma em cada sub-rede? Se isso acontecer o ambiente trava, como colocar um cabo UTP em duas portas. Pegar duas placas, vira um switch.

Não, o ambiente não é criado.

7) Posso criar uma VM com Linux e configurar uma ponte/bridge (pacote bridge-utils)?

Não.

8) Posso criar uma VM com Linux e configurar um roteador?

Se sim, é um problema.

9) Posso criar uma VM com Linux e configurar VLANs em interfaces virtuais (pacote vlan)?

Se sim, é um problema. Porque ele vai travando todo o processamento.

Exemplo de código JSON para orquestração

{

   "AWSTemplateFormatVersion": "2010-09-09",
   "Resources": {
       "network-0": {
           "Type": "OS::Neutron::Net",
           "Properties": {
               "name": "network-0"
           }
       },
       "subnet-0": {
           "Type": "OS::Neutron::Subnet",
           "Properties": {
               "name": "subnet-0",
               "cidr": "172.31.255.0/29",
               "dns_nameservers": [
                   "200.135.233.200"
               ],
               "enable_dhcp": "True",
               "gateway_ip": "172.31.255.1",
               "network_id": {
                   "Ref": "network-0"
               }
           }
       },
       "router-0": {
           "Type": "OS::Neutron::Router",
           "Properties": {
               "admin_state_up": "True",
               "name": "router-0"
           }
       },
       "router-0-gw": {
           "Type": "OS::Neutron::RouterGateway",
           "Properties": {
               "network_id": "91392b36-ca84-4c7a-8125-cbffdffccb84",
               "router_id": {
                   "Ref": "router-0"
               }
           }
       },
       "router-0-int-0": {
           "Type": "OS::Neutron::RouterInterface",
           "Properties": {
               "router_id": {
                   "Ref": "router-0"
               },
               "subnet_id": {
                   "Ref": "subnet-0"
               }
           }
       },
       "instance-0-port-0": {
           "Type": "OS::Neutron::Port",
           "Properties": {
               "admin_state_up": "True",
               "security_groups": [
                   "default",
               ],
               "network_id": {
                   "Ref": "network-0"
               }
           }
       },
       "floatingip-0": {
           "Type": "OS::Neutron::FloatingIP",
           "Properties": {
               "floating_network_id": "91392b36-ca84-4c7a-8125-cbffdffccb84"
           }
       },
       "instance-0-port-0-floatingip-0": {
           "Type": "OS::Neutron::FloatingIPAssociation",
           "Properties": {
               "floatingip_id": {
                   "Ref": "floatingip-0"
               },
               "port_id": {
                   "Ref": "instance-0-port-0"
               }
           }
       },
       "instance-0": {
           "Type": "OS::Nova::Server",
           "Properties": {
               "name": "instance-0",
               "availability_zone": "ifsc-sj-kvm",
               "image": "608f257c-667e-41eb-bf5a-ff5ee5f72f7c",
               "flavor": "m1.tiny",
               "key_name": "boidacarapreta",
               "networks": [
                   {
                       "port": {
                           "Ref": "instance-0-port-0"
                       }
                   }
               ]
           }
       }
   }

} </syntaxhighlight>

Pesquisa: Cleber Jorge Amaral

Projeto de mestrado: Sistema MultiAgentes para controle de produção de pequenas séries utilizando JaCaMo, Apache Camel e protocolo OPC

O projeto está rodando no OpenStack pelas seguintes razões:

  • Viabilizar o desenvolvimento ágil do projeto que contém um grande número de frameworks e uma aplicação um pouco pesada por ser MultiAgentes, idealmente portanto, requer virtualização e automaticamente recursos de máquina.
  • Facilitar a comunicação com os orientadores, anteriormente o compartilhamento de resultados e código e até mesmo a comunicação estava sendo feita compartilhando máquinas virtuais de 15GB que além de pesadas de transferir ainda trazem detalhes de compatibilidade.
  • Subir o servidor Matrikon que necessariamente é Windows e poder ter esta máquina disponível para simulações de comunicação
  • Servidor 1:
    • Missão: Ser interface de desenvolvimento e deployment do projeto MultiAgente
    • SO: Linux Ubuntu Mate
    • Recursos de software:
      • IDE Eclipse e compilador Java
      • Framework JaCaMo
      • Plugin para Eclipse JaCaMo
      • Plugin para Eclipse Prometheus AEOlus
      • Framework Apache Camel
      • Componente Camel camel-opc
      • Componente Camel camel-artifact
  • Servidor 2:
    • Missão: Rodar o servidor OPC Matrikon gerando variáveis aleatórias para simulações de comunicação
    • SO: Windows 7
    • Recursos de software:
      • MatrikonOPCServer


Ensino: Jeneffer Farias

24/10: cursos presenciais ou remotos de OpenStack para usuário final
  • Que cursos já são oferecidos para utilizar o OpenStack, seja a partir da CLI ou de interface Web?

Durante a pesquisa foi possível observar que existem algumas, poucas, empresas que oferecem cursos de capacitação em OpenStack. A maioria dos cursos são de nível iniciante. Abaixo, segue alguns dos tópicos abordados no curso oferecido pela empresa Dualtec. Com base nesses tópicos iremos dar início a estrutura do nosso curso de capacitação.

Cloud

  • Da virtualização ao Cloud Computing
  • Casos de uso
  • Projeto OpenStack: Visão Geral

Arquitetura de um ambiente OpenStack

  • Visão geral da arquitetura

Serviços OpenStack

  • Visão Geral
  • Keystone
  • Glance
  • Quantum
  • Heat
  • Telemeteria
14/11: ementa do curso

Palestra

De cunho motivacional (para convidar as pessoas a participar dos cursos), a ser apresentada no início do próximo semestre, na primeira semana de aula.


Introdução

O projeto IFSC nas nuvens: projeto guarda-chuva

  • Uso de parque ocioso: equipamentos de médio a alto poder de processamento nos terminais ociosos.
  • Controle dinâmico de processamento das máquinas ociosas (movimentação a quente, ou live migration, de máquinas virtuais).
  • Rede de desenho dinâmico, seja usando configuração dinâmica (por exemplo com VLANs) ou SDN (software-defined network).
  • Infraestrutura: camadas Física a Rede
  • Laboratórios virtuais: TCC, aula de ICO, Matlab e Quartus em aula, Multisim
  • m-Learning: ubiquidade, mobilidade, formatos para dispositivos móveis

Virtualização

  • Sistemas computacionais: virtualização plena (todo o hardware é virtualizado, roda qualquer SO), paravirtualização (o SO virtualiza parte e compartilha o kernel), virtualização intra-SO (aplicação que tem ambiente isolado dentro do SO), hipervisores.
  • Redes de computadores
  • Quem precisa de virtualização? Hardware virtual, imagem (modelo) e snapshot para replicação.
  • Computação em nuvem
  • IaaS (infrastructure-as-a-Service), PaaS (Platform-as-aService) e SaaS (Software-as-aService)
  • Nuvens públicas: qualquer um entra, e paga pelo recurso
   Amazon AWS (IaaS e PaaS)
   Microsoft Azure (IaaS e PaaS)
   Google Cloud Platform (IaaS e PaaS) 
   Rackspace  
   Heroku
  • Nuvens privadas: acesso restrito, direito ao recurso
  VMWare vCloud (IaaS e PaaS)
  OpenStack (IaaS)





Pesquisa: balanceamento de carga progressivo

Imagens disponibilizadas de sistemas operacionais completos

A saber: foi lançado recentemente a nova versão do OpenStack Virtual Machine Image Guide.

A Rede

<graphviz>

graph OpenStack {

rankdir=LR
CiscoASA5510 [shape=record,label="<a>Cisco ASA 5510|<1>1"]
Cisco3560 [shape=record,label="<a>Cisco 3560|<5>5|<6>6|<13>13|<14>14|<24>24"]
DLink [shape=record,label="<a>Pilha: 2 x D-Link|<123>1:23|<01>2:01|<04>2:04|<10>2:10|<11>2:11|<13>2:13|<19>2:19|<21>2:21|<22>2:22|<223>2:23"]
subgraph clusterTron {
 label="Tron"
 vmnic0 [shape=record]
 vmnic1 [shape=record]
 vSwitch [shape=record,label="<a>vSwitch|<101>vlan101|<448>vlan448|<449>vlan449"]
 Roteador [shape=record,label="<a>Roteador|<0>eth0|<1>eth1|<2>eth2"]
}
openstack0 [shape=record,label="<a>openstack0|<0>em1|<1>p5p1"]
openstack1 [shape=record,label="<a>openstack1|<0>em1|<1>p5p1"]
openstack2 [shape=record,label="<a>openstack2|<0>em1|<1>p5p1"]
openstack3 [shape=record,label="<a>openstack3|<0>em1|<1>p5p1"]
CiscoASA5510:1 -- Cisco3560:24 [color=blue,fontcolor=blue,label="101"]
Cisco3560:5 -- vmnic0 [color=blue,fontcolor=blue,label="101,448*,449*"]
Cisco3560:6 -- vmnic1 [color=blue,fontcolor=blue,label="101,448*,449*"]
Cisco3560:13 -- DLink:123 [color=blue,fontcolor=blue,label="448*,449*"]
Cisco3560:14 -- DLink:223 [color=blue,fontcolor=blue,label="448*,449*"]
vSwitch:101 -- Roteador:0 [color=blue,fontcolor=blue,label="101"]
vSwitch:449 -- Roteador:1 [color=blue,fontcolor=blue,label="449"]
vSwitch:448 -- Roteador:2 [color=blue,fontcolor=blue,label="448"]
DLink:01 -- openstack0:0 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:22 -- openstack0:1 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:10 -- openstack1:0 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:13 -- openstack1:1 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:19 -- openstack2:0 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:21 -- openstack2:1 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:04 -- openstack3:0 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]
DLink:11 -- openstack3:1 [color=blue,fontcolor=blue,label="448*,449*,450**,451**,452**"]

}

</graphviz>

VLANs:

  • 101: acesso, endereços públicos (200.135.233.252/30).
  • 448: VMs, endereços públicos (200.135.233.0/25).
  • 449: acesso remoto a virtualizadores, endereços públicos (200.135.233.192/28).
  • 450: gerência interna da nuvem, endereços privados (RFC 1918 e RFC 4193).
  • 451: sistema de arquivos distribuído, endereços privados.
  • 452: interface de tunelamento entre serviços de processamento e de rede da nuvem, endereços privados.

Obs.:

  • O asterisco (*) indica tráfego com etiqueta 802.1q.
  • O duplo asterisco (**) indica tráfego com etiqueta 802.1 e interno do ambiente (switch e virtualizadores).