SlideShare ist ein Scribd-Unternehmen logo
1 von 35
GT-CNC
Computação em Nuvem para Ciência

                Lucas Melo Silva
              lucasmelo@ufpa.br


     Workshop Inicialização GT-CNC Fase 2
                   Nov/2012
Sumário


• Introdução

• Overview do Openstack Swift

• A Arquitetura do Protótipo

• Referências



                                GT-CNC
Introdução

Objetivos:


• Apresentar o panorama geral da arquitetura Openstack Swift


• Apresentar a arquitetura do protótipo de armazenamento em nuvem




                                                               GT-CNC
A Ferramenta Selecionada




   Processament   Networking   Armazenamento
   o


                                               GT-CNC
A Ferramenta Selecionada
Usabilidade: Clientes e ferramenta administrativas

                                                     swift




                        Rackspace Hosting app

                                                        GT-CNC
Ferramenta Selecionada
Usabilidade: APIs de acesso a nuvem


                                      swift




                                         GT-CNC
Ferramenta Selecionada
Openstack Swift
Benefícios
     • Compatibilidade com protocolo S3;                        swift

     • Acoplagem com nuvem de processamento;
     • Replicação/backup de dados;
     • Disponibiliza interfaces para acesso por meio de APIs;
     • Autenticação/ Autorização;
     • Comunicação segura entre cliente e servidor.
     • Comunidade ativa


                                                                   GT-CNC
Ferramenta Selecionada
Openstack Swift

Limitações
                                                                  swift

        • Não utiliza criptografia para proteger os dados dos clientes;
        • Não possui autenticação federada;
        • Suporte a limitação de armazenamento por usuários em
             desenvolvimento pela comunidade;
        • Suporte a Webdav em desenvolvimento pela comunidade.



                                                                     GT-CNC
Composição do Swift

Alguns Conceitos Iniciais




                            GT-CNC
Composição do Swift: Conceitos iniciais

Nó:

  • É um servidor que oferecerá um ou mais serviços do Swift

  • Pode ser virtualizado


Objeto:

  • É o arquivo armazenado na nuvem

  • Possui forma binária (binary large object - blob)

  • Armazenado junto com seus metadados
                                                               GT-CNC
Composição do Swift: Conceitos iniciais
Contêiner:

  • É um compartimento de objetos

  • Tem o objetivo de organizar objetos

  • É comparável a diretórios e pastas

Peso (Weight):

  • Usado para estabelecer prioridades entre dispositivos de
    armazenamento

  • Reequilibrar dispositivos sobrecarregados ou menos usados
                                                                GT-CNC
Composição do Swift: Conceitos iniciais
Zona:

  • Agrupamento de dispositivos

  • Objetivo de aumentar disponibilidade

  • Pode ser definido por diferentes critérios, como:

        •   Localização física
        •   Unidades de energia
        •   Redes
        •   Datacenter, servidor, switch, etc


                                                        GT-CNC
Composição do Swift: Conceitos iniciais
Anel de hashing consistente (consistente hashing ring):

  • Mapeia a localização física de cada objeto, conta e contêiner

  • É o “Coração” da escalabilidade horizontal

  • Usa técnica de hashing consistente

                                       Conjunto de
                                       mapeamentos
                                       hash: <ID, Local>
         Anel

                                                                    GT-CNC
Composição do Swift: Servidores
Componentes macros:


•Servidor Proxy (Proxy Server)

•Servidor de Contas (Account Server)

•Servidor de Contêiner (Container Server)

•Servidor de Objetos (Object Server)



                                            GT-CNC
Composição do Swift: Servidores
Componente macro: Servidor Proxy

• É o responsável pela comunicação com componentes do swift

• Disponibiliza API pública

• Trata certas falhas (ex.: falha de um nó)

• Intermediário em operações de envio e recebimento de arquivos

• Mantém os anéis de mapeamento, encaminhando requisições para
o nó de armazenamento correto



                                                                  GT-CNC
Composição do Swift: Servidores
Componente macro: Servidor de Contas


•Lista contêineres pertencentes a cada conta


Componente macro: Servidor de Contêiner


• Lista objetos pertencentes a cada contêiner

• Não conhece a localização dos objetos

• Mantém estatística de armazenamento e quantidade de objetos
                                                                GT-CNC
Composição do Swift: Servidores

Componente macro: Servidor de Objetos

• Armazenamento dos blobs nos dispositivos de armazenamento

