quarta-feira, 3 de julho de 2013

De prato a Flash, a evolução do Storage - HP 3PAR StorageServ 7450

O motivador para eu escrever este texto foi a oportunidade que tive de conhecer um novo tipo de storage apresentado pela HP no final do 1º semestre em seu evento Discovery 2013. Trata-se de um dispositivo totalmente baseado em memória flash. Eu consegui enxergar a extensão e consequências para o mercado deste tipo de recurso. Por isso tive a ideia de fazer uma breve recapitulação da história do storage até chegar a esta interessante peça de engenharia da HP e falar mais um pouco dela. A história é interessante. Quem já conhece todos os conceitos envolvidos pode pular uma parte do texto e ir direto para a parte que falo dos storages Flash. Mas eu o convido a fazer a viagem pela evolução e pelos conceitos nos parágrafos seguintes...

A origem histórica e a necessidade

Tive a sorte de acompanhar esta evolução desde o início. Vivi a época áurea do “downsizing”. Foi o momento que as empresas migraram parte de suas aplicações dos míticos Mainframes para redes locais de computadores. Houve exageros, empresa que tirou o Mainframe da tomada e depois se arrependeu pelo radicalismo. Em épocas de Netware da Novell os Mainframes que permaneceram ligados tiveram como justificativa a robustez, confiabilidade e desempenho do sistema de acesso a dados.

O então consagrado Netware era anos luz melhor em termos de desempenho quando comparado com servidores de arquivos da época. Já havia espelhamento de discos, acesso paralelo, redundância, etc., mas o subsistema de armazenamento de Mainframes tinha pelo menos 30 anos de dianteira tecnológica em relação à baixa plataforma.

Quando surgiram os “storages” parecia a ideia certa no tempo certo. Essencialmente são servidores especializados em armazenamento. Contendo uma dúzia de discos ou crescendo até 1000 discos, toda a sofisticação do hardware e também do software garantem a capacidade de gerenciamento, alocação de espaço, administração de prioridade de armazenamento, etc. Sobrava o gargalo da velocidade de comunicação com o servidor de aplicações ou servidor de bancos de dados, usos mais típicos de sistemas de storage (embora também sejam usados em servidores de arquivos).

Esta limitação foi sobrepassada com os dispositivos de fibre channel, pois estes permitiam conectar os storages aos servidores em velocidades iguais ou até superiores aos discos nativos destes computadores. Assim o sistema de storage pode ser entendido como uma grande “caixa preta”, um elemento externo aos servidores (vários servidores podem compartilhar um ou mais storages e acessá-los simultaneamente) operando com segurança e velocidade máximas.

Porque segurança?

Dados essenciais, aplicações de missão crítica é um cenário onde a falha não é opção. Dessa forma a multiplicidade de discos, usando diversas técnicas de redundância cumprem esta tarefa. São tantas formas de prover esta segurança, mas apenas a título de exemplo imagine o seguinte cenário extremo: 10 discos gravam informações, outros 10 discos fazem o espelho dos 10 primeiros e mais 10 discos ficam de reserva. Imagine que um dos 10 discos principais falhe. Seu espelho entra em operação imediatamente e operador do sistema é avisado. Ao mesmo tempo um dos 10 discos reserva recebe o conteúdo do disco principal e este passa a ser o novo espelho. Isso tudo de forma automática. Em teoria precisaria acontecer mais de 20 falhas e ninguém tomar ação alguma para que o sistema entre em colapso e houvesse perda de dados.

Por isso este tipo de catástrofe em storages só acontece por erro humano, ou seja, se um operador acidentalmente formatar um volume de dados ou não realizar a troca de um elemento defeituoso. Pane de hardware ou pane física é quase tão improvável como a queda de um meteoro sobre a empresa. Mas o leitor que ainda não é familiar com este tipo de dispositivo deve estar achando que para obter esta segurança ocorre um desperdício imenso de espaço, afinal são 10 discos, mais 10 espelhos e mais 10 de reserva. Na prática existem sofisticados algoritmos que atuam na gravação dos dados que os distribuem entre as unidades de tal forma que apenas 1 ou 2 discos são necessários para esta segurança (RAID 5 ou RAID 6) e a quantidade de discos reserva podem ser tantos quantos o administrador do sistema escolha. Pense que pode haver apenas 3 no caso de uma falha e tão logo esta ocorra, o espelho entra em ação, o primeiro reserva vira o espelho e tão logo o operador troque o disco, tudo volta ao normal e ainda há 2 discos sobrando. Claro que se o storage tiver centenas discos (200 ou 300) ter 10 ou 20 reservas é uma boa ideia. Se você não sabia, é dessa forma que a segurança de um storage atinge o “Mainframe Level”!!!

