apresentacao gt cnc-workshop_iniciliazicao_fase2
DESCRIPTION
workshop inicialização GT-CNC Fase 2TRANSCRIPT
![Page 1: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/1.jpg)
GT-CNC Computação em Nuvem para Ciência
Lucas Melo [email protected]
Nov/2012
Workshop Inicialização GT-CNC Fase 2
![Page 2: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/2.jpg)
Sumário
• Introdução
• Overview do Openstack Swift
• A Arquitetura do Protótipo
• Referências
GT-CNC
![Page 3: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/3.jpg)
Introdução
GT-CNC
Objetivos:
• Apresentar o panorama geral da arquitetura Openstack Swift
• Apresentar a arquitetura do protótipo de armazenamento em nuvem
![Page 4: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/4.jpg)
A Ferramenta Selecionada
GT-CNC
Processamento
ArmazenamentoNetworking
![Page 5: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/5.jpg)
A Ferramenta Selecionada
GT-CNC
Usabilidade: Clientes e ferramenta administrativas
Rackspace Hosting app
swift
![Page 6: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/6.jpg)
Ferramenta Selecionada
GT-CNC
Usabilidade: APIs de acesso a nuvem
swift
![Page 7: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/7.jpg)
Ferramenta Selecionada
GT-CNC
Openstack SwiftBenefícios
• Compatibilidade com protocolo S3;
• 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
swift
![Page 8: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/8.jpg)
Ferramenta Selecionada
GT-CNC
Openstack Swift
Limitações
• 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.
swift
![Page 9: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/9.jpg)
Composição do Swift
GT-CNC
Alguns Conceitos Iniciais
![Page 10: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/10.jpg)
Composição do Swift: Conceitos iniciais
GT-CNC
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
![Page 11: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/11.jpg)
Composição do Swift: Conceitos iniciais
GT-CNC
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
![Page 12: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/12.jpg)
Composição do Swift: Conceitos iniciais
GT-CNC
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
![Page 13: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/13.jpg)
Composição do Swift: Conceitos iniciais
GT-CNC
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
Anel
Conjunto de mapeamentos hash: <ID, Local>
![Page 14: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/14.jpg)
Composição do Swift: Servidores
GT-CNC
Componentes macros:
•Servidor Proxy (Proxy Server)
•Servidor de Contas (Account Server)
•Servidor de Contêiner (Container Server)
•Servidor de Objetos (Object Server)
![Page 15: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/15.jpg)
Composição do Swift: Servidores
GT-CNC
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
![Page 16: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/16.jpg)
Composição do Swift: Servidores
GT-CNC
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
![Page 17: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/17.jpg)
Composição do Swift: Servidores
GT-CNC
Componente macro: Servidor de Objetos
• Armazenamento dos blobs nos dispositivos de armazenamento
• Mantém metadados para cada objeto
• Mantém versionamento dos objetos
![Page 18: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/18.jpg)
Composição do Swift
GT-CNC
Autenticação e Autorização
![Page 19: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/19.jpg)
Composição do Swift: Autenticação
GT-CNC
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”
![Page 20: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/20.jpg)
Composição do Swift
GT-CNC
Formas de autenticação:
• tempAuth
• swAuth
• Keystone.
![Page 21: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/21.jpg)
Composição do Swift: Autenticação
GT-CNC
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
![Page 22: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/22.jpg)
Composição do Swift: Autenticação
GT-CNC
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.
![Page 23: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/23.jpg)
Composição do Swift: Autenticação
GT-CNC
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]
![Page 24: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/24.jpg)
Composição do Swift
GT-CNC
Mecanismos para melhorar confiabilidade/consistência [3]:
• Replicação
• Auditoria
• Atualizador (updater)
![Page 25: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/25.jpg)
Composição do Swift
GT-CNC
Mecanismo para melhorar consistência: Replicação
Zona 4
Zona 3
Zona 2
Zona 1
ServidorProxy
Objeto
![Page 26: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/26.jpg)
Arquitetura do Protótipo
GT-CNC
![Page 27: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/27.jpg)
Casos de Uso do Protótipo
Sincronização de Arquivos Compartilhamento de Arquivos
Usuário A
Usuário B
Cópia de Arquivos
![Page 28: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/28.jpg)
Arquitetura do Protótipo
GT-CNC
HTTPS
Zona 1
Zona 2
Zona 3
Zona 4 Zona 5
SSH
Armazenamento (UFPA)
Armazenamento (UFSC)
• Proxy• Autenticação• Autorização
Balanceadorde carga
UFPA
UFSC
![Page 29: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/29.jpg)
Arquitetura do Protótipo
GT-CNC
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
![Page 30: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/30.jpg)
Arquitetura do Protótipo
GT-CNC
• 2 Servidores Proxy:
UFPA UFSC
Hardware
CPU: 2Memória RAM: 3 GBHDD: 12 GBIP: 200.129.132.69
Sistema Operacional
Ubuntu 12.04 ServerSistema Operacional: 8GB HDDSistema de Arquivos: Ext4Swap: 4GB HDD
Hardware
CPU: 2Memória RAM: 2 GBHDD: 12 GBIP 150.162.66.40
Sistema Operacional
Ubuntu 12.04 ServerSistema Operacional: 10 GB HDDSistema de Arquivos: Ext4Swap: 2 GB HDD
![Page 31: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/31.jpg)
Arquitetura do Protótipo
GT-CNC
• 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
RAM: 768 MBCPU: 1HDD: 450 GB
Sistema OperacionalUbuntu 12.04 ServerSistema de Arquivos: Ext4 (raiz) e XFS (swift)Sistema Operacional: 48GB HDD Swap: 2GB HDDArmazenamento Swift: 400GB HDD
Hardware
RAM: 768 MBCPU: 1HDD: 148GB
Sistema Operacional
Ubuntu 12.04 ServerSistema de Arquivos: Ext4 (raiz) e XFS (swift)Sistema Operacional: 48GB HDD Swap: 2GB HDDArmazenamento Swift 1: 100GB HDDArmazenamento Swift 2: 2TB através de Storage Externo
![Page 32: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/32.jpg)
Arquitetura do Protótipo
GT-CNC
• Servidores com os 3 tipos de serviço (contêiner, conta, objeto):
UFSC
Nós de Armazenamento – 1~4
Hardware
RAM: 1 GBCPU: 1HDD: 450 GBIP: 150.162.66.41 ~ 44
Sistema Operacional
Ubuntu 12.04 ServerSistema de Arquivos: Ext4 (raiz) e XFS (swift)Sistema Operacional: 48GB HDDSwap: 2GB HDDArmazenamento Swift: 400 GB HDD
![Page 33: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/33.jpg)
Arquitetura do Protótipo
GT-CNC
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
![Page 34: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/34.jpg)
FIM
GT-CNC
Obrigado,Perguntas?
![Page 35: Apresentacao gt cnc-workshop_iniciliazicao_fase2](https://reader036.vdocuments.com.br/reader036/viewer/2022081403/556e25b5d8b42a6a698b471d/html5/thumbnails/35.jpg)
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