Anatomia de uma infraestrutura de armazenamento em nuvem – IBM Developer

Anatomia de uma infraestrutura de armazenamento em nuvem

À taxa em que os dados estão aumentando hoje, não é surpreendendo que o armazenamento em nuvem esteja ficando mais popular. Os dados em mais rápido crescimento são os dados do archive, que são ideais para armazenamento em nuvem, dados diversos fatores, incluindo custo, frequência de acesso, proteção e disponibilidade. Mas nem todo armazenamento em nuvem é igual. Um provedor pode focar principalmente em custo, enquanto outro foca em disponibilidade ou desempenho. Nenhuma arquitetura tem um foco singular, mas os graus em que uma arquitetura implementa uma dada característica define seu mercado e modelos de uso adequados.

É difícil falar sobre arquiteturas sem a perspectiva de utilitário. Com isso, quero dizer a medida de uma arquitetura a partir de uma diversidade de características, incluindo custo, desempenho, acesso remoto, e assim por diante. Portanto, primeiro defino um conjunto de critérios através dos quais os modelos de armazenamento em nuvem são medidos, e então exploro algumas das implementações interessantes dentro das arquiteturas de armazenamento em nuvem.

Primeiro, vamos discutir uma arquitetura de armazenamento em nuvem geral para definir o contexto para posterior exploração dos recursos únicos da arquitetura.

Arquitetura geral

Arquiteturas de armazenamento em nuvem estão principalmente relacionadas à entrega de armazenamento on demand de uma maneira altamente escalável e com múltiplos clientes. Genericamente (consulte Figura 1. Arquitetura de armazenamento em nuvem genérica), arquiteturas de armazenamento em nuvem consistem em um front-end que exporta uma API para acessar o armazenamento. Em sistemas de armazenamento tradicionais, essa API é o protocolo SCSI; mas na nuvem, esses protocolos estão evoluindo. Lá, é possível encontrar front-ends de serviço da Web, front-ends com base em arquivo e inclusivo front-ends ainda mais tradicionais (como Internet SCSI, ou iSCSI). Atrás do front-end está uma camada de middleware que chamo de lógica de armazenamento. Essa camada implementa uma variedade de recursos, como replicação e redução de dados, sobre os tradicionais algoritmos de colocação dados (com consideração para a colocação geográfica). Por fim, o backend implementa o armazenamento físico para os dados. Isso pode ser um protocolo interno que implementa recursos específicos ou um backend tradicional para os discos físicos.

Figura 1. Arquitetura de armazenamento em nuvem genérica

Arquitetura de armazenamento em nuvem genérica

Na Figura 1, é possível ver algumas das características para arquiteturas de armazenamento em nuvem atuais. Observe que nenhuma característica é exclusiva na camada particular, mas serve como um guia para tópicos específicos que este artigo aborda. Essas características são definidas na Tabela 1. Características do armazenamento em nuvem.

Tabela 1. Características do armazenamento em nuvem

Característica Description
Gerenciamento A capacidade de gerenciar um sistema com o mínimo de recursos
Método de acesso Protocolo através do qual o armazenamento em nuvem é exposto
Desempenho Desempenho como medido por largura de banda e latência
Multilocação Suporte para diversos usuários (ou clientes)
Escalabilidade Capacidade de ser escalável para atender demandas ou carregamento mais altos de maneira tranquila
Disponibilidade de dados Medida do tempo de atividade de um sistema
Control Capacidade de controlar um sistema — em particular, para configurar para custo, desempenho ou outras características
Eficiência de armazenamento Medida da eficiência com que o armazenamento bruto é usado
Custo Medida do custo do armazenamento (normalmente em dólares por gigabyte)

Gerenciamento

Um dos focos principais do armazenamento em nuvem é o custo. Se um cliente pudesse comprar e gerenciar armazenamento localmente, em comparação a alugá-lo na nuvem, o mercado de armazenamento em nuvem desapareceria. Mas o custo pode ser dividido em duas categorias de alto nível: o custo no ecossistema de armazenamento físico em si e o custo de gerenciá-lo. O custo de gerenciamento é oculto, mas representa um componente de longo prazo no custo geral. Por esse motivo, o armazenamento em nuvem deve ser autogerenciável em uma grande medida. A capacidade de introduzir novo armazenamento em que o sistema automaticamente configura a si próprio para acomodá-lo e a capacidade de localizar e realizar autocorreção na presença de erros são cruciais. Conceitos como computação autônoma terão uma função crucial nas arquiteturas de armazenamento em nuvem no futuro.