Porque velocidade?

A essência de um sistema de storage é a multiplicidade dos discos. Já foi explicado que isso confere muita segurança ao sistema. Porém junto com a robustez vem junto um grande ganho de velocidade. Qual o porquê disso? A informação é gravada toda espalhada em múltiplos discos. Assim o sistema de forma muito inteligente ao receber uma requisição de leitura de um arquivo aciona um grande número de discos em paralelo para buscar os pedaços de um arquivo que estão espalhados e os reúne rapidamente.

Imagine que em uma prateleira existe a coleção completa de livros do Machado de Assis. Suponha que sejam 50 livros (romances, peças de teatro, livros de poesia e crônicas). Imagine que você consegue trazer para sua mesa 2 livros por vez. Vai precisar fazer 25 viagens entre sua mesa e a prateleira para recuperar o conteúdo. Mas e se fossem 30 pessoas na sala? Bastariam 2 viagens, uma para trazer 30 livros e a segunda os 20 restantes. Este é o efeito de usar muitos discos em um sistema de storage. É dramático o resultado!! Já com 4 ou 5 discos o efeito é bem perceptível, imagine então um sistema com centenas de discos!

Mas o efeito de ganho de desempenho se dá de forma tão dramática também no aspecto da simultaneidade de acesso (uso concorrente). Um servidor convencional, com seus discos internos pode atender quantas demandas simultâneas? Várias, mas após 5 ou 10 o desempenho caiu drasticamente pois as requisições vêm pela rede que é um canal único, um gargalo de fato. Quando vários servidores, dezenas deles ou até mais de uma centena, são conectado a um storage, cada um se comunica com por um canal próprio e exclusivo (por exemplo fibre channel). Dessa forma o sistema de discos se comporta como se fosse exclusivamente daquele servidor operando na máxima velocidade permitida pela interface (neste exemplo fiber channel). Como a multiplicidade de discos garante velocidade de acesso e transferência bem maior do que a interface (que é muito rápida), isso garante que um grande número de servidores tenham acesso pleno e com máximo desempenho, mesmo com um grau de acessos simultâneos antes impensado!

Porque gerenciamento e flexibilidade?

De que adianta ter uma “caixa preta” com centenas de unidades de discos, com capacidades de centenas de Terabytes ou muito mais sem poder administrar detalhadamente cada recurso? Um storage pode vir “vazio”, ou seja, apenas com parte dos discos instalados. Dessa forma o investimento inicial é menor e o usuário pode ao longo do tempo adquirir discos novos e montá-los no equipamento na medida que a necessidade de armazenamento aumenta. Também pode fazer a aquisição com todos os discos. De uma forma ou de outra o imenso espaço existente deve ser cuidadosamente gerenciado.

Alguns exemplos : alocação de discos reserva (“hot spare”); dedicação de segmentos de espaço para servidores distintos bem como áreas comuns; configuração de mecanismo de replicação entre storages (local ou remoto) para prover redundância completa do storage; definição de volumes com propósitos distintos privilegiando desempenho ou segurança (grupos de discos com diferentes tipos de array em função da aplicação)... São muitas possibilidades visando máximo aproveitamento do recurso.

Gerenciamento do ciclo de vida da informação

Esta característica é para mim das mais fascinantes! Storages podem conter discos de diferentes tecnologias, capacidades e preços em função da necessidade e orçamento da empresa. Um exemplo simples, entre 100 discos 20 podem ser SSD (memória flash) e que são incrivelmente rápidos. Outros 40 discos podem ser de tecnologia SAS de 15.000 rpm, discos rápidos (não tanto quanto SSDs) e outros 40 podem ser discos simples de tecnologia SATA 7.200 rpm (que são bem baratos e mais lentos).

