Upload
lucas-silva
View
156
Download
0
Embed Size (px)
DESCRIPTION
workshop inicialização GT-CNC Fase 2
Citation preview
GT-CNC Computação em Nuvem para Ciência
Lucas Melo [email protected]
Nov/2012
Workshop Inicialização GT-CNC Fase 2
Sumário
• Introdução
• Overview do Openstack Swift
• A Arquitetura do Protótipo
• Referências
GT-CNC
Introdução
GT-CNC
Objetivos:
• Apresentar o panorama geral da arquitetura Openstack Swift
• Apresentar a arquitetura do protótipo de armazenamento em nuvem
A Ferramenta Selecionada
GT-CNC
Processamento
ArmazenamentoNetworking
A Ferramenta Selecionada
GT-CNC
Usabilidade: Clientes e ferramenta administrativas
Rackspace Hosting app
swift
Ferramenta Selecionada
GT-CNC
Usabilidade: APIs de acesso a nuvem
swift
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
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
Composição do Swift
GT-CNC
Alguns Conceitos Iniciais
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
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
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
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>
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)
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
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
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
Composição do Swift
GT-CNC
Autenticação e Autorização
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”
Composição do Swift
GT-CNC
Formas de autenticação:
• tempAuth
• swAuth
• Keystone.
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
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.
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]
Composição do Swift
GT-CNC
Mecanismos para melhorar confiabilidade/consistência [3]:
• Replicação
• Auditoria
• Atualizador (updater)
Composição do Swift
GT-CNC
Mecanismo para melhorar consistência: Replicação
Zona 4
Zona 3
Zona 2
Zona 1
ServidorProxy
Objeto
Arquitetura do Protótipo
GT-CNC
Casos de Uso do Protótipo
Sincronização de Arquivos Compartilhamento de Arquivos
Usuário A
Usuário B
Cópia de Arquivos
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
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
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
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
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
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
FIM
GT-CNC
Obrigado,Perguntas?
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