Método de acesso

Uma das diferenças de mais destaque entre armazenamento em nuvem e armazenamento tradicional são os meios pelos quais cada uma é acessada (consulte Figura 2. Métodos de acesso de armazenamento em nuvem). A maioria dos provedores implementa diversos métodos de acesso, mas APIs de serviço da Web são comuns. Muitas das APIs são implementadas com base nos princípios REST, que implicam um esquema com base em objeto desenvolvido sobre HTTP (usando HTTP como um transporte). APIs REST são stateless e, portanto, simples e eficientes de fornecer. Muito provedores de armazenamento em nuvem implementam APIs REST, incluindo Amazon Simple Storage Service (Amazon S3), Windows Azure™ e Mezeo Cloud Storage Platform.

Um problema com as APIs de serviço da Web é que elas exigem integração com um aplicativo para obterem vantagem do armazenamento em nuvem. Portanto, métodos de acesso comuns também são usados com o armazenamento em nuvem para fornecer integração imediata. Por exemplo, protocolos com base em arquivo, como NFS/Common Internet File System (CIFS) ou FTP são usados, uma vez que são protocolos com base em bloco, como o iSCSI. Provedores de armazenamento em nuvem, como Nirvanix, Zetta e Cleversafe, fornecem esses métodos de acesso.

Embora os protocolos já mencionados sejam os mais comuns, outros protocolos são adequados para o armazenamento em nuvem. Um dos mais interessantes é o Web-based Distributed Authoring and Versioning (WebDAV). O WebDAV também é baseado em HTTP e ativa a Web como um recurso de leitura e gravação. Os provedores de WebDAV incluem Zetta e Cleversafe, além de outros.

Figura 2. Métodos de acesso de armazenamento em nuvem

Métodos de acesso de armazenamento em nuvem

Também é possível localizar soluções que apoiem acesso de múltiplos protocolos. Por exemplo, IBM® Smart Business Storage Cloud ativa tanto protocolos com base em arquivo (NFS e CIFS) quanto protocolos com base em SAN a partir da mesma infraestrutura de virtualização de armazenamento.

Desempenho

Há muitos aspectos de desempenho, mas a capacidade de mover dados entre um usuário e um provedor de armazenamento em nuvem remoto representa o maior desafio do armazenamento em nuvem. O problema, que também pode ser o cavalo de força da Internet é o TCP. O TCP controla o fluxo de dados com base nas configurações de pacote do ponto final do peer. Perda de pacote ou entrega atrasada ativa controle de congestão, o que limita ainda mais o desempenho para evitar mais problemas de rede global. O TCP é ideal para mover pequenas quantidades de dados através da Internet global, mas é menos adequado para mover dados maiores, com round-trip time (RTT) crescente.

A Amazon, através do software Aspera, resolveu esse problema removendo o TCP da equação. Um novo protocolo chamado Fast and Secure Protocol (FASP™ ) foi desenvolvido para acelerar a movimentação de dados em grande volume em face do grande RTT e da grave perda de pacote. A chave é o uso do UDP, que é o protocolo de transporte parceiro para TCP. O UDP permite que o host gerencie a congestão, empurrando esse aspecto para o protocolo de camada de aplicativo do FASP (consulte Figura 3. O Fast and Secure Protocol do Software Aspera).

Figura 3. O Fast and Secure Protocol do Software Aspera

Protocolo seguro do Software Aspera

Usando NICs padrão (não acelerados), o FASP usa com eficiência a largura de banda disponível para o aplicativo e remove os gargalos fundamentais dos esquemas de transferência de dados em grande volume convencionais. A ferramenta Recursos fornece algumas estatísticas interessantes sobre o desempenho do FAST sobre as tradicionais transferências WAN intercontinentais e links de satélite com perdas.

Multilocação

Uma das principais características das arquiteturas de armazenamento em nuvem é chamada múltiplos clientes. Isso significa simplesmente que o armazenamento é usado por muitos usuários (ou múltiplos clientes). Múltiplos clientes aplicam-se a muitas camadas da pilha de armazenamento, da camada de aplicativo, onde o namespace de armazenamento é segregado entre os usuários, à camada de armazenamento, onde o armazenamento físico pode ser segregado para usuários ou classes de usuários específicos. Múltiplos clientes aplicam-se inclusive à infraestrutura de rede que conecta usuários a armazenamento para permitir qualidade de serviço e moldar largura de banda para um usuário em particular.

Escalabilidade