• Mantém metadados para cada objeto

• Mantém versionamento dos objetos




                                                              GT-CNC
Composição do Swift
         Autenticação e Autorização




                                      GT-CNC
Composição do Swift: Autenticação
Papéis de usuários:

• Usuário normal: capaz de realizar apenas funcionalidades gerais

• Administrador: gerencia usuários de um grupo

• Admin. “Revendedor”: gerencia qualquer grupo e qualquer usuário

• Super Admin.: Possui todos os privilégios, inclusive criar
administrador “revendedor”




                                                                    GT-CNC
Composição do Swift
Formas de autenticação:


• tempAuth

• swAuth

• Keystone.




                          GT-CNC
Composição do Swift: Autenticação

Forma de autenticação: tempAuth

• Primeiro middleware WSGI (Web Server Gateway Interface) criado
para o swift

• Usado para ambiente de teste e desenvolvimento:

       • Armazena dados em um arquivo de configuração em texto
         plano

• Recebe credenciais e retorna um token de autenticação


                                                                   GT-CNC
Composição do Swift: Autenticação

Forma de autenticação: swAuth


• Middleware WSGI criado por terceiros.

• Usa a própria estrutura do swift para ser uma estrutura mais
escalável.
        • Objeto Swift no formato JSON com restrições de leitura.




                                                                    GT-CNC
Composição do Swift: Autenticação

Forma de autenticação: Keystone

• Integra os diversos projetos do Openstack

• Foi adotado como padrão apenas recentemente

• Papéis de usuário mais flexível (papéis customizáveis)

• Acoplável a alguns backends, como LDAP, SQL, dentre outros [2]




                                                                   GT-CNC
Composição do Swift

Mecanismos para melhorar confiabilidade/consistência
[3]:


• Replicação


• Auditoria


• Atualizador (updater)


                                                       GT-CNC
Composição do Swift

Mecanismo para melhorar consistência: Replicação


                                   Zona 1
   Objeto    Servidor              Zona 2
             Proxy
                                   Zona 3
                                   Zona 4




                                                   GT-CNC
Arquitetura do Protótipo




                           GT-CNC
Casos de Uso do Protótipo
                         Cópia de Arquivos




 Sincronização de Arquivos             Compartilhamento de Arquivos


                                      Usuário   A




                                      Usuário   B
Arquitetura do Protótipo

                                                          HTTPS
                    Armazenamento (UFPA)
                                                          Balanceador
                                                          de carga

                Zona 1
                                     Zona 3


                           Zona 2

                                                UFPA
              SSH                                            UFSC


                                                 •   Proxy
                                                 •   Autenticação
                         Zona 4        Zona 5    •   Autorização
                         Armazenamento (UFSC)
                                                            GT-CNC
Arquitetura do Protótipo
Componentes do Protótipo:

Balanceador de Carga: round-robin DNS

Nós:
       •  Cada nó possui os 3 serviços (Servidor de objetos, contas e
         contêineres)
       • Cada servidor possui 4 nós virtualizados

Zonas:
     • 3 na UFPA
     • 2 na UFSC


Interface compatível com protocolo S3
                                                                        GT-CNC
Arquitetura do Protótipo
• 2 Servidores Proxy:

                   UFPA                            UFSC
       Hardware                       Hardware

       CPU: 2                         CPU: 2
       Memória RAM: 3 GB              Memória RAM: 2 GB
       HDD: 12 GB                     HDD: 12 GB
       IP: 200.129.132.69             IP 150.162.66.40

       Sistema Operacional            Sistema Operacional

       Ubuntu 12.04 Server            Ubuntu 12.04 Server
       Sistema Operacional: 8GB HDD   Sistema Operacional: 10 GB HDD
       Sistema de Arquivos: Ext4      Sistema de Arquivos: Ext4
       Swap: 4GB HDD                  Swap: 2 GB HDD




                                                                       GT-CNC
Arquitetura do Protótipo
 • Servidores com os 3 tipos de serviço (contêiner, conta, objeto):
                                            UFPA
  Nós de Armazenamento - 1~3                        Nós de Armazenamento - 4
Hardware                             Hardware

RAM: 768 MB                          RAM: 768 MB
CPU: 1                               CPU: 1
HDD: 450 GB                          HDD: 148GB