Um sistema híbrido assim seria melhor aproveitado se os dados mais acessados ficassem nos discos mais rápidos (SSD) , os dados um pouco menos acessados poderiam ser guardados nos discos SAS 15.000 rpm e os dados que quase nunca se usa, praticamente informações arquivadas podem ficar nos discos mais lentos e baratos, os SATA 7.200 rpm. Seria ideal não acha? Mas como fazer isso? Este é o lado incrível desta tecnologia. Storages mais modernos têm a inteligência necessária para fazer isso em tempo real. Conforme certo dado tem mais ou menos acessos sua localização física dentro do storage é alterada. Assim após algum tempo de uso as informações que necessitam acesso mais veloz migram para a fração SSD do dispositivo enquanto aquele pouco ou nada acessados migram para os baratos e lentos discos SATA. Fazer este tipo de distribuição de forma manual seria inviável, um trabalho insano de análise manual de imensos logs de uso!!

Há modelos de storage que têm conexões com unidades externas de fitas de backup provendo uma camada adicional de armazenamento para dados históricos que provavelmente nunca mais serão usados. Salvo em uma auditoria, uma fiscalização, etc. Estes podem residir em fitas de backup no caso de serem requisitados o sistema monta a fita, recupera o dado e entrega para o usuário, de forma sensivelmente mais lenta, mas entrega de forma transparente.

A evolução – storages totalmente baseados em memória flash!!

O título deste texto fala em “De prato a Flash”. Esta alegoria pretende destacar que os storages tradicionais, que usam discos magnéticos pode ser comparados aos antigos toca-discos que reproduziam os discos de vinil. O disco girava sobre um prato e uma agulha percorria da parte externa a parte interna lendo as informações analógicas gravadas nos sulcos e fazendo tocar as músicas. Tempos depois surgiu o CD que tinha as músicas codificadas em uma camada refletiva e um feixe de laser enviado e refletido era analisado para decodificar a música. Atualmente temos música gravada em nossos smartphones, MP3 Players do tipo iPod de forma digital, usando as tais memórias flash, dado 100% digital e imutável. Esta é a cruel comparação que faço da tecnologia de storages que usam discos mecânicos magnéticos com a tecnologia flash.

Discos mecânicos por sua própria natureza têm risco maior quebra. Pratos giram e às vezes a informação que estava no segmento que acabou de passar pela cabeça de leitura precisa rotacionar quase que 360 graus para que esteja de novo na posição de ser lida. Isso influencia muito a LATÊNCIA, tempo para começar a recuperar um dados. Sistemas com SSD são baseados em células de memória diretamente endereçáveis e acessíveis. Nada gira, não há espera. Isso elimina virtualmente a ZERO a latência, ou na prática entre 100 e 500 vezes menor que discos convencionais.

Todos precisam disso? Certamente que não. A tecnologia de unidades de armazenamento flash tem maior custo. Por isso esta grande velocidade extra atende a demandas bastante críticas. Hoje em dia nos bastidores de qualquer site ou portal ou comércio eletrônico existem sistemas de bancos de dados que podem ser incrivelmente complexos e extensos. Afinal vivemos a era do BIG DATA, certo? Aplicações que demandem velocidades de acesso muito elevadas é a primeira função desta tecnologia. Mas não só isso. A maior velocidade implica em menor tempo para realizar cada consulta e por conseguinte muito mais pessoas poderão usar aquele recurso, o site, a loja eletrônica, o ERP (software de gestão empresarial) ao mesmo tempo. Isso faz imensa diferença. Custa mais caro? Custa. Mas permite velocidade de acesso e ao mesmo tempo escalabilidade (maior concorrência). É a análise a ser feita para a adoção desta tecnologia.

HP 3PAR StorageServ 7450 – a revolução do Flash

A HP anunciou recentemente em seu evento Discovery 2013 a disponibilidade do produto com esta tecnologia. Convém ressaltar que storages da HP de outros conceituados fabricantes já suportam uso de SSDs (flash) há algum tempo. A novidade deste anúncio, o novo produto é a sua alta especialização e direcionamento para alto desempenho.

figura 1 – HP 3PAR StorageServ 7450


Imagine um bom automóvel, um sedã de bom porte como um Jetta, um Fusion, um Elantra ou algo do tipo. Nada impede que um motor de Ferrari de 600 HP seja adaptado ao carro. Ele terá instantaneamente um ganho estelar na sua velocidade, sua arrancada, etc. Mas se este carro não tiver um projeto a altura deste anabolizado motor, se não tiver pneus mais resistentes, freios maiores (eventualmente de fibra de carbono) e uma suspensão recalibrada não será possível desfrutar o máximo desempenho que o novo motor proporcionará!!