Você pode olhar para escalabilidade de diversas maneiras, mas é a visão on demand do armazenamento em nuvem que a torna mais atraente. A capacidade de escalar as necessidades de armazenamento (tanto para cima quanto para baixo) significa melhor custo para o usuário e maior complexidade para o provedor de armazenamento em nuvem.

A escalabilidade deve ser fornecida não apenas para o armazenamento em si (escala de funcionalidade), mas também para a largura de banda para o armazenamento (escala de carregamento). Outro recurso essencial do armazenamento em nuvem é a distribuição geográfica dos dados (escalabilidade geográfica), permitindo que os dados estejam mais próximos dos usuários sobre um conjunto de centros de dados de armazenamento em nuvem (através de migração). Para dados somente leitura, a replicação e a distribuição também são possíveis (uma vez que isso é feito usando redes de entrega de conteúdo). Isso é mostrado na Figura 4. Escalabilidade do armazenamento em nuvem.

Figura 4. Escalabilidade do armazenamento em nuvem

Escalabilidade do armazenamento em nuvem

Internamente, uma infraestrutura de armazenamento em nuvem precisar poder ser escalada. Servidores e armazenamento devem poder ser redimensionados sem causar impacto aos usuários. Como discutido na seção Gerenciamento, computação autônoma é uma exigência para arquiteturas de armazenamento em nuvem.

Disponibilidade

Uma vez que o provedor de armazenamento em nuvem tem os dados de um usuário, ele deve poder fornecer esses dados de volta ao usuário sob solicitação. Dadas as indisponibilidades de rede, erros de usuário e outras circunstâncias, isso pode ser difícil de fornecer de maneira confiável e determinista.

Há alguns novos esquemas interessantes para abordar disponibilidade, como dispersão de informações. A Cleversafe, uma empresa que fornece armazenamento em nuvem privado (discutido mais adiante), usa o Information Dispersal Algorithm (IDA) para possibilitar maior disponibilidade de dados face às falhas físicas e indisponibilidades de rede. O IDA, que foi originalmente criado para sistemas de telecomunicações por Michael Rabin, é um algoritmo que permite que dados sejam divididos em fatias com códigos Reed-Solomon para fins de reconstrução de dados em face de dados faltando. Além disso, o IDA permite configurar o número de fatias de dados, de modo que um dado objeto de dados possa ser dividido em quatro fatias com uma falha tolerada ou 20 fatias com oito falhas toleradas. Similar a RAID, o IDA permite a reconstrução dos dados a partir de um subconjunto dos dados originais, com alguma quantidade de sobrecarga para códigos de erro dependendo do número de falhas toleradas). Isso é mostrado na Figura 5. Abordagem da Cleversafe para disponibilidade extrema de dados.

Figura 5. Abordagem da Cleversafe para disponibilidade extrema de dados

Abordagem da Cleversafe para disponibilidade extrema de dados

Com a habilidade de fatiar dados junto com códigos de correção Cauchy Reed-Solomon, as fatias podem ser distribuídas para sites diferentes geograficamente para armazenamento. Para diversas fatias () e diversas falhas toleradas (m), a sobrecarga resultante é /(m). Assim, no caso da Figura 5. Abordagem da Cleversafe para disponibilidade extrema de dados, a sobrecarga para o sistema de armazenamento para = 4 e m = 1 é 33%.

O lado negativo do IDA é que ele faz uso intenso de processamento sem aceleração de hardware. A replicação é outra técnica útil e é implementada por diversos provedores de armazenamento em nuvem. Embora a replicação introduza uma grande quantidade de sobrecarga (100%), ela é simples e eficiente de fornecer.

Control

A habilidade de um cliente de controlar e gerenciar como seus dados são armazenados e os custos associados a isso são importantes. Diversos provedores de armazenamento em nuvem implementam controles que dão aos usuários maior controle sobre seus custos.

A Amazon implementa Reduced Redundancy Storage (RRS) para fornecer aos usuários meios de minimizar os custos gerais de armazenamento. Os dados são replicados dentro da infraestrutura S3 da Amazon, mas com RRS, os dados são substituídos menos vezes com a possibilidade de perda de dados. Isso é ideal para dados que podem ser criados ou que têm cópias que existem em outro lugar. Nirvanix também fornece replicação com base em política para um controle mais granular sobre como e onde os dados são armazenados.

Eficiência

Eficiência de armazenamento é uma característica importante de infraestruturas de armazenamento, especialmente com seu foco em custo geral. A próxima seção relaciona-se a custo especificamente, mas essa característica relaciona-se mais ao uso eficiente dos recursos disponíveis sobre seus custos.