Sistema Operacional                  Sistema Operacional
Ubuntu 12.04 Server
Sistema de Arquivos: Ext4 (raiz) e   Ubuntu 12.04 Server
XFS (swift)                          Sistema de Arquivos: Ext4 (raiz) e XFS (swift)
Sistema Operacional: 48GB HDD        Sistema Operacional: 48GB HDD
Swap: 2GB HDD                        Swap: 2GB HDD
Armazenamento Swift: 400GB           Armazenamento Swift 1: 100GB HDD
HDD                                  Armazenamento Swift 2: 2TB através de Storage Externo


                                                                                         GT-CNC
Arquitetura do Protótipo
• Servidores com os 3 tipos de serviço (contêiner, conta, objeto):
                                           UFSC
                             Nós de Armazenamento – 1~4
                  Hardware

                  RAM: 1 GB
                  CPU: 1
                  HDD: 450 GB
                  IP: 150.162.66.41 ~ 44

                  Sistema Operacional

                  Ubuntu 12.04 Server
                  Sistema de Arquivos: Ext4 (raiz) e XFS (swift)
                  Sistema Operacional: 48GB HDD
                  Swap: 2GB HDD
                  Armazenamento Swift: 400 GB HDD


                                                                     GT-CNC
Arquitetura do Protótipo
Configurações do protótipo:

Anel
   •   Um anel para cada serviço (objetos, contêineres, contas)

   •   Anel criado no proxy e distribuído para todos os nós

Replicação:
   • 3 réplicas para cada objeto, contêiner e conta

Partições:
   • 100 para cada drive

Autenticação: swAuth

                                                                  GT-CNC
FIM



      Obrigado,
      Perguntas?



                   GT-CNC
Referências

• [1] http://greg.brim.net/page/building_a_consistent_hashing_ring.html

• [2] http://docs.openstack.org/developer/keystone/architecture.html

• [3] http://docs.openstack.org/developer/swift/overview_architecture.html

• [4] http://rsync.samba.org/




                                                                             GT-CNC

Weitere ähnliche Inhalte

Andere mochten auch

Cnc mold
Cnc moldCnc mold
Cnc moldviny_pt
 
WSU Tecnologia www.wsu.com.br
WSU Tecnologia www.wsu.com.brWSU Tecnologia www.wsu.com.br
WSU Tecnologia www.wsu.com.brrcarvalho82
 
Apresentacao unifap
Apresentacao unifapApresentacao unifap
Apresentacao unifapfuracaocps2
 
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...Gustavo Henrique Rodrigues Pinto Tomas
 
Cloud Computing (Computação nas nuvens)
Cloud Computing (Computação nas nuvens)Cloud Computing (Computação nas nuvens)
Cloud Computing (Computação nas nuvens)rennanf
 

Andere mochten auch (8)

Cloud computing ppt
Cloud computing pptCloud computing ppt
Cloud computing ppt
 
Cnc mold
Cnc moldCnc mold
Cnc mold
 
WSU Tecnologia www.wsu.com.br
WSU Tecnologia www.wsu.com.brWSU Tecnologia www.wsu.com.br
WSU Tecnologia www.wsu.com.br
 
Cloud 2.0 v 1.2 compacta
Cloud 2.0 v 1.2   compactaCloud 2.0 v 1.2   compacta
Cloud 2.0 v 1.2 compacta
 
Apresentacao unifap
Apresentacao unifapApresentacao unifap
Apresentacao unifap
 
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
Eucalyptus uma plataforma de cloud computing para qualquer tipo de usuário - ...
 
Por que Python?
Por que Python?Por que Python?
Por que Python?
 
Cloud Computing (Computação nas nuvens)
Cloud Computing (Computação nas nuvens)Cloud Computing (Computação nas nuvens)
Cloud Computing (Computação nas nuvens)
 

Ähnlich wie Apresentacao gt cnc-workshop_iniciliazicao_fase2

"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (..."Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...WeOp - The Operations Summit
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Ricardo Katz
 
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02Wise Systems
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Giovanni Bassi
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Amazon Web Services LATAM
 
oVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertooVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertoehabkost
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital PreservationRoberto Beraldo Chaiben
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheRodrigo Immaginario
 
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...CPqD
 
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoRenato Groff
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serproRicardo Katz
 

Ähnlich wie Apresentacao gt cnc-workshop_iniciliazicao_fase2 (20)