Este é o ponto. O StorageServ 7450 (existe também o modelo menor, a versão 7400) tem todo o seu projeto direcionado para o uso dos SSDs. Nova tecnologia de gerenciamento de I/O (comunicação com o dispositivo) foi projetada para que possa absorver a quantidade e volume de dados que dezenas ou centenas de SSDs trabalhando em paralelo podem prover. Processadores de tecnologia ASIC (Application-specific Integrated Circuits) entregam maior desempenho e conseguem manipular a avalanche de informações que são lidas a cada segundo.

Segundo a HP não são usados SSDs comprados do mercado e sim unidades especialmente encomendadas segundo especificações que atendam às suas necessidades. A HP não revela qual é o seu fornecedor. Mas o que se sabe é que otimizações diversas existem visando incrementar o desempenho. Por exemplo, é conhecido que gravar um SSD é operação um pouco mais lenta que a leitura. Por sua vez regravar uma pedaço da memória é ainda um pouco mais lento. As controladoras do storage mantém a informação das células “virgens” (não gravadas) e a cada solicitação de gravação as utilizam. Dados antigos são apagados em segundo plano de forma que as células já usadas tornam-se virgens novamente para reaproveitamento. Há dezenas de técnicas deste tipo que não vale a pena discutir aqui, mas o que vale é o conceito de alta velocidade e disponibilidade.

Também usados em storages “convencionais” as técnicas de criptografia de dados e deduplicação estão presentes. A criptografia, conceito mais conhecido garante que a informação é armazenada codificada e indecifrável por quem não conhece seu algoritmo. A deduplicação é responsável pela otimização de espaço, dados ou blocos de dados que são iguais e aparecem várias vezes são gravados apenas uma vez, aumentando bastante a eficiência do armazenamento. Ainda está presente a técnica de compressão de dados que quando usada reduz mais ainda o espaço ocupado. São recursos que podem ser ativados ou não em função das necessidades de otimização de espaço frente ao desempenho esperado.

Traduzindo em números, principalmente para sensibilizar quem tem referências neste mercado, o HP 3PAR StorageServ 7450 atinge 554.000 IOPS (operações de I/O por segundo) e com latência de acesso aos dados de 0.7 ms (1 ms é um milésimo de segundo) em regime máximo de uso de apenas 0.5 ms em regime moderado. O que isso significa? É rápido!! É muito rápido!!

figura 2 – curva de latência dos storages em função de sua solicitação

Toda esta tecnologia tem seu preço. O investimento necessário para aquisição do 7450 nos EUA é de US$ 99.000 e ainda requer um sistema mais evoluído de Fiber Channel (mais rápido) para aproveitar o potencial do 7450.

Conclusão

A HP teve uma visão interessante ao criar esta solução. Em tempos de BIG DATA tendendo para o “HUGE DATA” certas empresas e certas aplicações têm um apetite incomensurável por desempenho. Atingir estas metas exige um ecossistema todo refinado e de alta capacidade. Servidores, switches fiber channel e principalmente onde tudo reside, o storage precisa trabalhar em patamar de performance muito elevado. Para aplicações críticas que exijam este nível de desempenho, escalabilidade (simultaneidade) este produto faz total sentido.

Mas mesmo as empresas que ainda não precisam deste tipo de solução serão beneficiadas no médio prazo. Já vimos este filme. As tecnologia vão sendo promovidas e popularizadas. O LP de vinil virou CD que por sua vez virou música digital. Rede Ethernet de 100 Mb que virou 1 GB e que já beira os 48 GB de velocidade. Conforme a necessidade empurra para cima os patamares de velocidade e confiabilidade as soluções “antigas” viram “mainstream” (bem disseminadas). Mas uma coisa eu não sei, depois disso o que poderá surgir?? Para onde evoluirá ainda mais este mercado de armazenamento?? Não sei responder, mas espero ter a oportunidade de acompanhar uma implantação de um HP 7450 ou mesmo poder fazer alguns testes com ele... Poderei falar mais sobre o assunto!!

Nenhum comentário:

Postar um comentário