Para tornar um sistema de armazenamento mais eficiente, mais dados precisam ser armazenados. Uma solução comum é redução de dados, através da qual os dados de origem são reduzidos para exigir menos espaço físico. Dois meios de obter isso incluem: compressão — a redução dos dados através de codificação dos dados usando uma representação diferente — e deduplicação — a remoção de quaisquer cópias idênticas dos dados que possam existir. Embora ambos os métodos sejam úteis, a compressão envolve o processamento (recodificação dos dados para dentro e para fora da infraestrutura), enquanto a deduplicação envolve calcular assinaturas de dados para pesquisar duplicidades.

Custo

Uma das características de maior destaque do armazenamento em nuvem é a capacidade de reduzir os custos através do seu uso. Isso inclui os custos de adquirir armazenamento, os custos de ativá-lo, os custos de repará-lo (quando as unidades falham), bem como os custos de gerenciar o armazenamento. Ao ver o armazenamento em nuvem por esta perspectiva (incluindo SLAs e maior eficiência de armazenamento), o armazenamento em nuvem pode ser benéfico em certos modelos de uso.

Um pico interessante dentro da solução de armazenamento em nuvem é fornecido por uma empresa chamada Backblaze (consulte Recursos para ver os detalhes).A Backblaze estabeleceu-se para desenvolver armazenamento de baixo custo para uma oferta de armazenamento em nuvem. Um POD da Backblaze (prateleira de armazenamento) compacta 67TB em um gabinete de 4U por menos de US$ 8.000. Esse pacote consiste em um gabinete de 4U, uma placa-mãe, 4GB de DRAM, quatro controladores SATA, discos rígidos SATA de 45 1.5TB e duas fontes de alimentação. Na placa-mãe, a Backblaze executa Linux® (com JFS como o sistema de arquivos) e os NICs GbE são o front-end usando HTTPS e Apache Tomcat. O software da Backblaze inclui deduplicação, criptografia e RAID6 para proteção de dados. A descrição da Backblaze do seu POD (que mostra em detalhes como desenvolver seu próprio) mostra a extensão na qual as empresas podem cortar os custos de armazenamento, tornando o armazenamento em nuvem uma opção viável e de baixo custo.

Modelos de armazenamento em nuvem

Até agora, falamos principalmente sobre provedores de armazenamento em nuvem, mas há modelos para armazenamento em nuvem que permitem aos usuários manter controle sobre seus dados. O armazenamento em nuvem evolui para três categorias, uma das quais permite a mesclagem de duas categorias para uma opção segura e de baixo custo.

Muito deste artigo discutiu provedores de armazenamento em nuvem pública, o que apresenta a infraestrutura de armazenamento como uma mercadoria para aluguel (em termos de armazenamento tanto no curto quanto no longo prazo e a largura de banda usada dentro da infraestrutura). Nuvens privadas usam o conceito de armazenamento em nuvem pública, mas de uma forma que possam ser integradas com segurança dentro de um firewall do usuário. Por fim, o armazenamento em nuvem híbrido permite mesclar os dois modelos, possibilitando que políticas definam quais dados devem ser mantidos de maneira privada e quais podem ser protegidos dentro de nuvens públicas (consulte Figura 6. Modelos de armazenamento em nuvem).

Figura 6. Modelos de armazenamento em nuvem

Modelos de armazenamento em nuvem

Os modelos em nuvem são mostrados graficamente na Figura 6. Exemplos de provedores de armazenamento em nuvem pública incluem Amazon e Nirvanix (que oferecem o armazenamento como um serviço). Exemplos de provedores de armazenamento em nuvem privada incluem IBM, Parascale e Cleversafe (que constroem software e/ou hardware para nuvens internas). Por fim, provedores de nuvens híbridas incluem Nirvanix e Egnyte, entre outros.

Indo além

O armazenamento em nuvem é uma evolução interessante em modelos de armazenamento que redefinem as maneiras como construímos, acessamos e gerenciamos armazenamentos dentro da corporação. Embora o armazenamento em nuvem seja predominantemente uma tecnologia de consumo hoje, ele está evoluindo rapidamente para qualidade empresarial. Modelos híbridos de nuvens possibilitarão que as empresas mantenham seus dados confidenciais dentro de um datacenter, ao mesmo tempo relegando menos dados confidenciais à nuvem para economias de custo e proteção geográfica. Confira Recursos para links para informações em provedores de armazenamento em nuvem e tecnologias exclusivas.

Aviso

O conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original.