Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Fundamentos de Redes de Armazenamento

Fundamentos de Redes de Armazenamento

Published by SNIA Brasil, 2019-06-12 07:43:28

Description: Livro do programa acadêmico SNIA Brasil

Keywords: SNIA

Search

Read the Text Version

50 para Fibre Channel, usando um pequeno conversor externo que conecta a interface ao Fibre Channel. O objetivo disto é permitir que discos de baixo custo sejam instalados em gabinetes de disco corporativos - em muitos aspectos invalidando o ponto de se ter um gabinete de disco como esse em primeiro lugar. Tanto o SAS como o FC tendem a estar associados ao mesmo segmento de mercado – HDDs de alto desempenho. No entanto, um adaptador SAS custa aproximadamente um terço do preço de um adaptador FC similar. A implantação de drives FC muitas vezes também significa ter adaptadores FC separados para unidades FC de alto desempenho e para unidades SATA de armazenamento de alta capacidade, normalmente exigindo chips de conversão para a coexistência de ambos em um único sistema de armazenamento. As unidades SAS têm um sistema de resfriamento e de energia menores e ambas SAS e SATA podem ser suportadas por um único chip, reduzindo os custos de interface, complexidade e requisitos de energia. Como resultado, os drives FC estão sendo substituídos por SAS, e, como o SATA tende a ficar mais rápido, pode ser que o SATA vai tomar o mercado de alto desempenho dos HDDs também. SSDs À medida que a tecnologia SSD torna-se cada vez mais aceitável para os requisitos primários de armazenamento de dados, novos desafios aparecem sobre a questão de se aumentar a velocidade da interface para adequar à alta velocidade no acesso aos dados nos chips de memória. Por exemplo, um gargalo para acomodar todo o potencial de armazenamento de dados baseado em SSD também está no servidor onde o tradicional barramento paralelo PCI/PCI-X (onde as placas são conectadas), que nos serviu bem por muitos anos, pode não lidar com o volume de dados sendo transferidos em alta velocidade. A solução, mais uma vez, foi criar um barramento serial que mantivesse a compatibilidade com a versão paralela anterior.

