35
GT-CNC Computação em Nuvem para Ciência Lucas Melo Silva [email protected] Nov/2012 Workshop Inicialização GT-CNC Fase 2

Apresentacao gt cnc-workshop_iniciliazicao_fase2

Embed Size (px)

DESCRIPTION

workshop inicialização GT-CNC Fase 2

Citation preview

Page 1: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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

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

Introdução

GT-CNC

Objetivos:

• Apresentar o panorama geral da arquitetura Openstack Swift

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

Page 7: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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

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

Composição do Swift

GT-CNC

Alguns Conceitos Iniciais

Page 10: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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

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

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

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

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

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

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

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

Composição do Swift

GT-CNC

Autenticação e Autorização

Page 19: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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

Composição do Swift

GT-CNC

Formas de autenticação:

• tempAuth

• swAuth

• Keystone.

Page 21: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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

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

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

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

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

Arquitetura do Protótipo

GT-CNC

Page 27: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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

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

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

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

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

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

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

FIM

GT-CNC

Obrigado,Perguntas?

Page 35: Apresentacao gt cnc-workshop_iniciliazicao_fase2

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