"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (..."Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
"Software Defined CDN: Arquitetura, componentes e desafios" - Marcus Grando (...
 
Kontena
KontenaKontena
Kontena
 
Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3Kubernetes no Governo Federal - Kubernetes Meetup #3
Kubernetes no Governo Federal - Kubernetes Meetup #3
 
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02
RTC - RATIONAL TEAM CONCERT - DEVELOPER - SCM ECLIPSE - aula 02
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
 
Terminal server
Terminal serverTerminal server
Terminal server
 
oVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código abertooVirt - gerenciamento de máquinas virtuais com código aberto
oVirt - gerenciamento de máquinas virtuais com código aberto
 
Apresentação GT - Digital Preservation
Apresentação GT - Digital PreservationApresentação GT - Digital Preservation
Apresentação GT - Digital Preservation
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 
Goldark - Microservices
Goldark - MicroservicesGoldark - Microservices
Goldark - Microservices
 
Appi303 daibert
Appi303   daibertAppi303   daibert
Appi303 daibert
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCache
 
Cirrus
CirrusCirrus
Cirrus
 
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
Projeto InterVoIP - Arquitetura - I Workshop CPqD de Inovação Tecnológica em ...
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 

Apresentacao gt cnc-workshop_iniciliazicao_fase2

  • 1. GT-CNC Computação em Nuvem para Ciência Lucas Melo Silva lucasmelo@ufpa.br Workshop Inicialização GT-CNC Fase 2 Nov/2012
  • 2. Sumário • Introdução • Overview do Openstack Swift • A Arquitetura do Protótipo • Referências GT-CNC
  • 3. Introdução Objetivos: • Apresentar o panorama geral da arquitetura Openstack Swift • Apresentar a arquitetura do protótipo de armazenamento em nuvem GT-CNC
  • 4. A Ferramenta Selecionada Processament Networking Armazenamento o GT-CNC
  • 5. A Ferramenta Selecionada Usabilidade: Clientes e ferramenta administrativas swift Rackspace Hosting app GT-CNC
  • 6. Ferramenta Selecionada Usabilidade: APIs de acesso a nuvem swift GT-CNC
  • 7. Ferramenta Selecionada Openstack Swift Benefícios • Compatibilidade com protocolo S3; swift • Acoplagem com nuvem de processamento; • Replicação/backup de dados; • Disponibiliza interfaces para acesso por meio de APIs; • Autenticação/ Autorização; • Comunicação segura entre cliente e servidor. • Comunidade ativa GT-CNC
  • 8. Ferramenta Selecionada Openstack Swift Limitações swift • Não utiliza criptografia para proteger os dados dos clientes; • Não possui autenticação federada; • Suporte a limitação de armazenamento por usuários em desenvolvimento pela comunidade; • Suporte a Webdav em desenvolvimento pela comunidade. GT-CNC
  • 9. Composição do Swift Alguns Conceitos Iniciais GT-CNC
  • 10. Composição do Swift: Conceitos iniciais Nó: • É um servidor que oferecerá um ou mais serviços do Swift • Pode ser virtualizado Objeto: • É o arquivo armazenado na nuvem • Possui forma binária (binary large object - blob) • Armazenado junto com seus metadados GT-CNC
  • 11. Composição do Swift: Conceitos iniciais Contêiner: • É um compartimento de objetos • Tem o objetivo de organizar objetos • É comparável a diretórios e pastas Peso (Weight): • Usado para estabelecer prioridades entre dispositivos de armazenamento • Reequilibrar dispositivos sobrecarregados ou menos usados GT-CNC
  • 12. Composição do Swift: Conceitos iniciais Zona: • Agrupamento de dispositivos • Objetivo de aumentar disponibilidade • Pode ser definido por diferentes critérios, como: • Localização física • Unidades de energia • Redes • Datacenter, servidor, switch, etc GT-CNC
  • 13. Composição do Swift: Conceitos iniciais Anel de hashing consistente (consistente hashing ring): • Mapeia a localização física de cada objeto, conta e contêiner • É o “Coração” da escalabilidade horizontal • Usa técnica de hashing consistente Conjunto de mapeamentos hash: <ID, Local> Anel GT-CNC
  • 14. Composição do Swift: Servidores Componentes macros: •Servidor Proxy (Proxy Server) •Servidor de Contas (Account Server) •Servidor de Contêiner (Container Server) •Servidor de Objetos (Object Server) GT-CNC
  • 15. Composição do Swift: Servidores Componente macro: Servidor Proxy • É o responsável pela comunicação com componentes do swift • Disponibiliza API pública • Trata certas falhas (ex.: falha de um nó) • Intermediário em operações de envio e recebimento de arquivos • Mantém os anéis de mapeamento, encaminhando requisições para o nó de armazenamento correto GT-CNC
  • 16. Composição do Swift: Servidores Componente macro: Servidor de Contas •Lista contêineres pertencentes a cada conta Componente macro: Servidor de Contêiner • Lista objetos pertencentes a cada contêiner • Não conhece a localização dos objetos • Mantém estatística de armazenamento e quantidade de objetos GT-CNC
  • 17. Composição do Swift: Servidores Componente macro: Servidor de Objetos • Armazenamento dos blobs nos dispositivos de armazenamento • Mantém metadados para cada objeto • Mantém versionamento dos objetos GT-CNC
  • 18. Composição do Swift Autenticação e Autorização GT-CNC
  • 19. Composição do Swift: Autenticação Papéis de usuários: • Usuário normal: capaz de realizar apenas funcionalidades gerais • Administrador: gerencia usuários de um grupo • Admin. “Revendedor”: gerencia qualquer grupo e qualquer usuário • Super Admin.: Possui todos os privilégios, inclusive criar administrador “revendedor” GT-CNC
  • 20. Composição do Swift Formas de autenticação: • tempAuth • swAuth • Keystone. GT-CNC
  • 21. Composição do Swift: Autenticação Forma de autenticação: tempAuth • Primeiro middleware WSGI (Web Server Gateway Interface) criado para o swift • Usado para ambiente de teste e desenvolvimento: • Armazena dados em um arquivo de configuração em texto plano • Recebe credenciais e retorna um token de autenticação GT-CNC
  • 22. Composição do Swift: Autenticação Forma de autenticação: swAuth • Middleware WSGI criado por terceiros. • Usa a própria estrutura do swift para ser uma estrutura mais escalável. • Objeto Swift no formato JSON com restrições de leitura. GT-CNC
  • 23. Composição do Swift: Autenticação Forma de autenticação: Keystone • Integra os diversos projetos do Openstack • Foi adotado como padrão apenas recentemente • Papéis de usuário mais flexível (papéis customizáveis) • Acoplável a alguns backends, como LDAP, SQL, dentre outros [2] GT-CNC
  • 24. Composição do Swift Mecanismos para melhorar confiabilidade/consistência [3]: • Replicação • Auditoria • Atualizador (updater) GT-CNC
  • 25. Composição do Swift Mecanismo para melhorar consistência: Replicação Zona 1 Objeto Servidor Zona 2 Proxy Zona 3 Zona 4 GT-CNC
  • 27. Casos de Uso do Protótipo Cópia de Arquivos Sincronização de Arquivos Compartilhamento de Arquivos Usuário A Usuário B
  • 28. Arquitetura do Protótipo HTTPS Armazenamento (UFPA) Balanceador de carga Zona 1 Zona 3 Zona 2 UFPA SSH UFSC • Proxy • Autenticação Zona 4 Zona 5 • Autorização Armazenamento (UFSC) GT-CNC
  • 29. Arquitetura do Protótipo Componentes do Protótipo: Balanceador de Carga: round-robin DNS Nós: • Cada nó possui os 3 serviços (Servidor de objetos, contas e contêineres) • Cada servidor possui 4 nós virtualizados Zonas: • 3 na UFPA • 2 na UFSC Interface compatível com protocolo S3 GT-CNC
  • 30. Arquitetura do Protótipo • 2 Servidores Proxy: UFPA UFSC Hardware Hardware CPU: 2 CPU: 2 Memória RAM: 3 GB Memória RAM: 2 GB HDD: 12 GB HDD: 12 GB IP: 200.129.132.69 IP 150.162.66.40 Sistema Operacional Sistema Operacional Ubuntu 12.04 Server Ubuntu 12.04 Server Sistema Operacional: 8GB HDD Sistema Operacional: 10 GB HDD Sistema de Arquivos: Ext4 Sistema de Arquivos: Ext4 Swap: 4GB HDD Swap: 2 GB HDD GT-CNC
  • 31. Arquitetura do Protótipo • Servidores com os 3 tipos de serviço (contêiner, conta, objeto): UFPA Nós de Armazenamento - 1~3 Nós de Armazenamento - 4 Hardware Hardware RAM: 768 MB RAM: 768 MB CPU: 1 CPU: 1 HDD: 450 GB HDD: 148GB Sistema Operacional Sistema Operacional Ubuntu 12.04 Server Sistema de Arquivos: Ext4 (raiz) e Ubuntu 12.04 Server XFS (swift) Sistema de Arquivos: Ext4 (raiz) e XFS (swift) Sistema Operacional: 48GB HDD Sistema Operacional: 48GB HDD Swap: 2GB HDD Swap: 2GB HDD Armazenamento Swift: 400GB Armazenamento Swift 1: 100GB HDD HDD Armazenamento Swift 2: 2TB através de Storage Externo GT-CNC
  • 32. Arquitetura do Protótipo • Servidores com os 3 tipos de serviço (contêiner, conta, objeto): UFSC Nós de Armazenamento – 1~4 Hardware RAM: 1 GB CPU: 1 HDD: 450 GB IP: 150.162.66.41 ~ 44 Sistema Operacional Ubuntu 12.04 Server Sistema de Arquivos: Ext4 (raiz) e XFS (swift) Sistema Operacional: 48GB HDD Swap: 2GB HDD Armazenamento Swift: 400 GB HDD GT-CNC
  • 33. Arquitetura do Protótipo Configurações do protótipo: Anel • Um anel para cada serviço (objetos, contêineres, contas) • Anel criado no proxy e distribuído para todos os nós Replicação: • 3 réplicas para cada objeto, contêiner e conta Partições: • 100 para cada drive Autenticação: swAuth GT-CNC
  • 34. FIM Obrigado, Perguntas? GT-CNC
  • 35. Referências • [1] http://greg.brim.net/page/building_a_consistent_hashing_ring.html • [2] http://docs.openstack.org/developer/keystone/architecture.html • [3] http://docs.openstack.org/developer/swift/overview_architecture.html • [4] http://rsync.samba.org/ GT-CNC

Hinweis der Redaktion

  1. Modelos de serviços Software as a Service (SaaS) consumidor utiliza aplicativos do provedor rodando em uma infraestrutura de nuvem As aplicações são acessíveis a partir de diversos dispositivos clientes O consumidor não administra e nem controla a infra-estrutura de nuvem, nem o aplicativo  Contorle sobre a configuração de aplicativos Plataforma como Serviço (PaaS ) A capacidade fornecida ao consumidor destina-se à infra-estrutura criada ou comprada pelo consumidor para a nuvem, criada usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implementados e possivelmente sobre as configurações para o ambiente de hospedagem de aplicativos. Infra-estrutura como serviço (IaaS) O consumidor dispõe de provisionamento de processamento, armazenamento, redes e outros recursos de computação fundamentais onde o consumidor é capaz de implementar e executar softwares arbitrários, que podem incluir sistemas operacionais e aplicativos. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento e aplicativos implementados, e possivelmente um controle limitado de componentes de rede selecionados (por exemplo,  firewalls  do  host ).
  2. Modelos de serviços Software as a Service (SaaS) consumidor utiliza aplicativos do provedor rodando em uma infraestrutura de nuvem As aplicações são acessíveis a partir de diversos dispositivos clientes O consumidor não administra e nem controla a infra-estrutura de nuvem, nem o aplicativo  Contorle sobre a configuração de aplicativos Plataforma como Serviço (PaaS ) A capacidade fornecida ao consumidor destina-se à infra-estrutura criada ou comprada pelo consumidor para a nuvem, criada usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implementados e possivelmente sobre as configurações para o ambiente de hospedagem de aplicativos. Infra-estrutura como serviço (IaaS) O consumidor dispõe de provisionamento de processamento, armazenamento, redes e outros recursos de computação fundamentais onde o consumidor é capaz de implementar e executar softwares arbitrários, que podem incluir sistemas operacionais e aplicativos. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento e aplicativos implementados, e possivelmente um controle limitado de componentes de rede selecionados (por exemplo,  firewalls  do  host ).
  3. Modelos de serviços Software as a Service (SaaS) consumidor utiliza aplicativos do provedor rodando em uma infraestrutura de nuvem As aplicações são acessíveis a partir de diversos dispositivos clientes O consumidor não administra e nem controla a infra-estrutura de nuvem, nem o aplicativo  Contorle sobre a configuração de aplicativos Plataforma como Serviço (PaaS ) A capacidade fornecida ao consumidor destina-se à infra-estrutura criada ou comprada pelo consumidor para a nuvem, criada usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implementados e possivelmente sobre as configurações para o ambiente de hospedagem de aplicativos. Infra-estrutura como serviço (IaaS) O consumidor dispõe de provisionamento de processamento, armazenamento, redes e outros recursos de computação fundamentais onde o consumidor é capaz de implementar e executar softwares arbitrários, que podem incluir sistemas operacionais e aplicativos. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento e aplicativos implementados, e possivelmente um controle limitado de componentes de rede selecionados (por exemplo,  firewalls  do  host ).
  4. Modelos de serviços Software as a Service (SaaS) consumidor utiliza aplicativos do provedor rodando em uma infraestrutura de nuvem As aplicações são acessíveis a partir de diversos dispositivos clientes O consumidor não administra e nem controla a infra-estrutura de nuvem, nem o aplicativo  Contorle sobre a configuração de aplicativos Plataforma como Serviço (PaaS ) A capacidade fornecida ao consumidor destina-se à infra-estrutura criada ou comprada pelo consumidor para a nuvem, criada usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implementados e possivelmente sobre as configurações para o ambiente de hospedagem de aplicativos. Infra-estrutura como serviço (IaaS) O consumidor dispõe de provisionamento de processamento, armazenamento, redes e outros recursos de computação fundamentais onde o consumidor é capaz de implementar e executar softwares arbitrários, que podem incluir sistemas operacionais e aplicativos. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento e aplicativos implementados, e possivelmente um controle limitado de componentes de rede selecionados (por exemplo,  firewalls  do  host ).
  5. Modelos de serviços Software as a Service (SaaS) consumidor utiliza aplicativos do provedor rodando em uma infraestrutura de nuvem As aplicações são acessíveis a partir de diversos dispositivos clientes O consumidor não administra e nem controla a infra-estrutura de nuvem, nem o aplicativo  Contorle sobre a configuração de aplicativos Plataforma como Serviço (PaaS ) A capacidade fornecida ao consumidor destina-se à infra-estrutura criada ou comprada pelo consumidor para a nuvem, criada usando linguagens de programação, bibliotecas, serviços e ferramentas suportadas pelo provedor. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre os aplicativos implementados e possivelmente sobre as configurações para o ambiente de hospedagem de aplicativos. Infra-estrutura como serviço (IaaS) O consumidor dispõe de provisionamento de processamento, armazenamento, redes e outros recursos de computação fundamentais onde o consumidor é capaz de implementar e executar softwares arbitrários, que podem incluir sistemas operacionais e aplicativos. O consumidor não administra e nem controla a infra-estrutura de nuvem subjacente, mas tem controle sobre sistemas operacionais, armazenamento e aplicativos implementados, e possivelmente um controle limitado de componentes de rede selecionados (por exemplo,  firewalls  do  host ).
  6. Um contêiner é um compartimento de armazenamento de objetos que possibilita a organização dos objetos; ele pode ser comparado a uma pasta do Windows , mas contêineres não podem ser aninhados tal como as pastas.
  7. Uma zona é um agrupamento de dispositivos realizado dentro do anel. Este agrupamento pode ser por localização física, separação por unidades de energia, separação por redes ou de qualquer outro atributo que possa reduzir a chance de tornar indisponível múltiplas réplicas ao mesmo tempo. Uma zona pode representar um servidor, um switch ou um datacenter . A replicação de objetos é realizada em zonas separadas.  
  8. O anel determina onde os dados devem residir no cluster. Ele representa um mapeamento entre os nomes de entidades armazenadas em disco e sua localização física. Existem anéis separados para contas, contêineres e objetos. O anel mantém o mapeamento utilizando zonas, dispositivos, partições ou réplicas. Quando outros componentes precisam realizar qualquer operação em um objeto, contêiner ou conta, eles precisam interagir com um anel específico para determinar a localização no cluster.
  9. Os dados no proxy são sincronizado entre todos os proxys
  10. Metadado armazenado nos atributos extendidos do arquivo (nem todo sistema de arquivo dá suporte para isso) Deleta, recupera e insere blobs Cada objeto é armazenado utilizando um caminho derivado do nome do hash do objeto e de um timestamp .
  11. Cada um é um middleware que deve ser configurado
  12. Cada um é um middleware que deve ser configurado
  13. Cada um é um middleware que deve ser configurado
  14. Token tem tempo de vida por defoult de 24 horas