51 PCIe Este Barramento serial é conhecido como PCI Express (PCIe). No entanto, o PCIe foi um passo além comparado às interfaces HDD (como mencionado acima), usando várias conexões seriais disponíveis dentro do servidor. O número máximo suportado de conexões seriais (conhecidas como caminhos) é de 16. A velocidade máxima de cada ligação serial (usando o PCIe 4.0) é ligeiramente inferior a 16 Gb/s – por isso, se você tiver um barramento PCIe com 16 caminhos, terá o potencial para chegarem a 252Gb/s (31GB/s). (Para mais informações - https://en.wikipedia.org/wiki/PCI_Express) As capacidades do PCIe no servidor estão sendo aprimoradas para criar uma interface que possa se adequar a alta velocidade das taxas de tráfego de dados do SSD. SATA Express A interface SATA está evoluindo para criar o SATA Express que utiliza duas portas SATA tradicionais (até 6 Gb/s cada) e conecta estes dois caminhos no barramento PCIe (PCIe 3.0) – efetivamente dobrando a velocidade de conexão, mantendo a compatibilidade de conexões padrão SATA e de software. No entanto, existe dúvida se esta abordagem pode entregar a taxa de transferência efetiva de dados necessária para extrair o melhor dos dispositivos SSD

52 NVMe A abordagem alternativa é criar um novo tipo de interface - NVMe (Non-Volatile Memory Express). O NVMe tem sido desenvolvido como um padrão aberto pela ANSI T11 (mesmo comitê que supervisiona os padrões do Fibre Channel) com o objetivo de fornecer uma interface padronizada de alto desempenho para SSDs (https://en.wikipedia.org/wiki/NVM_Express). Com o NVMe, o barramento PCIe do servidor fornece um acesso direto de hardware para conexão com a CPU, entretanto todas as implementações ainda precisam de um novo driver de software. O que NVMe fornece é uma interface de software aberta, de baixa latência, padronizada entre o fabric PCIe e o SSD. Atualmente, o uso primário para NVMe está na conexão direta de um único SSD a um servidor. Como os discos SSD tornaram-se economicamente mais viáveis em função da queda de seus preços, há provavelmente muitos dispositivos para se conectar diretamente ao barramento PCIe do servidor. Isto pode ser tratado por arrays de SSD, com uma boa relação custo-benefício e uma única conexão suportando vários dispositivos SSD no array. No entanto, os fabrics de rede de armazenamento existentes usam protocolos baseados em SCSI, por exemplo, iSCSI ou Fibre Channel, com latências na casa de centenas de microssegundos. A latência do NVMe SSDs é provável que seja menor que 10 microssegundos à medida que os SSDs evoluam. Isso cria uma diferença significativa entre as redes de armazenamento existentes e o NVMe. A forma como enfrentaremos estes desafios será abordada mais tarde quando discutiremos mais detalhadamente as redes de armazenamento (para maiores informações técnicas sobre a NVMe: http://www.qlogic.com/Resources/Documents/WhitePapers/Adapters/WP_FC-NVMe.pdf).

53 Capítulo 3 Seção 6 - RAID - Random Array of Independent Disks Uma outra técnica de armazenamento de dados que devemos examinar é o RAID (Redundant Array Independent Disks) - Conjunto Redundante de Discos Independentes. Como a palavra descreve, esta é uma técnica de usar vários discos individuais conjuntamente para entregar melhores funcionalidades, tais como mais desempenho e melhor proteção contra a perda de dados devido a uma falha de dispositivo. Apesar da palavra 'disco' seja baseada em torno da tecnologia HDD, as técnicas que vamos cobrir nesta seção podem igualmente se aplicar a SSDs. Uma das primeiras coisas a considerar é que existem múltiplas configurações de RAID - cada uma fornecendo diferentes níveis de melhoria de desempenho e proteção de dados. Para cada uma destas configurações, é dado um número RAID – por exemplo RAID 1, RAID 2, etc. Existem muitos tipos de RAID e, para cobrir todos eles nesta seção, teríamos de dedicar um capítulo completo para eles. Então, vamos nos concentrar em três tipos de RAID que são mais frequentemente implementados – RAID 1, RAID 5 e RAID 6. Uma das principais vantagens do RAID é a proteção de dados que é obtida pela manutenção operacional do sistema no caso de falha em um disco rígido. Se um HDD falho é substituído, o sistema RAID irá reconstruir os dados no HDD substituto como uma tarefa em segundo plano. No entanto, a maioria das configurações RAID compartilham uma vulnerabilidade na ocorrência de uma outra falha de HDD, enquanto uma reconstrução está em processo. Esta janela de vulnerabilidade dependerá da capacidade relativa dos HDDs envolvidos e do volume de dados armazenados.

54 RAID 1 O RAID 1 consiste em uma cópia exata (espelhamento) de um conjunto de dados entre um par de HDDs. O array continuará a operar enquanto pelo menos um HDD estiver operacional. Isto significa que o array só pode ser tão grande quanto o menor dos dois discos – embora estes sejam tipicamente um par igual. As configurações RAID 1 são úteis quando o desempenho e/ou proteção de dados é mais importante do que otimizar a capacidade de armazenamento de dados. Vantagens O desempenho de leitura pode ser ligeiramente melhor porque as unidades podem cooperar para ler blocos diferentes de dados. Isso pode ser alcançado através da leitura simultânea de diferentes blocos de dados em ambas unidades – possibilitando uma entrega mais rápida de dados do que apenas um único HDD. O RAID 1 também oferece uma tolerância a falha muito boa, como por exemplo, a falha de um único HDD não irá resultar na perda de quaisquer dados – na pior das hipóteses, ocorrerá uma

55 ligeira queda no desempenho para leitura de dados. Se o HDD danificado for substituído, o array do RAID irá reconstruir o segundo disco como uma tarefa de segundo plano. Desvantagens O RAID 1 é muito ineficiente em termos de capacidade, uma vez que dois HDDs são necessários para armazenar o mesmo volume de dados que um único HDD (no entanto, as vantagens de desempenho e proteção podem torná-lo atrativo para aplicações de alto desempenho, tais como requisitos de base de dados de alto desempenho, onde o custo relativo do RAID 1 tem uma menor relevância orçamentária). Quando escrevemos dados em um array com RAID 1, o desempenho pode ser ligeiramente degradado quando comparado com um único HDD porque ambos HDDs devem escrever uma cópia dos dados (usar duas controladoras com um HDD em cada controladora reduz o impacto do desempenho de escrita). RAID 5 O RAID 5 é a configuração de RAID mais amplamente implantada em muitos data centers e consiste na distribuição de blocos em stripes com paridade de dados. O controlador do RAID gera a paridade quando os dados são escritos. Os dados de paridade gerados são escritos em todos os HDDs no array RAID. Distribuir a paridade desta forma equilibra o stress da leitura e escrita das paridades em todos os HDDs no array RAID, ao invés de colocar uma maior carga de trabalho em apenas um HDD dedicado exclusivamente para paridade.

56 Se um único HDD falhar, leituras subsequentes podem ser calculadas a partir da paridade distribuída de modo que nenhum dado é perdido e dados de escrita continuam a ser processados. Quando um HDD falho é substituído, o controlador RAID reconstrói os dados no novo HDD com base nos dados de paridade espalhados nos HDDs restantes em funcionamento. O RAID 5 requer pelo menos três discos para funcionar. Vantagens Com o RAID 5, geralmente existe um aumento de desempenho na leitura de dados pois todos os HDDs RAID são acessados em paralelo. O desempenho de escrita não é restringido por ter que escrever paridade para um único HDD – o que poderia se tornar um gargalo. Desvantagens Antes de escrever os dados, o controlador do RAID array deve fazer um cálculo de paridade. Se a taxa de escrita para leitura é particularmente alta, isso poderia impactar a transferência de dados do array RAID como um todo, pois o cálculo de paridade consome recursos do controlador RAID. Se uma maior taxa de leitura para escrita é o padrão operacional, esse impacto pode não ser sentido. Se um dos HDDs falhar, haverá uma janela de vulnerabilidade enquanto o HDD falho é trocado e a nova unidade reconstruída. O tempo de reconstrução dependerá de dois fatores principais. O volume de dados a ser restaurado (muitas vezes associado com a capacidade do HDD implantado) e a velocidade na qual o controlador RAID pode recriar os dados de aplicação a partir dos dados de paridade.

57 Por causa do primeiro deles, pode ser importante trabalhar com o seu cliente ou fornecedor para determinar a capacidade dos HDDs que ele quer implantar no array. Maior capacidade de discos irá potencialmente aumentar a janela de vulnerabilidade e, se este é um problema, vários arrays de menor capacidade podem oferecer uma solução. Em segundo lugar, alguns fornecedores oferecem a capacidade de configurar o quanto dos recursos do controlador RAID serão comprometidos na reconstrução de uma unidade de disco. Quanto mais recursos comprometidos, mais rápido o tempo de reconstrução. No entanto, os recursos consumidos do controlador no processo de reconstrução podem ter impacto no desempenho operacional dos HDDs em funcionamento. Isto exige um equilíbrio entre a proteção de dados e o acesso aos dados operacionais – nem sempre é fácil fazer esse equilíbrio! RAID 6 O RAID 6 é uma extensão do RAID 5 adicionando dois blocos de paridade distribuídos por todos os HDDs no array RAID. Existem múltiplas metodologias para a criação de dois blocos de paridade que podem variar de fornecedor para fornecedor. Todas estas são aceitáveis como implementações RAID 6. O RAID 6 fornece a maioria dos atributos do RAID 5, com a exceção de que ele requer um HDD extra. O desempenho de leitura do RAID 5 é bom, porque os dados são distribuídos por todas as unidades e o desempenho de escrita também é bom, porque não há nenhum HDD de paridade designado para se tornar um gargalo - mas o desempenho ainda sofre impactos pelo processo de cálculo de paridade.

58 No entanto, a grande vantagem do RAID 6 sobre o RAID 5 é que dois HDDs podem falhar sem ter perda de dados. Ainda existe uma janela de vulnerabilidade, mas nesse caso requer a falha dois HDDs ao mesmo tempo. Se isso acontecer, então o tempo total de reconstrução para dois HDDs pode demandar uma atenção operacional. Como em todas as configurações RAID, eles podem ser aplicados igualmente tanto para SSDs como para HDDs. Em muitos casos, o RAID baseado em SSD vem pré-configurado como RAID 6, pois alguns estudos mostram que o RAID 5 fornece proteção de dados e correção de erros insuficientes para evitar perda de dados em arrays de SSD, à medida que a mídia envelhece e as taxas de erro aumentam. No entanto, essa é apenas uma avaliação, já que a paridade dupla do RAID 6 requer mais ciclos de gravação do que apenas os dados do aplicativo - consumindo ciclos valiosos e encurtando a vida útil do SSD. Se o custo não é nenhuma consideração, o RAID 1 evitaria o desgaste associado a escrita de paridade - mas mais uma vez é uma avaliação de custo benefício.

59 Capítulo 3 Seção 7 -Cache RAID A memória cache é um conceito usado em todos os sistemas computacionais. Nós usamos caching para armazenar dados que podem ser acessados mais rapidamente do que através do modo operacional convencional, a fim de melhorar o desempenho. As CPUs em servidores foram construídas em cache, os navegadores web têm cache, mas, nesta seção, só vamos considerar como o uso de cache pode melhorar o desempenho dos arrays de armazenamento. Operação A memória cache e memória de buffer são termos que são frequentemente usados como se fossem iguais. No entanto, eles são diferentes na forma como eles são operados. Buffering é um estágio intermediário 'burro' entre dois dispositivos que trocam dados, mantendo-os ou movendo-os para atenuar as lentidões e gargalos em uma transferência de dados. O cache tem alguns atributos em comum com buffering, mas é usado inteligentemente para decidir quais dados ele deve manter, a fim de melhorar o desempenho geral. O cache é normalmente embutido nas controladoras do array de armazenamento e fica entre o servidor e os discos rígidos a fim de aumentar a velocidade que os dados podem ser acessados. O

60 servidor se comunica com o cache como se ele estivesse \"falando\" diretamente com os discos rígidos e não tem conhecimento da existência da memória cache. A implantação mais frequente da memória cache está no array RAID, onde o alto desempenho, alta disponibilidade e alta resiliência são necessários. Isto significa que o cache deve ser pelo menos tão robusto quanto o sistema RAID, caso contrário, o desempenho do cache é neutralizado, comprometendo outros aspectos importantes do sistema RAID. Leitura do Cache Quando os dados são lidos a partir dos discos rígidos, eles são gravados no cache para depois serem transferidos para o servidor. Os dados usados mais recentemente permanecem armazenados em cache e podem ser transferidos rapidamente para o servidor. Quando grandes volumes de dados são transferidos, então o cache pode atuar como buffer no caso da conexão do servidor ter limitações de desempenho. Muitas memórias cache também têm uma capacidade de \"antecipação\". É aqui que a controladora RAID tenta adivinhar a próxima solicitação de leitura do servidor, e grava os dados no cache antes do pedido de leitura realmente chegar. A metodologia para isso acontecer pode ser diferente entre os fabricantes, e até mesmo entre diferentes linhas de produtos de um único fabricante. A eficácia do processo escolhido pode agregar valor ao comparar o desempenho do RAID entre fornecedores e produtos. A desvantagem de usar processos de 'antecipação' ocorre se houver quaisquer outros sistemas de cache entre o sistema RAID e o destino final dos dados no servidor. Se este outro cache também tem esta capacidade de 'antecipar', os dois processos podem entrar em conflito e resultar na redução do desempenho ao invés de melhorá-lo. Gravação do Cache Quando o servidor escreve os dados no array de discos, o cache armazena os dados antes de ser enviado para os discos rígidos. Quando os dados são escritos no cache, o array de discos responde ao servidor, confirmando que os dados foram escritos. Se o cache encher de dados antes de gravá- los nos HDDs, os servidores são avisados para parar de enviar dados. Entretanto, os dados que estão gravados na memória de cache podem ainda não ter sido gravados nos HDDs. Isto significa que esses dados podem estar vulneráveis a falha de energia, até que sejam realmente gravados nos HDDs.

61 O de-staging é a transferência dos dados escritos no cache do sistema de armazenamento ou memória flash não-volátil para os HDDs. Cache Não Volátil No array de discos com cache de escrita não-volátil, o de-stage é realizado em segundo plano de forma assíncrona, enquanto as solicitações de leitura dos servidores são atendidas em primeiro plano. Se o de-staging não puder ser concluído, os dados não escritos permanecerão em cache não volátil, e nenhum dado é comprometido. Cache Volátil Com um cache de memória volátil, no caso de uma falha de energia, o de-staging deve ser realizado antes do array de discos desligar. Portanto, isso dependerá do suporte de energia das UPSs ou das baterias do array de discos. Se o de-staging não puder ser realizado, então os dados não escritos podem ser perdidos. Muitos recursos de alta disponibilidade são incorporados ao array de discos para poder lidar com essas questões. Alta disponibilidade Se tivermos uma falha de energia, existe um risco de perda dos dados que ainda não foram escritos no disco rígido. Estas vulnerabilidades podem ocorrer por causa da perda de energia no array de discos ou por outras atividades suspeitas que podem corromper os dados na memória cache (por exemplo, picos de energia na fonte de alimentação). Se esses eventos acontecessem durante uma operação de leitura, a operação de leitura apenas precisaria ser repetida, no entanto, em uma operação de escrita, o servidor acredita que os dados estão nos discos rígidos e não sabe que essa ação precisa ser repetida. Um array de armazenamento de grande porte utiliza diversas técnicas para proteger os dados que estão no cache. Estas técnicas incluem: bateria de backup para o cache, duas memórias cache espelhadas e detecção/correção de erro incorporado na memória cache do sistema. Energia de Bateria Quando consideramos bateria de backup para o cache, existem duas opções. A primeira é fornecer uma bateria de backup de longa duração, que possa manter o cache vivo até que o problema com o array de discos seja corrigido. A segunda é fornecer energia por tempo suficiente para permitir que os dados do cache sejam transferidos para a memória não volátil. Isto pode ser um HDD, ou uma memória flash não volátil como alternativa. Cache Espelhado Alguns arrays de armazenamento podem ter recursos de alta disponibilidade conhecidos como cache espelhado. O cache espelhado escreve os dados nos dois caches simultaneamente. O cache espelhado protege os dados no caso de falha do próprio cache.

62 Cache e RAID 5 Como vimos anteriormente, o RAID 5 requer a criação de dados de paridade em cada gravação no disco rígido. O cache é muitas vezes usado com o RAID 5 para efetivamente mascarar a sobrecarga associada ao cálculo e escrita dos dados de paridade. O tamanho e a velocidade do cache podem influenciar o desempenho se um grande volume de dados estiver sendo escrito como um único fluxo de dados. Desempenho Ao discutir sobre desempenho do array de discos, o termo cache hit ratio é muitas vezes utilizado para quantificar o quão eficaz é a memória cache. Isto é normalmente referenciado como uma porcentagem, como por exemplo, um hit ratio de 70%. Esta é a porcentagem de solicitações de leitura/escrita fornecidos pelo cache, ou também a porcentagem do número total de solicitações de leitura/escrita. O desempenho de leitura e escrita terá cada um o seu próprio cache hit ratio. Em ambos os casos, um hit ratio alto indica um melhor desempenho. O cache hit ratio é um requisito de desempenho para grandes aplicações de banco de dados, tais como Oracle e SQL.

63 Capítulo 3 Seção 8 - Camadas de Armazenamento O armazenamento de dados em camadas é um método para classificar os dados de uma organização em diferentes tipos de prioridade, e colocá-los em diferentes \"classes\" de armazenamento, onde os dados mais críticos do negócio são armazenados em dispositivos de alto desempenho e os menos críticos são armazenados em dispositivos de baixo custo (por exemplo, onde são menores os requisitos de resiliência, tempo de recuperação, ou velocidade de acesso). O modelo tradicional de camadas de armazenamento começa na camada 1, em seguida, os dados são movidos para baixo na camada 2 e, finalmente, na camada 3, na medida que a idade dos dados e os acessos são reduzidos (vários estudos mostram que o acesso aos dados segue a regra 80/20: os 20% dos dados mais recentes atraem 80% do acesso). Manter os dados antigos em mídias caras e de alto desempenho, sem necessidade, incrementa desnecessariamente o CaPex (custo de capital) em sistemas de armazenamento de alto custo. No entanto, decidir quais dados vão para onde é mais complexo do que parece à primeira vista. Por exemplo, os dados transacionais gerados pelo comércio eletrônico geralmente residem em mídias mais caras e mais rápidas por períodos de tempo significativos.

64 No entanto, nas operações financeiras, os dados de mercado mais recentes são extremamente valiosos, mas esse valor cai rapidamente em minutos, se não segundos (depois disso, os dados são apenas utilizados para a análise de tendências históricas) e pode ser transferido para uma mídia de armazenamento de baixo custo. Consequentemente, temos que considerar não só o valor relativo dos dados de uma organização, mas também a duração do tempo para o qual ela permanece atual para o negócio. À medida que as instituições financeiras comecem a adotar o SSD como armazenamento primário, ou mesmo para se manterem mais competitivas ou para ter mais vantagem no mercado, o diferencial de preços entre as opções de armazenamento aumenta, tornando o modelo de camadas de armazenamento ainda mais atraente comercialmente.

65 Quantas camadas? O modelo original do Gartner tinha três camadas. No entanto, uma nova camada 4 foi adicionada ao modelo original do Gartner para considerar o arquivamento de longo prazo e a manutenção de dados inativos, e em grande parte para atender a requisitos legais e também para análises futuras (um exemplo disto é quando os dados geofísicos obtidos a partir de explosões sísmicas podem ser reanalisados em diferentes minerais em áreas onde os requisitos ecológicos já não permitem que este tipo de dados seja coletado). A camada 0 foi adicionada quando os discos SSD forneciam um tempo de acesso muito mais rápido do que até mesmo um array de discos alto desempenho (anteriormente designado como camada 1). A camada 0 é útil no suporte de aplicações de alto desempenho no mercado financeiro e em outros mercados de negociação altamente voláteis, onde o acesso muito rápido a dados transacionais pode significar a diferença entre ganhar e perder grandes quantidades de dinheiro. A decisão sobre quantas camadas implementar varia de negócio para negócio, com muitas organizações optando por um modelo de duas ou três camadas. Nesta seção, para estar completo, vamos usar um modelo de 5 camadas, tendo em mente que muitas organizações podem operar eficazmente através da fusão de algumas dessas camadas.

66 Camada 0 A camada 0 aplica-se a dados de alto valor e voláteis extremamente sensíveis em termos de tempo que precisam ser capturados, analisados e apresentados na maior velocidade possível. O principal exemplo mais citado é a negociação de moeda, mas na realidade esta não é uma situação encontrada na maioria dos ambientes de negócios. Apenas o sistema de armazenamento com tempos de resposta mais rápidos é bom o suficiente no ambiente de negociação de moedas, onde o preço de uma solução de armazenamento de alto desempenho pode ser compensado por uma única transação. Uma solução típica é o SSD, embora a evolução de tecnologias de HDDs de alto desempenho pode oferecer algumas alternativas em alguns ambientes.

67 Camada 1 A camada 1 é normalmente utilizada nos casos em que os dados transacionais requerem um acesso rápido, seja para apoiar os clientes ou para satisfazer os requisitos de aplicações de alta velocidade. Um exemplo é o varejo on-line, onde mesmo os atrasos relativamente curtos em resposta às ações do cliente podem resultar na perda de vendas, tornando o armazenamento de alto desempenho essencial. Normalmente sistemas de disco de alta velocidade são usados, mas estes tendem a ter um preço mais elevado. O aumento do custo pode ser justificado porque sistemas com desempenho mais lento impactariam diretamente o negócio. No entanto, à medida que os preços dos SSDs estão diminuindo e a disponibilidade está aumentando, eles podem muito bem encontrar o seu lugar em implementações na camada 1.

68 Camada 2 A camada 2 suporta várias aplicações de negócios, desde e-mail até ERP. É usado para armazenar a maioria dos dados ativos de negócios, onde uma pronta resposta não é um requisito, mas é necessário ter um rápido tempo de resposta. Um bom exemplo são alguns sistemas de e-mail que tipicamente geram grandes quantidades de dados. São aceitáveis tempos de resposta ligeiramente maiores do que os necessários para os sistemas transacionais. As implantações de camada 2 tipicamente equilibram custo e desempenho.

69 Camada 3 A camada 3 é normalmente utilizada conforme os dados envelhecem e as solicitações de leitura diminuem. No entanto, esses dados ainda podem ser utilizados para a análise de tendências e para o apoio a complexas tomadas de decisão, como a disponibilização de dados financeiros até o final do exercício do ano fiscal. Da mesma forma, é desejado que alguns e-mails, mesmo que raramente acessados, sejam mantidos em sistemas de fácil acesso por razões de negócio. Estes dados não precisam permanecer nos sistemas mais caros de camada 1 e camada 2 e podem ser migrados para a camada 3. A camada 3 também pode armazenar dados que são utilizados pela empresa para realizar várias análises complexas de dados históricos de negócio. A camada 3 também pode alavancar a tecnologia MAID, já que grande parte dos dados na camada 3 é realmente semiativa. A sigla MAID (Massive Array of Idle Disks) é uma tecnologia de armazenamento na qual apenas os HDDs que estão em uso ativo são energizados. A tecnologia MAID reduz o consumo de energia e prolonga a vida das unidades de disco, mas o tempo para as unidades ligarem reduz os tempos de acesso para os dados.

70 Camada 4 A camada 4 é normalmente utilizada para o armazenamento de longo prazo para dados históricos (arquivamento). Os requisitos de conformidade podem exigir que as empresas tenham de produzir evidências a partir de grandes quantidades de e-mails históricos, às vezes remontando a anos, perante um tribunal. Normalmente, as empresas dependem de fitas para armazenar e recuperar esses dados. Organizar e gerenciar o arquivamento de fitas é um grande desafio, com um grande potencial das fitas serem perdidas, acidentalmente reutilizadas, ou até mesmo deterioradas. Além disso, é importante que as tecnologias para lê-las continuem disponíveis. É provável que a camada 4 contenha quantidades muito grandes de dados, mas não é esperado que os dados estejam imediatamente disponíveis. Os tribunais, por exemplo, dão rotineiramente às organizações prazo específico para buscar todos os documentos necessários. Por esta razão, a fita é de longe o meio físico com melhor custo-benefício para grande parte destes dados. Se os dados antigos forem necessários para responder a uma ação judicial ou para apoiar uma análise interna, os usuários podem tipicamente tolerar o tempo necessário para encontrar e acessar as fitas contendo os arquivos relevantes. Os discos removíveis também podem ser considerados. Entretanto, eles tendem a ser mais caros e passíveis de falha comparados à fita.

71 Hierarchical Storage Management (HSM) O HSM é um conjunto de ferramentas de software que automatizam a migração de dados de uma classe de armazenamento para outra, com base na idade dos dados e na frequência com que são acessados pelos usuários. O sistema HSM monitora a forma como os dados são utilizados e recomenda (tipicamente baseado nas estatísticas de tempo de acesso e idade do dado) quais os dados podem ser movidos com segurança para dispositivos de armazenamento mais lentos e quais devem permanecer em dispositivos mais rápidos. Se o servidor precisar acessar os dados, ele não precisa saber que os dados foram movidos ou onde estão localizados, deixando os processos de acesso a dados inalterados. O HSM consegue isso movendo os dados de volta para dispositivos de armazenamento rápido quando um usuário solicita-os. A maneira pela qual o HSM consegue isso é deixando um pequeno stub HSM (um ponteiro de dados) quando um arquivo é transferido de um dispositivo rápido de armazenamento de dados. Quando o aplicativo do usuário tenta acessar os dados, o stub é utilizado para informar ao aplicativo HSM, e os dados são localizados nos dispositivos de armazenamento mais lentos. Dependendo do produto HSM utilizado, este processo pode ou não ser um processo transparente para o usuário.

72 Migração Automatizada de Dados (ADM) O HSM tem sido utilizado em muitos ambientes por um longo tempo, mas foi ultrapassado pelo ADM. O software ADM automatiza a migração de dados de uma classe de armazenamento para outra com base em políticas definidas pelo usuário, ao contrário de limitações do HSM (idade dos dados e quando foi acessado pela última vez). A ferramenta ADM também possui classificações mais granulares e de diferentes camadas de armazenamento do que a HSM. Em última análise, as soluções HSM e ADM são semelhantes, mas oferecem diferentes níveis de sofisticação nos processos que utilizam.

73 Comparação HSM versus ADM Características que são comuns ao HSM e ADM incluem: – Monitoração de utilização dos dados para avaliar a adequação para um armazenamento rápido ou mais lento; – Migração dos dados de prioridade mais baixa para mídia de armazenamento mais lenta; – Utilização de atualizações automáticas stubs ou ponteiros para localizar os dados migrados. Características exclusivas da ADM incluem: – Ferramentas de descoberta e classificação, que permitem aos administradores categorizar e localizar os dados; – Definição de políticas que determinam o tipo e o detalhe dos critérios utilizados para priorizar os dados; – Número e tipo de camadas de armazenamento disponíveis para migração. Os softwares HSM e ADM também se diferem nas mídias de arquivamento suportadas. O HSM suporta a migração para a fita, essa é uma das principais razões pelo qual o HSM deve ser implementado, arquivando dados para fita.

74 Capítulo 3 Seção 9 - Opções de Implantação do SSD Precisamos pensar como podemos usar melhor o acesso aos dados na maior velocidade que os SSDs podem entregar. Compreender o que os SSDs têm para oferecer em diferentes configurações de implantação pode evitar escolhas erradas que podem significar despesas desnecessárias e interrupção em um data center. A primeira decisão que você enfrenta é se deve implantar o SSD em um servidor ou como parte de um array de armazenamento externo. Muitas vezes se trata de uma escolha entre eles, tendo as suas próprias vantagens e desvantagens. Aqui vamos cobrir alguns destes. Utilizando os SSDs como Armazenamento Primário Baseado em Servidores Primeiro, considere o caso em que o SSD do servidor será utilizado como um volume de armazenamento primário. Em tais configurações, o SSD detém uma cópia local e talvez a única cópia dos dados. Então, vamos olhar para algumas das vantagens e desvantagens desta abordagem.

75 Vantagens Colocar SSD no servidor move os dados para mais próximo do processador, reduzindo os tempos de acesso aos dados, porque as latências da rede SAN e seus protocolos são evitados. Por exemplo, uma placa de SSD utilizando o barramento PCIe do servidor fornece dados a velocidades de 10 a 20 microssegundos, evitando a sobrecarga de conexão e protocolo necessárias para se conectar ao armazenamento externo. Os SSDs internos do servidor, às vezes, podem oferecer uma solução relativamente rentável, quando comparado com um array de armazenamento externo, mas os SSDs internos normalmente não suportam recursos de alta disponibilidade que são encontrados nos arrays de discos, tais como RAID, snapshots, etc. Se estas características não forem necessárias, esta abordagem pode ser financeiramente interessante. As implementações de SSD nos servidores podem ser usadas para direcionar o desempenho do SSD para aplicações especificas. Normalmente, apenas um número limitado de aplicações provavelmente exigirá o nível de desempenho de um SSD. Em um ambiente de nuvem, vincular o desempenho SSD a servidores ou aplicações individuais permite um modelo de charge-back, onde os usuários de aplicações que precisam do maior desempenho do SSD podem ser combinados com um servidor ou aplicação específicos. Além disso, em alguns data centers virtualizados e ambientes de nuvem corporativa, aumenta-se o desempenho do I/O simplesmente adicionando mais servidores à sua rede. Cada servidor recebe seu próprio cache de SSD e existe uma redução nos potenciais gargalos de um sistema de armazenamento. De uma perspectiva de vendas, se você encontrar data centers implantando servidores com SSD, isso pode indicar o início de uma evolução com SSDs. Isso cria um potencial para futuras vendas, pois os novos requisitos só podem ser atendidos pelos modelos de implantação SSD mais sofisticados tecnologicamente. Um outro potencial indicador de vendas é onde os usuários implantam o SSD no servidor, como uma maneira de transferir os dados existentes do array de armazenamento, a fim de prolongar a vida útil da infraestrutura de armazenamento que já está em vigor. Isto também pode ser um indicador de uma questão mais ampla de armazenamento de dados, que se devidamente tratada no momento certo, pode levar a futuras vendas.

76 Desvantagens Existem duas grandes desvantagens de usar um SSD no servidor, ambas têm a ver com a mudança de um modelo de armazenamento centralizado (e compartilhado) para um modelo descentralizado (servidor local) na qual a cópia de dados primária reside em um único servidor local. Estas são tipicamente as mesmas questões encontradas pelo modelo de conexão direta de armazenamento - DAS. Neste cenário, o maior desafio é apresentado pela complexidade da gestão e proteção de dados em um modelo descentralizado. A maioria das organizações já tem sistemas de armazenamento bem construídos e centralizados que foram configurados para garantir a segurança e confiabilidade dos seus dados, minimizando a complexidade operacional e otimizando os custos. Neste modelo descentralizado, o SSD do servidor torna-se um único ponto de falha. Se o SSD falhar, os dados são perdidos. Isso requer a criação de novos sistemas de backup e outros sistemas de proteção de dados com o custo de implementação de alta disponibilidade tornando esta solução cada vez mais cara. Quando o SSD do servidor é usado como armazenamento local, é difícil compartilhar os dados entre os servidores. Para aplicações em que o compartilhamento de dados não é necessário, ou que o compartilhamento é feito em um nível mais elevado pelo software do sistema, isso pode não ser importante. Estas desvantagens de utilizar SSD do servidor podem não se aplicar em todos os casos. Por exemplo, as aplicações que estão em cluster podem não exigir o compartilhamento de dados. No entanto, para a maioria das aplicações, usar o SSD do servidor como armazenamento local não é uma opção eficaz. Nestes casos, uma solução de camadas de armazenamento ou cache pode precisar ser utilizada em conjunto com o SSD do servidor para resolver esses desafios.

77 Utilizando o SSD como um Array de Armazenamento Externo Alguns data centers já estão se movendo para a implantação do SSD como um array de armazenamento centralizado. Isto tem os seus próprios benefícios e desvantagens. Vantagens Quando um array de armazenamento equipado exclusivamente com unidades SSD é utilizado, o cliente obtém os benefícios do armazenamento centralizado. As tarefas de proteção de dados/gerenciamento de dados são mais fáceis de executar. Com um storage externo, os dados podem ser compartilhados entre as aplicações mais facilmente. Além disso, o alto desempenho do SSD pode estar disponível para todos os servidores conectados no array de armazenamento.

78 Desvantagens A maior questão para a implantação de SSD como um armazenamento primário é o custo. Atualmente com o elevado custo de um storage SSD, poucos usuários podem se dar ao luxo de usar SSD para todos os seus dados, tornando o modelo de array de armazenamento centralizado com SSDs comercialmente pouco atraente para muitos ambientes. Se você está considerando um array de armazenamento com SSD como parte de uma solução de armazenamento em rede, o desempenho da rede também deve ser levado em consideração. A latência de uma rede IP pode prejudicar a vantagem de ter um array de armazenamento SSD, e até mesmo o alto desempenho do Fibre Channel pode criar um gargalo de rede se o array de armazenamento for drasticamente utilizado. No entanto, quando o NVMe* tornar-se comum nas redes de armazenamento de dados Fibre Channel*, entregando tempos de acesso muito mais rápidos a partir de um array centralizado com armazenamento SSD, esta se torna uma alternativa viável para os SSDs conectados localmente.

79 Usando o SSD como uma Camada de Armazenamento Para muitas organizações, os SSDs são muito caros em comparação com os discos rígidos para ser usado como armazenamento local para todas as aplicações. Como resultado, soluções híbridas que misturam SSD com discos rígidos evoluíram. Há duas classes de solução para isto - Tiering e Caching. Em uma solução com camadas de armazenamento, o SSD é utilizado na camada mais alta, enquanto o disco rígido encontra-se em uma camada inferior. Em um sistema de armazenamento em camadas, o SSD pode ser um array de armazenamento externo, mas estes também podem incluir um componente SSD baseado em servidor. Em um modelo de armazenamento em camadas, existe uma cópia dos dados primários, e essa cópia reside no elemento de armazenamento, SSD ou HDD, ao qual foi atribuído. Os dados são transferidos do HDD para o SSD e vice-versa, à medida que a prioridade de diferentes conjuntos de dados muda. As estratégias de proteção de dados precisam ser adaptadas para atender essa demanda. Vantagens O armazenamento em camadas equilibra o alto desempenho/alto custo do SSD e a alta capacidade/menor custo do HDD. Os dados acessados frequentemente são retidos em unidades SSDs de alto desempenho e os dados acessados com menos frequência são migrados para HDDs.

80 Desvantagens Determinar quais os dados a serem colocados no SSD e, quando os colocar, é o maio desafio. Isso normalmente requer a ação do usuário para mover os dados para o SSD e a aplicação que usa esses dados deve então ser informada quanto à nova localização dos dados. Às vezes, a escolha é óbvia. Por exemplo, índices e tabelas de banco de dados são exemplos de elementos de dados que podem ter prioridade alta suficiente para garantir que estes residam em discos SSD. No entanto, em situações atípicas, os dados podem exigir monitoração contínua e migração de dados à medida que as necessidades e prioridades da aplicação mudam. Por exemplo, os relatórios financeiros podem colocar grandes exigências em algumas aplicações e dados no final do mês, mas podem não exigir o nível de desempenho de um SSD nos demais dias do mês. Alguns fabricantes de equipamentos de armazenamento suportam a movimentação de dados entre camadas de diferentes tipos de discos, de forma automatizada. Estas soluções movem automaticamente seções de dados para os discos SSD à medida que elas se tornam mais acessadas e, em seguida, removem as seções que possuem uma baixa taxa de acessos. No entanto, mesmo esta abordagem tem os seus desafios. Por exemplo, o sistema de armazenamento deve suportar movimentação automatizada de dados entre camadas que pode exigir uma atualização deste sistema ou mesmo um novo sistema de armazenamento. Além disso, o volume de dados movidos pode ser grande, resultando em uma carga elevada de escrita na camada de discos SSD, causando desgaste acelerado e, em última análise, falha destes discos. Esses movimentos de dados também colocam uma carga na controladora de armazenamento, impactando o desempenho para outras atividades. Um outro desafio é que as decisões automatizadas usadas para promover dados são baseadas no histórico de acesso destes dados – no entanto, os dados que antes eram prioritários não são necessariamente prioritários novamente. Quando a camada SSD detém a cópia primária de dados, ele também deve ser protegido da mesma forma que os arrays tradicionais de armazenamento com HDD são, de forma que não representem um ponto único de falha. Por exemplo, RAID, backup em tempo real, snapshots, etc. todos estes processos adicionam uma sobrecarga computacional que impacta o desempenho e requer capacidade extra dos SSDs. O aumento da capacidade torna ainda mais custoso as já caras mídias de armazenamento.

81 Usando os discos SSD como Cache O caching é uma técnica onde uma controladora usa discos SSD como uma extensão da memória cache interna, antes de acessar o array de discos HDD para escrita ou leitura. Como no armazenamento multicamada, a controladora do cache identifica os dados prioritários e armazena-os nos discos SSD. No entanto, uma diferença significativa entre tiering e caching é que o caching detém uma cópia secundária dos dados ao invés da cópia primária.

82 Vantagens A falha do cache raramente produz uma perda de dados, evitando assim o custo e a complexidade da implementação da proteção de dados para discos SSD. A proteção e a gestão de dados permanecem inalteradas - reduzindo a complexidade da implementação de uma solução de proteção específica para os discos SSD. Um cache SSD funciona de forma combinada com o armazenamento de discos existentes que, a partir da perspectiva do cliente, pode atrasar ou evitar a necessidade de aumento ou atualizações na quantidade de HDDs na unidade de armazenamento. Um cache SSD também pode ser mais simples de operar do que uma solução de armazenamento em camadas, sem a necessidade de um administrador para decidir que dados devem ser colocados nele. O cache SSD também é mais adequado do que o armazenamento em camadas para acelerar o acesso de dados que são priorizados em tempo real, uma vez que os dados mais acessados provavelmente estarão em cache, enquanto, em um sistema de armazenamento em camadas, não há garantia que os dados priorizados estarão na camada SSD. Desvantagens No entanto, há desvantagens em implantar um cache SSD, sendo uma delas a vulnerabilidade de dados de um cache de escrita em um SSD. Se os dados de escrita são mantidos em cache dos servidores e ainda não estão gravados nos discos, os dados em cache são perdidos se o hardware de cache falhar. Se o hardware de cache é confiável e persistente, a vulnerabilidade é pequena. Isto pode ser melhorado através da implementação de um cache write-through, onde os dados de escrita têm prioridade sobre os dados de leitura até que os dados de escrita sejam descarregados para os discos. Uma outra consideração é a carga de escrita inerente a algumas implementações de cache. Em sistemas de cache típicos, o cache é implantado com o SSD na frente do disco onde a maioria ou todos os dados passam através do cache antes que ele seja escrito no disco. Isto pode colocar uma pesada carga de escrita sobre o SSD, sujeitando-os a um desgaste excessivo e reduzindo sua vida útil. Se o array de armazenamento HDD tem seu próprio cache, há também a possibilidade potencial que as regras de cache SSD possam colidir com as do cache interno da unidade de armazenamento. Este é especialmente o caso em que o cache da unidade de armazenamento está lendo dados usando seu próprio algoritmo de antecipação, enquanto o SSD tem um algoritmo de antecipação diferente. Casos de Uso Cada uma das implementações de SSD que temos coberto aqui tem algumas características que terão um maior apelo para alguns casos específicos. Alguns exemplos estão listados abaixo. – Nos serviços financeiros que utilizam sistemas de negociação com alta frequência de transações, a latência é importante. Em termos reais, microssegundos de latência de leitura podem significar milhões de dólares. Estes sistemas normalmente usam placas

83 PCIe com SSD, instaladas em um servidor como armazenamento primário de alta velocidade; – Ambientes com computação intensiva como aplicações científicas usam SSDs de alto desempenho como armazenamento primário para acelerar cálculos complexos pela redução tempo de acesso aos dados da unidade de armazenamento; – Usar SSD para cache pode gerar um grande benefício para bases de dados relacionais. Dados frequentemente acessados, como índices e metadados, podem ser colocados no cache SSD, enquanto os dados do usuário podem ser escritos e lidos diretamente para o HDD. Isso pode acelerar as operações de bancos de dados, tais como consultas, ordenações e cálculos; – Em muitas organizações, servidores são inicializados (carregando o sistema operacional na memória principal do servidor) a partir do armazenamento centralizado (tipicamente em rede), a fim de garantir uma configuração comum entre os servidores e manter consistência quando se trata de atualizações; – Com arrays de armazenamento centralizado com HDD, se muitos servidores iniciassem o processo de boot ao mesmo tempo (todos acessando o mesmo array ao mesmo tempo), o desempenho poderia ser impactado. Algumas organizações mitigam isso tendo discos de boot locais em servidores, mas isso aumenta o custo operacional fazendo com que a consistência entre servidores torne-se um problema. Os arrays de armazenamento centralizado com SSD oferecem uma solução que, apesar de carregarem um alto CaPex (custo de capital), oferecem uma economia de OpEx (custo de operação) contínua. Sumário Cada método de implantação SSD oferece vantagens e desvantagens, dependendo do ambiente de aplicação e operação. A implantação do SSD como armazenamento primário oferece a implementação e gestão mais simples, mas é disruptiva e cara. Os SSDs podem ser muitas vezes mais caros do que soluções que usam discos mecânicos, e mudar o armazenamento primário é um processo disruptivo. O SSD como uma camada de armazenamento pode ser uma solução econômica, mas é complexa para implantar e operar. Um cache SSD é relativamente barato, não-disruptivo, e simples de operar.Caches, no entanto, podem aumentar a vulnerabilidade dos dados e aumentar o desgaste SSD. * Abordado em mais detalhes em outra parte dessa publicação

84 Capítulo 3 Seção 10 - Técnicas de Proteção de Dados Baseadas em Discos Quando consideramos a proteção de dados no contexto do armazenamento de dados, há muitas ameaças e vulnerabilidades que temos de ter em conta. Por exemplo, avarias de equipamentos, falhas de serviços essenciais (eletricidade), corrupção de dados, quebra de segurança, etc. O método mais familiar de proteger os dados armazenados é fazer backup para a fita (que vamos cobrir mais tarde). Uma metodologia alternativa é copiar dados de um armazenamento primário (ativo) baseado em disco para um conjunto secundário (backup) de disco. Vamos cobrir algumas destas técnicas aqui. Visão Geral Para avaliar qual o método que devemos utilizar, é necessário começar por abordar algumas terminologias e conceitos. Os mais importantes são o objetivo de tempo de recuperação (RTO) e o objetivo de ponto de recuperação (RPO). Ambos nos permitem definir critérios mensuráveis para avaliar as soluções. O Objetivo de Tempo de Recuperação (RTO) descreve o tempo dentro da qual as funções de negócios ou aplicações devem ser restauradas (inclui tempo antes do incidente que causou o problema e o tempo necessário para executar o Restore de dados). As perguntas que precisam ser feitas para definir isso são: • Qual o tempo máximo tolerável para uma interrupção? • Quando é que as operações normais de negócios devem recomeçar depois de um incidente?

85 O Objetivo de Ponto de Recuperação (RPO) descreve o ponto no tempo para o qual os dados devem ser restaurados para permitir que o negócio retome com sucesso a operação (muitas vezes considerado como sendo o tempo entre o último backup e quando a interrupção ocorreu). As perguntas que precisam ser respondidas neste caso são: • Quanta perda de dados é tolerável? • Qual é o custo e o impacto do negócio ao perder esses dados? Ao considerar o RPO, um fator é o custo de alguma perda de dados. Uma empresa pode preferir ter a capacidade de realizar rapidamente um reinício de um banco de dados em vez da opção de nenhuma perda de dados. Para outras empresas, como instituições financeiras, a perda de dados não é uma opção. Quaisquer transações perdidas desde o último ponto de backup devem ser reintroduzidas na base de dados recuperada, se necessário manualmente. As instituições financeiras mantêm vários registros de cada transação para que possam ter a certeza de que podem reconciliar cada conta. Cada uma destas questões exigirá soluções diferentes. Opções Em uma organização, nem todos os dados são críticos para o funcionamento eficaz do negócio e, dependendo da criticidade dos dados, diferentes opções de armazenamento de dados podem ser implantadas. Cada uma destas terá um nível diferente de desempenho e preço associado. Por exemplo, uma solução de armazenamento de dados para um negócio de comércio eletrônico, onde a falta de uma única transação pode ser grave, é muito mais importante do que uma fila de impressão no servidor de impressão local. Decidir quais dados são de alta prioridade e quais têm menor prioridade pode ser um processo dispendioso e, por isso, muitas organizações escolhem a opção de mover todos os dados o tempo todo. A decisão representa a troca do custo do processo de avaliação dos dados pelo custo da utilização de dispositivos de armazenamento de dados de alto desempenho para todos os dados.

86 A ilustração da página anterior mostra as técnicas disponíveis para a proteção de dados. A maioria das técnicas de proteção de dados baseada em disco tem como essência a tomada de uma cópia de \"ponto no tempo\" dos dados ativos e fazer uma cópia para um subsistema de armazenamento de disco secundário. Uma cópia de ponto no tempo significa, como o nome implica, na captura e disponibilização de dados em um determinado momento no tempo. Cópias de Ponto no Tempo Uma cópia de ponto no tempo é uma cópia de dados utilizável, em um ponto específico no tempo. Existem 2 tipos de cópias de ponto no tempo – snapshots e espelhamentos.

87 Snapshots As técnicas de snapshots estão baseadas na parada momentânea de todas as ações de leitura e escrita no sistema de disco primário (neste estado, o sistema de disco é dito estar quiescente ou latente). Há um ligeiro atraso para permitir que quaisquer dados de escrita que não possam ter sido escritos nos discos ainda (por exemplo, ainda em memória cache em um sistema RAID) sejam escritos. Uma vez que isto esteja completo, os dados na unidade de armazenamento são 'congelados'. Neste momento, é tirado o snapshot. A palavra snapshot foi retirada da fotografia, onde você pode tirar uma imagem instantânea de algo, mas o item que está sendo fotografado permanece inalterado. Isto é efetivamente o que fazemos em termos de armazenamento de dados, apenas neste caso o 'snapshot' é dos metadados. Os metadados são informações de alto nível sobre os dados no disco – por exemplo, o nome do arquivo, onde ele está localizado no disco etc. O snapshot não grava os dados reais. Nenhum dado é movido e tudo permanece no sistema de disco original. Uma vez que o snapshot foi feito, o sistema de disco é liberado novamente para uso pelos servidores de aplicação – no entanto, os dados permanecem 'congelados' e o servidor só pode ler dados a partir desta unidade de armazenamento.

88 Então, o que fazemos sobre escrever dados? É aqui que entra a técnica de snapshots. Cada vez que o servidor escreve, a aplicação de snapshot (que opera na unidade de armazenamento) redireciona os dados de escrita para outra área de armazenamento de disco. Ao mesmo tempo, é colocado um ponteiro na unidade de armazenamento para que novos pedidos de leitura sejam redirecionados para a nova área de armazenamento de dados. Ao fazer isso, congelamos o disco original em um 'ponto no tempo' para que possamos sempre 'reverter', se precisarmos recuperar dados do passado. Isto significa que teremos apenas o custo de copiar ou replicar dados que mudaram desde a última cópia de ponto no tempo, não todos os dados ativos (como seria o caso em backups completos). Snapshots adicionais podem ser tomados e aplicados posteriormente no tempo. Em cada snapshot, os dados de escrita (alterados), que foram acumulados até esse ponto, são congelados e uma nova área de armazenamento de dados é alocada para os dados alterados subsequentes. Este processo pode ser repetido várias vezes (o número exato depende da implementação do fornecedor). Quando o máximo é alcançado, os dados alterados mantidos pelo ponto mais antigo do tempo são integrados no armazenamento original – e isso se torna o ponto mais antigo em que os dados perdidos podem ser recuperados. A frequência com que um snapshot é tirado depende das políticas definidas pelo usuário. Por exemplo, para uma empresa de serviços que gera contas diariamente, pode ser suficiente tomar um snapshot à meia-noite, enquanto, para uma empresa de serviços financeiros, pode ser necessário tomar um snapshot a cada dois minutos, para assegurar que o histórico de transações seja mantido. Esta técnica baseia-se nos dados originais (primários) que permanecem disponíveis e não há proteção contra falha de disco e de volume primário, porque isso depende de acessar a unidade lógica original para os dados originais.

89 Espelhamento Para entender como funciona a técnica de quebra de espelhamento, comece por pensar na configuração padrão de espelhamento de dois discos em uma única unidade de armazenamento que são cópias completas um do outro (Por exemplo, RAID 1- coberto na seção RAID). Se nós adicionarmos um terceiro disco ao array que nós sincronizamos com os dois primeiros discos espelhados, nós teríamos uma cópia completa de todos os dados atuais no terceiro disco também. Como todos os discos espelhados estão no mesmo subsistema de disco, os dados escritos do servidor vão para todos os três discos simultaneamente.

90 Para fazer uma quebra de espelhamento, o array de disco é momentaneamente parado (da mesma forma que os snapshots são) e a terceira unidade é desconectada de quaisquer operações de gravação de dados adicionais de modo que os dados nessa unidade são efetivamente \"congelados\" em um ponto no tempo. Os dois discos restantes são então liberados para continuar a operar como um par espelhado, garantindo tolerância a falha do sistema de disco e proteção de dados. O disco, que é separado, é tipicamente referido como um volume de continuidade de negócios (BCV) ou um clone. A técnica de quebra de espelhamento pode ser usada para fazer uma cópia rápida de um banco de dados grande para outro servidor ou para fazer backup do BCV para fita. É claro que o BCV fica desatualizado assim que os dados originais mudam. Assim, uma vez que você já tenha usado a terceira unidade (a da quebra de espelhamento) para motivo que for, então ele pode ser devolvido à configuração original de três unidades espelhadas.

91 No entanto, antes que ele possa ser devolvido ao estado operacional completo, o BCV terá que ser sincronizado novamente com o par original de discos espelhados. Obviamente, assim que a sincronização está em andamento, a unidade BCV não pode mais ser usada para fazer backup ou restaurar dados A sincronização demora muito mais do que a divisão. O tempo necessário para a sincronização depende da tecnologia do fornecedor de armazenamento e da quantidade de dados envolvidos, mas pode levar várias horas. Quantas vezes um backup de quebra de espelhamento pode ser implementado será ditado por quanto tempo o processo de ressincronização leva. Ao longo desta discussão sobre cópias de ponto no tempo, sempre nos referimos a discos. É importante lembrar que estes são conceitos e que, onde o termo disco é usado, ele poderia igualmente se aplicar a discos individuais, arrays de armazenamento compostos de múltiplos HDDs ou SSDs.

92 Capítulo 3 Seção 11 - Técnicas de Desduplicação Baseadas em Disco A desduplicação de dados é uma técnica usada para reduzir os requisitos de armazenamento, removendo dados redundantes ou duplicados e retendo apenas uma cópia única dos dados. Dados redundantes ou duplicados são substituídos por um ponteiro para esta cópia única dos dados. O conceito de usar um ponteiro é aquele que usamos na vida cotidiana – talvez sem perceber. Se virmos um site interessante, vídeo ou documento on-line, e acharmos que isso interessaria a um amigo ou colega, não baixamos a coisa toda e a enviamos – apenas enviamos a URL, que é efetivamente um ponteiro. Desta forma, há apenas uma cópia única dos dados reais, mas várias pessoas podem acessá-lo como se fosse sua própria cópia pessoal. A desduplicação usa este mesmo conceito de uma forma mais complexa e automatizada. A desduplicação pode ser aplicada aos dados no armazenamento primário, armazenamento de backup, armazenamento em nuvem e para a replicação de dados, tais como as transferências LAN e WAN. No entanto, como ele pode criar uma sobrecarga no processamento de acesso de dados, ele é, quando muito, raramente encontrado no armazenamento primário, pois poderia afetar o desempenho. Os benefícios da utilização da desduplicação incluem: – Redução da capacidade de disco necessária; – Melhora na eficiência da transferência de dados através das redes; – Redução da janela de backup (quando usado com o backup); – RTO e RPO melhorados; – Custo reduzido. Por exemplo, vamos considerar a situação em que o CEO de uma grande empresa decide enviar uma mensagem de e-mail para todos os 30 000 funcionários para que eles saibam sobre uma grande mudança na política da empresa.

93 Anexado a este e-mail, há uma apresentação PowerPoint que o CEO acaba de dar aos acionistas fazendo o e-mail possuir 20 MB de tamanho. Normalmente, os funcionários irão salvar o e-mail e o anexo, o que significa que em toda a organização, 600 GB de novos dados estão sendo armazenados, dos quais 99,6% são constituídos por duplicidades. Estes dados são suscetíveis de ser protegidos de alguma forma contra a perda de dados (por exemplo, uma implantação RAID) que adiciona um requisito de armazenamento extra e, em seguida, ele terá o backup feito consumindo ainda mais capacidade de armazenamento. Com a desduplicação de dados, apenas uma instância do anexo é realmente armazenada. Cada instância subsequente é apenas referenciada de volta para a única cópia salva, reduzindo a demanda de armazenamento e largura de banda para apenas 20 MB. Este exemplo pode parecer exagerado, mas é baseado em uma situação da vida real e mostra como facilmente a capacidade de armazenamento de dados pode ser consumida se nenhuma desduplicação é implantada. Tipos de Desduplicação A desduplicação de dados geralmente pode operar no nível de arquivo, bloco ou byte. Teoricamente, quanto mais granular (nível mais baixo), mais eficaz será a desduplicação. Na prática, todos os três níveis têm suas próprias características.

94 Desduplicação de Arquivos Com esta técnica, o conteúdo do arquivo é colocado através de um processo matemático (conhecido como um algoritmo de hash) e o produto final é um identificador exclusivo (como uma impressão digital), que é anexado ao arquivo. Se exatamente o mesmo arquivo existir em algum outro lugar no sistema, o processo matemático irá produzir exatamente o mesmo identificador – indicando um arquivo duplicado que pode ser feito em uma única instância. Os arquivos redundantes são removidos e substituídos por ponteiros indicando onde a cópia única está localizada. Qualquer tentativa de acessar um dos arquivos removidos será redirecionado para a cópia restante do arquivo. Usando esta abordagem, cada vez que um erro ortográfico é corrigido, ou pontuação é adicionada a um documento, um novo identificador será criado e ambas as versões do documento armazenadas. O resultado é que, onde os arquivos estão constantemente mudando, a economia em capacidade de armazenamento que pode ser alcançado com esta técnica é mínima. Então, por que é que alguém o usa? A resposta é: para arquivamento. Quando um arquivo é arquivado, normalmente é para armazenamento de longo prazo e é provável que apenas seja referenciado em vez de alterado. Esta técnica também é uma forma de garantir que os registros arquivados não são adulterados, uma vez que qualquer alteração irá produzir um novo identificador e será visto como um arquivo alterado. Desduplicação de Blocos A desduplicação no nível de blocos divide os dados em blocos. O comprimento destes blocos dependerá de como o processo é configurado. Estes podem ter comprimento fixo (cada bloco é do mesmo tamanho) ou comprimento variável (sem tamanho fixo). Como acontece com a desduplicação de arquivo, cada bloco é submetido ao processo matemático que produz um identificador único. Se o identificador já existir, os dados são considerados duplicados e não são armazenados. Se o identificador não existir, então os dados são armazenados e a lista de identificadores existentes é atualizada.

95 Blocos de Comprimento Fixos Com esta técnica, os tamanhos dos blocos são fixos (por exemplo 4 KB, 8 KB etc.) e isso nunca muda. O processo matemático sempre usa este tamanho de bloco fixo para criar o identificador único para cada bloco. Em um fluxo de dados, cada bloco de comprimento fixo será processado na sua vez com o processo matemático, sempre avançando exatamente pelo mesmo tamanho, tomando o próximo bloco e repetindo o processo. Se qualquer identificador que é calculado for considerado uma duplicidade, esse bloco de dados não é armazenado. A vantagem de usar um tamanho fixo em vez de um bloco variável é que ele é rápido e simples e requer muito menos poder de processamento. Uma desvantagem de ter tamanhos de bloco fixo é que, quando os dados dentro de um arquivo existente são deslocados, todos os blocos subsequentes no arquivo podem mudar, dando um identificador diferente. Se estes novos identificadores são únicos, os dados serão reescritos, mesmo que a maior parte do arquivo não tenha mudado. Isto pode causar excesso de capacidade de armazenamento a ser consumido.

96 Blocos de Comprimento Variável Esta técnica opera da mesma forma que blocos fixos, quebrando os dados em blocos, mas desta vez com tamanhos de blocos variáveis. Este tamanho de bloco muda dinamicamente durante todo o processo de desduplicação. Cada bloco terá o seu próprio identificador único da mesma forma que os tamanhos fixos dos blocos. A vantagem de usar tamanhos de bloco variáveis é que ele requer menos capacidade de armazenamento de disco, pois ele é melhor em lidar com pequenas mudanças em um arquivo onde novos dados são inseridos (por exemplo, atualizar uma apresentação PowerPoint com um novo slide). A desvantagem é que consome mais poder computacional porque todo o arquivo deve ser digitalizado, um byte de cada vez, para identificar onde estão os limites do bloco. Enquanto, a desduplicação de bloco variável reduz os requisitos de armazenamento de disco, ele também tem o potencial de reduzir drasticamente os requisitos de largura de banda da rede para conexões de longa distância e ao ar livre, uma vez que apenas dados desduplicados são enviados. Isto é particularmente importante quando os dados devem ser replicados entre os sites, bem como mover os dados de e para a ‘nuvem’ (por exemplo, serviços de backup da ‘nuvem’). Esta eficiência de rede minimiza o tráfego de rede e, como resultado, os custos.

97 Desduplicação de Byte A desduplicação no nível de byte é um processo completamente diferente dos níveis de arquivo ou bloco. A razão para isso é óbvia quando consideramos que, se tivéssemos que criar um ponteiro para cada byte, os ponteiros ocupariam mais espaço em disco do que o próprio arquivo original. Além disso, existem apenas 256 combinações possíveis de dados em um byte (8 bits) e estas iriam acontecer e se repetir muitas vezes em quase todos os arquivos (ou objetos) que estão armazenados. Então, como contornamos isso? Bem, a resposta é que a desduplicação em nível de byte precisa levar em conta o seu conteúdo. Levar em conta o conteúdo significa que o processo de desduplicação compreende e entende muitas informações sobre os dados que estão sendo armazenados. Isto é trabalhado antes que o processo de desduplicação seja realizado. Por entender o layout de arquivos em específico (ou objetos), decisões inteligentes são tomadas sobre qual a melhor forma de desduplicar o mesmo. Por exemplo, os tipos de arquivos que poderiam ser agrupados incluem: 1. Arquivos Microsoft Office - PowerPoint, Word e Excel 2. Imagens e vídeos - JPEG, MPEG, TIFF, GIF e PNG 3. Arquivos não estruturados - e-mail, HTML e PDF Então, usando o conhecimento do conteúdo dos dados, esta técnica encontra áreas que são similares e armazena apenas os bytes alterados entre os arquivos (ou objetos). Neste momento, um exemplo pode ajudar a entender melhor, então vamos considerar uma fotografia que foi armazenada (por exemplo, um arquivo JPG).

98 Se a fotografia for aberta no Photoshop e uma pequena correção for feita (alguns pixels), aparentemente trata-se de um novo arquivo – entretanto mais de 99% dos dados originais estão preservados. Se a imagem tiver sido usada anteriormente em documentos Word ou apresentações PowerPoint, ela ainda estaria armazenada como uma imagem separada, pois tanto o Word quanto o PowerPoint armazenam em formatos (compressões) diferentes. No entanto, ao usar a capacidade de conhecimento do conteúdo, todas essas imagens podem estar ligadas a um arquivo primário e as pequenas alterações feitas no Photoshop sendo armazenadas como alterações de byte. Isto é a desduplicação de byte. Onde desduplicar? A desduplicação seria uma boa opção a ser considerada para os data centers? Isso pode não parecer importante, mas é uma decisão fundamental quando se aborda uma implementação de desduplicação. Há que se considerar que a desduplicação foi originalmente projetada como uma forma de redução do tempo das janelas de backup. Isso continua sendo o caso hoje, com o backup sendo a principal implantação da desduplicação. A razão para isso é clara – a desduplicação sobrecarrega o processamento na transferência dos dados, de e para os sistemas de armazenamento, sendo que a maioria das organizações querem que seus dados primários (ativos) estejam disponíveis o mais rápido possível, por isso não estão dispostos a sacrificar o desempenho das aplicações para poupar capacidade de armazenamento. A desduplicação é uma boa técnica para backup, uma vez que os dados de backup normalmente contêm uma grande quantidade de dados redundantes ao longo do tempo. A desduplicação também se tornou uma técnica fundamental para nuvem, que oferece uma proteção simples e de baixo custo para a recuperação de desastres ocorridos em sites primários (Backup as a Service).

99 Desduplicação Baseada em Servidores (na Origem) Algumas implementações de desduplicação para backup instalam um ‘agente’ em cada servidor de onde será realizado o backup. Isto dilui a carga de processamento da desduplicação em todos os servidores envolvidos – mas crucialmente deve interagir corretamente e de forma eficaz com todos os softwares de backup que se encontram funcionais nos servidores. A vantagem desta implementação de desduplicação na origem é que o processo é concluído antes que o dado seja enviado para o dispositivo de armazenamento, reduzindo as transferências de dados entre a origem e o local de armazenamento. O lado negativo é que, como em qualquer estratégia baseada na instalação de agentes do lado cliente, os mesmos deverão se manter compatíveis com os softwares do servidor em questão. Isto significa que qualquer atualização de software ou alteração em qualquer servidor cria um risco potencial de incompatibilidade, sobrecarregando as atividades de gerenciamento atribuídas aos administradores dos servidores.


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook