Práticas recomendadas para execução do SQL Server no EMC XtremIO RESUMO Este white paper explica as características gerais de execução de SQL Server no array de armazenamento totalmente flash corporativo da EMC, XtremIO. Ele revela estudos nas áreas de desempenho, eficiência de armazenamento, implementação, planejamento de capacidade e gerenciamento do ciclo de vida de aplicativos do SQL Server. Este documento também fornece orientação geral sobre as considerações e as práticas recomendadas de implementação. Outubro de 2015 WHITE PAPER DA EMC Para saber mais sobre como os produtos, serviços e soluções da EMC ajudam a resolver seus desafios de negócios e de TI, entre em contato com seu representante local ou revendedor autorizado, acesse nosso site brazil.emc.com ou explore e compare produtos na EMC Store. Copyright © 2015 EMC Corporation. Todos os direitos reservados. A EMC assegura que as informações apresentadas neste documento estão corretas na data da publicação. As informações estão sujeitas a alterações sem prévio aviso. As informações contidas nesta publicação são fornecidas “no estado em que se encontram”. A EMC Corporation não faz declarações nem oferece garantias de nenhum tipo relativas às informações desta publicação e especificamente se isenta de garantias implícitas de comercialização ou adequação a qualquer propósito específico. O uso, a cópia e a distribuição de qualquer software da EMC descrito nesta publicação exigem uma licença de software. Para uma lista mais atualizada de produtos da EMC, consulte “Produtos” no site brazil.emc.com. VMware, VMware vSphere e VMKernel Scheduler são marcas registradas ou comerciais da VMware, Inc. nos Estados Unidos e/ou em outras jurisdições. Todas as outras marcas comerciais aqui mencionadas pertencem a seus respectivos proprietários. Número da peça H14583 2 ÍNDICE SUMÁRIO EXECUTIVO .............................................................................................. 5 Público-alvo ............................................................................................................ 5 INTRODUÇÃO AO XTREMIO ...................................................................................... 6 Arquitetura ............................................................................................................. 6 Serviços de dados de cópia ....................................................................................... 7 DESEMPENHO ........................................................................................................... 8 EFICIÊNCIA NO ARMAZENAMENTO........................................................................... 9 Provisionamento thin ............................................................................................... 9 Espaço pré-alocado do SQL Server e provisionamento thin ..................................................... 9 Desduplicação de dados em linha ............................................................................. 11 Banco de dados único ...................................................................................................... 11 Várias cópias do banco de dados ....................................................................................... 12 Compactação de dados em linha .............................................................................. 13 Compactação de dados no SQL Server ............................................................................... 13 Compactação de array do XtremIO e compactação de dados nativa do SQL Server ................... 13 SERVIÇOS DE DADOS DO SQL SERVER E CÓPIA DO XTREMIO ................................ 16 CONSIDERAÇÕES SOBRE PLANEJAMENTO E OPERAÇÕES DE ARMAZENAMENTO ..... 18 Provisões para SQL Server ...................................................................................... 18 Configuração do RAID ...................................................................................................... 18 Separação de arquivos ..................................................................................................... 18 Número de LUNs ............................................................................................................. 19 Número de arquivos ........................................................................................................ 20 Atendendo às necessidades de dados de downstream ................................................. 20 Teste e desenvolvimento .................................................................................................. 20 Relatórios quase em tempo real ........................................................................................ 21 Atualizando dados de downstream com atualização de snapshot ............................................ 24 Manutenção do banco de dados ............................................................................... 24 Ajuste de consulta ........................................................................................................... 25 DBCC ............................................................................................................................ 25 3 Backup/restauração ............................................................................................... 25 Backup/restauração de snapshots com o EMC AppSync......................................................... 26 Upgrade ............................................................................................................... 26 CONSIDERAÇÕES SOBRE A IMPLEMENTAÇÃO ......................................................... 27 Múltiplos caminhos ................................................................................................ 27 Tamanho da fila .................................................................................................... 27 Tamanho de setor físico de 512 B em comparação a 4 KB ........................................... 29 Determinando qual tamanho de setor usar .......................................................................... 31 Tamanho da unidade de alocação ............................................................................ 32 Snapshot consistente com aplicativos em comparação ao snapshot consistente em caso de falha ................................................................................................... 33 Snapshot consistente em caso de falha............................................................................... 33 Snapshot consistente com aplicativos ................................................................................. 33 Determinando qual snapshot usar ...................................................................................... 34 CONCLUSÃO ........................................................................................................... 35 APÊNDICE I: RESUMO DAS PRÁTICAS RECOMENDADAS ......................................... 36 APÊNDICE II: CONFIGURAÇÕES E METODOLOGIAS DE TESTES DE DESEMPENHO .. 38 Metodologias de teste ............................................................................................ 38 Configurações de teste ........................................................................................... 38 APÊNDICEIII: ATUALIZAÇÃO DE SNAPSHOT .......................................................... 40 REFERÊNCIAS......................................................................................................... 43 4 SUMÁRIO EXECUTIVO Para muitas organizações, o SQL Server é a infraestrutura de mecanismo de banco de dados principal para aplicativos essenciais aos negócios. Embora os departamentos de TI em organizações precisam reduzir os custos e aumentar a eficiência, os aplicativos do SQL Server estão ficando mais complexos, os tamanhos de banco de dados são altíssimos e as janelas de serviço estão diminuindo. No entanto, as empresas, estão exigindo uma resposta melhor. É trabalho tanto dos administradores de TI como dos administradores de banco de dados do SQL Server buscar soluções para acompanhar os SLAs (Service Level Agreements, contratos de nível de serviço) e as medidas de desempenho enquanto aumentam a eficiência e a agilidade do workflow. O storage array totalmente flash XtremIO da EMC é uma plataforma ideal para aplicativos essenciais aos negócios, como o SQL Server. A arquitetura scale-out exclusiva do XtremIO não apenas oferece altíssimo desempenho, com dimensionamento perfeito de latência baixa consistente para qualquer implementação de SQL Server, mas também traz novos níveis de eficiência de armazenamento, simplicidade e agilidade que aumentam significativamente a capacidade de produção da TI e dos administradores de banco de dados. Este paper discute: • Recursos do XtremIO e valor agregado para SQL Server • Os cenários de caso de uso sobre a utilização de recursos do XtremIO para melhorar o gerenciamento de ciclo de vida de aplicativos do SQL Server aumentam a produtividade de administradores de banco de dados e das equipes de Business Intelligence • Considerações sobre a implementação do SQL Server no XtremIO, inclusive práticas recomendadas Um resumo das recomendações de práticas recomendadas está presente no Apêndice I: Resumo das práticas recomendadas. PÚBLICO-ALVO Este white paper foi elaborado para: • Administradores de banco de dados SQL Server • Administradores de TI • Arquitetos de armazenamento/datacenter • Gerentes técnicos • Qualquer outro profissional de TI responsável pelo projeto, implementação e gerenciamento de bancos de dados, infraestrutura e datacenters do SQL Server 5 INTRODUÇÃO AO XTREMIO O XtremIO é um storage array de armazenamento totalmente flash de nível corporativo com serviços avançados de dados. Ele foi projetado do zero para liberar todo o potencial de desempenho do flash e oferecer recursos baseados em array que aproveitam as características exclusivas dos SSDs (Solid State Drive). ARQUITETURA O Storage Array é um sistema totalmente flash, baseado em uma arquitetura scale-out. O sistema é projetado para dimensionar, usando componentes básicos (X-Bricks). Cada X-Brick é uma unidade de alta disponibilidade que consiste em duas controladoras de armazenamento ativo-ativo e um conjunto de 25 SSDs. Os X-Bricks são colocados em cluster para aumentar o desempenho e a capacidade conforme necessário. Interconexões entre controladoras de armazenamento e X-Bricks são fornecidas pelo RDMA (Remote Direct Memory Access, acesso remoto de memória direta) de alta velocidade e latência ultrabaixa com o InfiniBand. Aproveitando o RDMA, o sistema XtremIO é, em essência, um espaço único de memória compartilhada que abrange todas as controladoras de armazenamento. Dimensionando linearmente todos os recursos, como CPU, RAM, SSDs e portas de host de forma balanceada, o array atinge qualquer nível de desempenho desejado e mantém a consistência de desempenho que é essencial para o comportamento previsível dos aplicativos. Com uma arquitetura projetada para dar suporte a um número ilimitado de X-Bricks, o lançamento da versão 4.0 do XtremIO atual dá suporte a até oito X-Bricks com diferentes capacidades SSD. Figura 1. Arquitetura de array de armazenamento do storage array totalmente flash XtremIO O mecanismo de armazenamento do XtremIO tem reconhecimento de conteúdo. Conforme o fluxo de dados entra no sistema, ele é subdividido em blocos de dados. Cada bloco de dados recebe uma impressão digital com uma assinatura exclusiva, com base no conteúdo do bloco de dados. O sistema mantém uma tabela de mapeamento na memória. Cada impressão digital do bloco de dados de entrada é verificada com relação à tabela de mapeamento para duplicações. Além disso, apenas os blocos de dados que são exclusivos (nunca-gravados anteriormente no sistema) são compactados e armazenados em SSDs. Inicialmente, os dados sempre são armazenados com o menor espaço ocupado, sem a necessidade de redução de dados pós-processamento. O processo matemático que calcula as impressões digitais sempre resulta em uma distribuição uniforme dos valores de impressão digital e o mapeamento de impressão digital é distribuído de maneira uniforme entre todas as controladoras de armazenamento do cluster. Graças a sua arquitetura de armazenamento que reconhece conteúdo, o XtremIO oferece: • Distribuição uniforme de blocos de dados. O desempenho é inerentemente equilibrado entre todas as controladoras de armazenamento e todos os SSDs. • Distribuição uniforme de metadados. • Nenhum hotspot de dados ou metadados, resultando em maior resistência do flash. • Fácil de instalar e nenhuma necessidade de ajuste. Nenhum planejamento de capacidade complexo é necessário para espalhar LUNs por grupo de RAID ou spindles. • Os serviços de dados avançados, inclusive desduplicação de dados em linha, compactação de dados em linha, provisionamento thin, proteção avançada de dados (XDP) e serviços de dados de cópia com snapshots. 6 SERVIÇOS DE DADOS DE CÓPIA Uma das partes mais incríveis que a tecnologia do XtremIO oferece é os serviços de dados ágeis de cópia. Os serviços de dados de cópia do XtremIO elevam os snapshots graváveis para além da simples proteção de dados. Os serviços de dados de cópia do XtremIO criam instantaneamente cópias de volume com tamanho e desempenho completo, mas ainda assim economizando espaço. Todo o ambiente de aplicativo, incluindo instâncias de produção e fora de produção, pode ser gerenciado eficientemente em um único array, com uma excelente economia. Isso permite que suas equipes de aplicativo e infraestrutura tenham agilidade inovadora de workflow e processo de negócios ao eliminar técnicas de cópia de força bruta que desperdiçam tempo, consomem desempenho e ocupam muito espaço. As equipes de aplicativo e infraestrutura podem trabalhar em projetos com mais valor agregado e inovação. Figura 2. Serviços de dados de cópia do XtremIO 7 DESEMPENHO As cargas de trabalho de aplicativos típicos, como SQL Server, direcionam de forma moderada IOPS/largura de banda que raramente estende a capacidade de uma rede de área de armazenamento compartilhado (SAN). As organizações consolidam várias cargas de trabalho em SAN para maximizar a utilização de recursos e aproveitam as vantagens da disponibilidade, da capacidade de expansão e da facilidade de gerenciamento de uma SAN. Embora a consolidação do armazenamento fornece as promessas de eficiência de gerenciamento, manter o desempenho do aplicativo e o nível de serviço do usuário tem sido um enorme desafio para servidores de SQL em execução na SAN devido a problemas de “vizinho barulhento” para compartilhamento de recursos ou combinação de cargas de trabalho com diferentes padrões de acesso ao disco. O XtremIO é um array totalmente flash de classe corporativa que foi desenvolvido para resolver muitos desafios de uma SAN tradicional. O XtremIO não apenas oferece alta IOPS/largura de banda, mas também consistentemente mantém uma latência de submilissegundos conforme o número de cargas de trabalho aumenta, ou conforme o sistema é dimensionado. A arquitetura exclusiva de scale-out do sistema também permite o dimensionamento linear de desempenho, bem como de capacidade. A arquitetura do XtremIO permite que o desempenho e a capacidade sejam ampliados com o acréscimo de X-Bricks. Cada X-Brick oferece 150 mil IOPS de 8K com leitura/gravação mistas na proporção de 70:30 ou 250 mil de IOPS de 8K de leitura 100%. A arquitetura é construída para dar suporte a um número ilimitado de X-Bricks. A versão atual 4.0 dá suporte a até oito X-Bricks com mais de 1,2 milhão de IOPS com leituras/gravações mistas. A arquitetura scale-out exclusiva do XtremIO oferece excelente flexibilidade para implementações de SQL Server. Você pode começar pequeno e, à medida que sua empresa cresce, adicionar mais desempenho e capacidade com X-Bricks adicionais. Quando você faz scale-out com a adição de X-Bricks, os dados do SQL Server são rebalanceados automaticamente em todos os SSDs no cluster do XtremIO. Com a capacidade de expansão de cluster on-line do XtremIO, as cargas de trabalho automaticamente se beneficiam de SSDs adicionais e das controladoras de armazenamento, sem nenhuma interrupção de serviço. A Figura 3 exibe os resultados de um estudo realizado na consolidação de até oito cargas de trabalho do SQL Server em um cluster dual do XtremIO de X-Brick. Cada carga de trabalho parecida com OLTP simula um aplicativo de operações financeiras e gera atividades de I/O de uma carga de trabalho típica de transações on-line do SQL Server de 90% de leitura e 10% de gravação. A maioria dos acessos aos dados é aleatória de 8K. O estudo mede o IOPS e a latência conforme o número de cargas de trabalho do SQL Server aumenta. De acordo com a Figura 3, conforme o número de instâncias de SQL Server aumenta de 1, 2, 4 e 8, o IOPS de total agregado aumenta a partir de 22K, 45K, 95K e 182K, respectivamente. A capacidade de expansão de IOPS é quase linear conforme o número de cargas de trabalho do SQL Server aumenta. A latência média do disco é observada à medida que o aplicativo do SQL Server é mantido em cerca de 500 µs. Para obter mais detalhes sobre a configuração de teste e metodologias, consulte o Apêndice II: Configurações e metodologias de testes de desempenho Figura 3. Desempenho do XtremIO com a consolidação de até 8 SQL Servers 8 A capacidade de manter a latência de submilissegundos consistente sob alta carga e de dimensionar linearmente em um ambiente compartilhado diferencia o XtremIO dos híbridos tradicionais e outros arrays totalmente flash. O XtremIO Storage Array oferece previsibilidade e consistência que são absolutamente essenciais para a execução de todos os aplicativos corporativos de SQL Server em uma SAN. EFICIÊNCIA NO ARMAZENAMENTO O XtremIO oferece uma ampla variedade de recursos de eficiência de armazenamento que são globais, em linha e ininterruptos. Esses recursos de eficiência de armazenamento não apenas reduzem significativamente o espaço ocupado pelo armazenamento para executar bancos de dados do SQL Server no XtremIO, mas também efetivamente melhoram o desempenho e a longevidade de SSD, reduzindo o número de operações de gravação para os SSDs. Os recursos de eficiência de armazenamento do XtremIO incluem o provisionamento thin, a desduplicação de dados em linha e a compactação de dados em linha. PROVISIONAMENTO THIN Os sistemas de armazenamento legado usam provisionamento thick em vez de provisionamento thin. O provisionamento thick normalmente exige uma projeção do uso potencial de armazenamento de aplicativo de três anos, mas pagamento pelo custo do armazenamento no momento da compra. Em muitos casos, o armazenamento é provisionado em excesso e, consequentemente, uma grande quantidade de espaço é desperdiçada por um longo período. O provisionamento thin foi projetado para aumentar a utilização do armazenamento e maximizar o investimento em armazenamento de organização. O armazenamento do XtremIO é de provisionamento thin nativo e aceita 100% de armazenamento sob demanda. Com o provisionamento thin, o administrador de TI provisiona armazenamento para SQL Server como de costume, mas o sistema do XtremIO só consome capacidade quando realmente precisa. O provisionamento thin otimiza a utilização de armazenamento, eliminando qualquer capacidade não utilizada provisionada. ESPAÇO PRÉ-ALOCADO DO SQL SERVER E PROVISIONAMENTO THIN A implementação típica do SQL Server pré-aloca 10 a 30% de espaço para prever o crescimento de dados e para evitar o crescimento automático dos data file durante a execução. A parte do espaço alocado previamente é zero na inicialização, mas ainda não foi gravada pelo SQL Server. Com o XtremIO, a parte do espaço alocado previamente é considerada como espaços em branco que não serão armazenados fisicamente. Neste estudo, foi criado um banco de dados de 1,6 TB, com uma grande quantidade de espaço alocado previamente (cerca de 61%) para observar o espaço físico ocupado do armazenamento no XtremIO. Conforme indicado na Figura 4 e na Figura 5, o painel de armazenamento do painel de controle do XtremIO mostra a quantidade de espaço provisionado para o volume como 2 TB, e o consumo real do espaço de cerca de 610 GB. A quantidade de espaço alocado previamente é de provisionamento thin. A Figura 4 mostra um banco de dados com cerca de 1,6 TB de espaço reservado, com 610 GB de espaço real usado. Figura 4. Espaço de banco de dados usado do SQL Server 9 A Figura 5 mostra a capacidade de volume que é considerada como usada pelo XtremIO. Como indicado na figura, o espaço alocado previamente do SQL Server é considerado como com provisionamento thin. Figura 5. Painel de controle do XtremIO Painel Storage O provisionamento thin nativo do XtremIO fornece as seguintes vantagens: • Os administradores de banco de dados podem ser mais generosos na atribuição de espaço pré-alocado para evitar a sobrecarga de desempenho para crescimento de arquivos de banco de dados. • Os administradores de TI não precisam se preocupar com desperdício de espaço de armazenamento devido a uma grande quantidade de espaço alocado previamente que não está sendo usada. • Os administradores de TI têm mais flexibilidade no dimensionamento. Aplicativos como o SQL Server raramente usam a capacidade provisionada total. A capacidade de consumir capacidade sob demanda permite que os administradores de TI maximizem a capacidade física do armazenamento com mais eficiência. O provisionamento thin é parte integrante da arquitetura que reconhece conteúdo do XtremIO. Ao contrário de alguns arquiteturas orientadas a discos, o provisionamento thin do XtremIO não afeta o desempenho nem causa problemas de fragmentação. O provisionamento thin proporciona muitos benefícios. No entanto, ele requer que os administradores de TI implementem medidas para monitorar a porcentagem da capacidade física disponível. Para evitar problemas com o SQL Server, armazenamento extra deve ser adicionado desde o início, quando a quantidade de capacidade física disponível é baixa. Os recursos de expansão de cluster sem causar interrupções e alertas do XtremIO permitem o monitoramento proativo e o dimensionamento da capacidade de espaço. 10 DESDUPLICAÇÃO DE DADOS EM LINHA O XtremIO armazena dados de acordo com seu conteúdo. Quando o fluxo de dados entra no sistema, ele é dividido em blocos de dados de 8 KB e recebe uma impressão digital com base em seu conteúdo. Cada bloco de dados é automaticamente marcado para desduplicação globalmente em todo o cluster do XtremIO. Somente dados exclusivos que ainda não existem no storage array totalmente flash XtremIO são gravados nos SSDs. A arquitetura exclusiva do XtremIO de uso de impressões digitais de conteúdo não somente permite a desduplicação de dados em linha, mas também proporciona flexibilidade para distribuição proporcional de dados. Os blocos de dados em qualquer volume de SQL Server são distribuídos igualmente entre todos os SSDs no cluster. Os dados são balanceados automaticamente para evitar qualquer hotspot nos SSDs para balanceamento de desgaste de flash ideal. É feito o balanceamento de carga automático do desempenho em todas as controladoras de armazenamento em todos os X-Bricks no cluster do XtremIO. Esse recurso do XtremIO e seu processo inteligente de armazenamento de dados garantem: • Utilização balanceada dos recursos do sistema, maximizando o desempenho do sistema • Quantidade mínima de operações do flash, maximizando a longevidade do flash • Distribuição uniforme de dados, resultando em desgaste balanceado do flash em todo o sistema. • Não existe coleta de lixo no nível do sistema (ao contrário de redução de dados pós-processamento) • Uso inteligente de capacidade de SSD, minimizando custos de armazenamento BANCO DE DADOS ÚNICO O SQL Server armazena dados em páginas. Cada página é uma unidade de dados de 8 KB. A Figura 6 ilustra a estrutura de uma página do SQL Server. Cada página contém um cabeçalho com campos que são exclusivas da página. Os dados reais de linhas estão localizados na parte restante da página. Ao implementar um banco de dados no XtremIO, a desduplicação de dados em linha não deve reduzir o espaço ocupado em disco dos bancos de dados devido ao cabeçalho da página exclusivo em cada página de dados. No entanto, há muitos ocasiões em que mais de uma cópia dos bancos de dados são necessárias devido a problemas como geração de relatórios, teste e desenvolvimento. Figura 6. Estrutura de uma página de dados do SQL Server 11 VÁRIAS CÓPIAS DO BANCO DE DADOS A Figura 7 mostra os efeitos da desduplicação de dados em linha ao implementar várias cópias do mesmo banco de dados. O gráfico exibe a implementação de 1, 2, 4 e 8 cópias de um banco de dados. Enquanto a capacidade provisionada (espaço reservado pelo SQL Server) e o espaço usado pelo SQL Server são multiplicados conforme o número de cópias aumenta, o XtremIO consome apenas o espaço físico para um único banco de dados. Quando cópias são criadas inicialmente, não é necessário usar espaço adicional. O consumo de espaço só aumenta posteriormente, quando há alterações no conteúdo do banco de dados. Figura 7. Eficiência de armazenamento com cópias de banco de dados 12 COMPACTAÇÃO DE DADOS EM LINHA Como parte do fluxo do I/O de gravação, o XtremIO compacta dados automaticamente após todas as duplicações serem removidas. A compactação é uma operação global, em linha e ininterrupta que é executada somente em blocos de dados exclusivos. O XtremIO usa um algoritmo que é baseado em Lempel-Ziv-Welch, que otimiza o equilíbrio entre a capacidade de compactação e a alocação de recursos. A compactação complementa a desduplicação de dados para implementações de SQL Server. Se você estiver implementando um banco de dados, várias cópias do mesmo banco de dados, ou vários bancos de dados do aplicativo, a compactação em linha reduzirá automaticamente o espaço ocupado pelo armazenamento ao armazenar blocos de dados da maneira mais eficiente. O XtremIO pode efetivamente compactar dados exclusivos em uma proporção de até 4:1. A natureza dos dados determina a taxa geral de compactação deles. COMPACTAÇÃO DE DADOS NO SQL SERVER Os administradores de banco de dados do SQL Server estão familiarizados com os recursos de compactação de dados nativos do SQL Server, ou seja, compactação de linha e compactação de página. A compactação de linha armazena tipos de dados de comprimento fixo em formato de tamanho variável e remove as necessidades de armazenamento para valores nulos e espaço em branco. A compactação de página procura ainda mais oportunidades de redução de dados, minimizando os dados da coluna redundante em uma ou mais linhas em uma página de 8 KB. Os dados redundantes de coluna são armazenados apenas uma vez em uma página e têm várias colunas como referência. A implementação de compactação de linha e compactação de página efetivamente reduz o espaço usado pelo SQL Server. No entanto, há alguns desafios que prejudicam a ampla adoção desse processo. Eles incluem: • A compactação e a descompactação consomem ciclos de CPU do host. Especialmente para compactação de página, a sobrecarga de CPU pode ser substancial e ainda pode mostrar um impacto negativo no desempenho de consulta se a carga de trabalho estiver executando muitas atualizações. Um estudo mais detalhado feito pela equipe do SQL Server está disponível em: https://technet.microsoft.com/en-us/library/dd894051 (v=sql.100).aspx • Por causa da possível sobrecarga de desempenho, a ativação da compactação de linha ou página precisa ser avaliada cuidadosamente no nível de tabela, de partição ou até mesmo de índice. • A ativação da compactação exige a movimentação de dados para um novo formato de registro e a remoção de duplicações. Esse processo consome tempo e recursos. O custo inicial para ativar a compactação pode levar horas ou dias, dependendo do tamanho do banco de dados. Isso pode ser uma grande sobrecarga ao gerenciar um grande número de bancos de dados. • A economia da compactação de espaço não pode ser recuperada até que os arquivos de banco de dados ou dados sejam reduzidos. Essa operação de redução é muito invasiva e consome tempo e recursos. COMPACTAÇÃO DE ARRAY DO XTREMIO E COMPACTAÇÃO DE DADOS NATIVA DO SQL SERVER O recurso de compactação de dados do XtremIO em linha pode complementar a compactação de dados nativa do SQL Server de muitas maneiras. Este estudo examinou um banco de dados não compactado, um banco de dados compactado em linha e um banco de dados compactado em página, tanto no array de armazenamento do XtremIO como em um disco local sem a compactação do armazenamento. Os dados de espaço usado do SQL Server foram capturados do relatório de utilização de disco do Management Studio do SQL Server para determinar o espaço de banco de dados real que é usado com os métodos de compactação diferentes. O contador de capacidade física usada do XtremIO foi usado para medir o consumo de armazenamento físico no XtremIO. Como mostrado na Figura 8, a economia da compactação para compactação de linha, compactação de página e compactação do XtremIO é de 16%, 48% e 37%, respectivamente. O armazenamento de banco de dados não compactado no XtremIO reduz o espaço ocupado pelo armazenamento de 610 GB para 383 GB. Essa é uma economia de 37% de espaço sem exigir o uso de reconstruções demoradas de índice. Além disso, não há nenhum impacto no desempenho. 13 Figura 8. Compactação de array do XtremIO em comparação à compactação de dados nativa do SQL Server O estudo mostrou que a compactação de página forneceu a maior economia de espaço, de 48%. Em comparação, a compactação de linha apresentou a menor economia de compactação, de 16%. As compactações de página e de linha estão sujeitas às restrições acima de sobrecarga de desempenho possível, complexidade operacional e o espaço não pode ser recuperado até depois da operação custosa de redução. Embora a compactação de página deva ser considerada para dados menos ativos ou de arquivamento, a compactação em linha do XtremIO parece oferecer uma alternativa melhor que a compactação de linha para todos os dados ativos. As vantagens de usar a compactação em linha do XtremIO incluem: • Boa economia de compactação em comparação com opções de compactação de dados nativa do SQL • Aplicação automática para todos os bancos de dados do SQL Server, sem a necessidade de ativar qualquer botão adicional • Impacto zero no desempenho das consultas existentes e sem sobrecarga da CPU do host • Sem taxas de licenciamento adicionais Para bancos de dados que já são compactados com compactação de linha ou de página, a compactação em linha do XtremIO pode maximizar ainda mais a economia por compactação. A Figura 9 mostra a capacidade física consumida pelos bancos de dados que foram compactados por linha ou página. A compactação em linha do XtremIO é capaz de oferecer uma economia adicional de 38% para um banco de dados compactado por linha e uma economia adicional de 7% em um banco de dados compactado por página. 14 A economia de compactação pode variar dependendo da capacidade de compactação de dados. Figura 9. Usando a compactação de dados nativa do SQL Server com compactação de array do XtremIO Sugestões de práticas recomendadas: • Use a compactação em linha do XtremIO em vez de compactação de linha nativa do SQL Server para alcançar uma compactação automática de dados ativos. Use a compactação de página nativa do SQL Server para maximizar a economia de compactação de dados menos ativos ou de arquivamento. • Use a compactação de linha ou de página nativa do SQL Server se o banco de dados é criptografado com criptografia de dados transparente do SQL Server. Um banco de dados criptografado de dados transparentes não obtém economia por compactação com a compactação em linha do XtremIO. Uma alternativa para resolver o problema de compatibilidade é considerar a criptografia de dados em repouso do XtremIO. 15 SERVIÇOS DE DADOS DO SQL SERVER E CÓPIA DO XTREMIO Durante um ciclo de vida de aplicativos do SQL Server, os administradores de banco de dados muitas vezes têm a necessidade de criar cópias de bancos de dados (por exemplo, para o serviço de dados de downstream e proteção de dados). Os métodos tradicionais de criação de cópias de bancos de dados normalmente envolvem os seguintes métodos: • Backup/restauração — Backup do banco de dados na origem e restauração no destino. • Cópia/conexão — Pausa temporária do serviço do SQL Server. Por exemplo, em um cenário de upgrade do lado a lado, é possível fazer uma cópia dos arquivos SQL da origem, e anexar a cópia a um SQL Server de destino. Ambos os métodos requerem ler os dados do armazenamento, transferir dados da origem ao destino por meio da rede de host e gravar os dados de volta no armazenamento. O processo não é apenas demorado; ele também exige uma grande quantidade de recursos da CPU do host, memória e largura de banda de rede. O XtremIO oferece uma nova alternativa para a implementação de cópias dos bancos de dados com serviços de cópia. Os serviços de dados de cópia do XtremIO são baseados em sua tecnologia única de redirecionamento em gravação, onde você é capaz de criar uma cópia totalmente gravável do banco de dados. Ele é 100% eficiente para espaço e não consome recursos do host. No laboratório, um estudo foi realizado para comparar o tempo de implementação para um banco de dados de 1 TB usando: • Backup e restauração tradicionais • Cópia/conexão • Serviços de cópia de dados do XtremIO A Figura 10 exibe os resultados do estudo. Figura 10. Comparações de tempo de implementação do banco de dados O método de backup/restauração ou cópia/conexão de criação de cópias de banco de dados automaticamente obtém o benefício do recurso de desduplicação de dados em linha do XtremIO. As cópias de banco de dados não ocupam nenhum espaço de armazenamento adicional. No entanto, os dois métodos ainda exigem a transmissão de blocos de dados do armazenamento para o host e de volta para o armazenamento. O tempo de implementação está vinculado ao desempenho de leitura/gravação do armazenamento, largura de banda de rede e os recursos de host disponíveis. No estudo realizado, a implementação de uma cópia de um banco de dados de 1 TB usando o método de backup/restauração em um host ocioso, em uma rede de 10 GB situada no armazenamento do XtremIO, levou mais de 60 minutos. O método cópia/conexão usa o método de conexão mais eficiente para recuperar o banco de dados, mas ainda levou 30 minutos para implementar. Com a nova alternativa de serviços de dados de cópia do XtremIO, a criação de uma cópia do banco de dados de 1 TB foi instantânea, enquanto a montagem e a recuperação do banco de dados levou menos de 5 segundos. Os serviços de dados de cópia do XtremIO baseiam-se em sua tecnologia exclusiva de snapshot. Os snapshots podem ser somente leitura ou graváveis. A tecnologia de snapshot do XtremIO é implementada com o aproveitamento dos recursos de endereçamento de conteúdo do array juntamente com metadados na memória e os metadados de duas etapas do sistema (o que leva à redução de dados em linha). 16 Conforme mostrado pela Figura 11, quando um snapshot é criado, os metadados para o volume de origem tornam-se uma entidade “ancestral” que é compartilhada entre o volume de produção e o snapshot. Novos contêineres vazios são criados para alterações subsequentes no volume de origem de produção e no volume do snapshot. Assim, o ato de criar um snapshot é extremamente eficiente e exige apenas operação com metadados na memória. A operação de criação de um snapshot em um banco de dados é instantânea, não importando se ele é composto por alguns megabytes ou por centenas de terabytes. Figura 11. Serviços de dados de cópia do XtremIO com base na tecnologia de snapshot Como volumes do XtremIO têm provisionamento thin, os novos contêineres vazios criados para o processo de criação do snapshot não ocupam nenhum espaço. Portanto, a implementação de cópias de bancos de dados usando os serviços de dados de cópia é 100% eficiente para economia de espaço. O consumo de capacidade do snapshot ocorre apenas se uma alteração exigir gravação de um novo bloco. Sugestão de prática recomendada: • Use serviços de dados de cópia do XtremIO para uma rápida implementação de cópias de banco de dados com eficiência de armazenamento. 17 CONSIDERAÇÕES SOBRE PLANEJAMENTO E OPERAÇÕES DE ARMAZENAMENTO PROVISÕES PARA SQL SERVER O SQL Server mapeia um banco de dados ao longo de um conjunto de arquivos no disco. As informações de registro de transações e dados são armazenadas em arquivos separados. Para maximizar o desempenho e a eficiência operacional do SQL Server, a otimização do layout de arquivos de banco de dados tem sido o ponto focal da discussão por muitos anos. Nesta seção, podemos examinar as considerações e recomendações comuns e discutir a relevância para o provisionamento de um banco de dados do SQL Server no XtremIO. As considerações comuns para o layout de arquivos de banco de dados do SQL Server incluem: • Configuração do RAID • Separação de arquivos do SQL Server • Número de LUNs • Número de arquivos CONFIGURAÇÃO DO RAID O SQL Server normalmente apresenta as recomendações a seguir no RAID, ao considerar aspectos como desempenho, proteção de dados e considerações sobre custo: • Use RAID 10 para arquivos de registros e dados de usuário para obter o melhor desempenho e disponibilidade. No entanto, quando o custo é uma preocupação, os dados podem ser alocados no RAID 5 ou equivalente. • Para gravação intensa TempDB, use RAID 10. RAID 0 é uma opção se o custo é um problema. No entanto, o sistema pode ficar indisponível durante a falha de disco se RAID 0 é usado. RAID 5 é suficiente para TempDB com uso intenso de não gravação. • Use um grande número de discos menores em vez de um número menor de grandes discos. Ao implementar o SQL Server no XtremIO, as considerações sobre a configuração RAID não são mais relevantes, pelos seguintes motivos: • O sistema XtremIO tem um RAID de paridade dupla integrado de “Autocorreção” como parte de sua arquitetura. • O XDP (XtremIO Data Protection) é projetado para aproveitar as propriedades específicas da mídia flash e a arquitetura de armazenamento de conteúdo endereçável do XtremIO. • Com a arquitetura de armazenamento de conteúdo endereçável, os arquivos do SQL Server são automaticamente distribuídos entre todos os SSDs e processados por todas as controladoras de armazenamento no cluster. Sugestões de práticas recomendadas • Não é necessária nenhuma configuração de RAID. Um RAID otimizado para flash (XDP) é integrado e pré-configurado no XtremIO. SEPARAÇÃO DE ARQUIVOS Recomendações de SQL Server comuns: • Alocar LUNs separadas para dados, registro e arquivos TempDB. • Alocar discos físicos separados para LUNs usadas pelos registros e dados. • Alocar LUNs separadas para tipos de carga de trabalho diferentes (por exemplo, OLTP em comparação com lógica analítica). A origem para a separação de arquivos é provocada por características de I/O do SQL Server e a otimização para a mídia de disco rígido rotacional menos eficiente usada no armazenamento tradicional. O SQL Server acessa os arquivos de registros e dados com padrões de I/O muito diferentes. Enquanto o acesso aos arquivos de dados é principalmente aleatório por natureza, o acesso de arquivos de registros de transação é apenas sequencial. O armazenamento tradicional desenvolvido com a mídia de disco rotacional requer novo posicionamento da cabeça do disco para acesso aleatório de gravação e leitura. Portanto, dados sequenciais são muito mais eficientes do que o acesso aleatório aos dados. A separação dos arquivos que têm padrões diferentes de acesso aleatório versus sequencial ajuda a minimizar movimentos da cabeça disco e, portanto, otimiza o desempenho de armazenamento. Esta diretriz não se aplica mais ao implementar o SQL Server no XtremIO Storage Array porque: • O XtremIO usa todos os discos de estado sólido (SSDs). Os SSDs não têm peças móveis, e não importa onde o bloco de dados físico está localizado. Não há nenhum movimento na cabeça do disco para o acesso de leitura/gravação. 18 Com a arquitetura exclusiva do XtremIO, os dados são igualmente distribuídos de forma inteligente entre todos os SSDs por seu mecanismo de armazenamento de conteúdo endereçável. Isso maximiza a capacidade de processamento de todas as controladoras de armazenamento. • Não há nenhum ganho de desempenho na alocação de LUNs diferentes para dados do SQL Server, registros, arquivos de TempDB ou tipos de carga de trabalho diferentes. No entanto, de uma perspectiva de eficiência operacional, deve-se considerar a separação de arquivos de banco de dados temporário dos arquivos de banco de dados, ou seja, dados do usuário e arquivos de registro de transação. O banco de dados temporário (TempDB) é um recurso global que é compartilhado por todos os bancos de dados dentro de uma instância do SQL Server. É um espaço de trabalho temporário que é recriado sempre que uma instância do SQL Server é iniciada. Ao usar a tecnologia de snapshot do XtremIO para criar um backup, implemente cópias de um banco de dados ou replique um banco de dados para um local secundário, separando o TempDB que permitiria que o snapshot fosse aplicado aos arquivos de banco de dados somente, removendo, portanto, qualquer ruído desnecessário. Sugestões de práticas recomendadas: • Não há motivos relacionados ao desempenho necessários para a separação de arquivos. • Para o uso mais eficiente de serviços de dados de cópia ou replicação de armazenamento, considere o seguinte: o Separe TempDB de registros e arquivos de dados do usuário. o A menos que sua transação comercial abranja vários bancos de dados, não compartilhe a LUN com vários bancos de dados. Um volume/LUN é a menor unidade de operação de snapshot. NÚMERO DE LUNS O SQL Server permite que objetos de banco de dados e arquivos sejam agrupados em grupos de arquivos. Os grupos de arquivos proporcionam os meios para separar os objetos de usuário um do outro em diferentes LUNs ou discos físicos. Como um grupo de arquivos não pode ser distribuído com qualquer arquivo, você nunca pode ter dados de objetos atribuídos a diferentes grupos de arquivos que residem no mesmo arquivo físico. As práticas recomendadas da configuração do SQL Server são: • Use grupos de arquivos para requisitos de administração, como disponibilidade do banco de dados parciais e backup/restauração. • Use arquivos de dados para “fracionar” o banco de dados em sua configuração específica de I/O (por exemplo, para LUNs e discos físicos). • A menos que você esteja familiarizado com o aplicativo, evite a otimização em excesso do I/O, colocando objetos seletivamente em spindles separados. Esta diretriz pode ser significativamente simplificada para a maioria das implementações de SQL Server: • Em geral, uma única LUN é capaz de gerar um sistema de armazenamento do XtremIO com sua capacidade máxima se o aplicativo está impulsionando o volume de atividades de I/O. • Vários grupos de arquivos devem continuar a ser usados para aprimorar a disponibilidade de banco de dados e gerenciar o particionamento de tabela. • Não é mais necessário otimizar mais I/Os ao colocar seletivamente objetos em spindles separados. Uma única LUN por banco de dados oferece as necessidades de desempenho para a maioria das implementações de SQL Server. Você pode manter configuração da LUN simples e padrão com o aproveitamento do recurso do XtremIO de equilibrar automaticamente a carga de trabalho e os dados. Sugestões de práticas recomendadas: • Um única LUN por banco de dados é suficiente para a maioria dos cenários de implementação. O XtremIO automaticamente cuida da distribuição uniforme de dados e garante o processamento máximo em paralelo. • Para implementação em grande escala do SQL Server com uso intenso de I/O, considere as seguintes opções de ajustes: • o Aumente o tamanho da fila de LUN. Para obter detalhes, consulte Tamanho da fila. o Se os I/Os excederem o tamanho de fila máximo permitido, distribua os arquivos de banco de dados entre várias LUNs. Isso aumenta o tamanho da fila geral além do valor máximo configurável por LUN. Se o armazenamento é dedicado a um só banco de dados do SQL Server, um mínimo de quatro LUNs/volumes deve ser criado no cluster do XtremIO. Isso tira proveito total das capacidades de processamento paralelo de várias controladoras de armazenamento no cluster e maximiza o desempenho. 19 NÚMERO DE ARQUIVOS O SQL Server “fraciona” alocações em arquivos em um grupo de arquivos, usando um algoritmo de preenchimento proporcional. Cada arquivo tem seu próprio espaço livre da página (PFS), páginas de mapa de alocação global (GAM) e de mapa compartilhado de alocação global (SGAM). Essas “páginas de administração” especiais rastreiam o espaço livre e a alocação no arquivo. Se os arquivos no grupo são do mesmo tamanho (conforme recomendado pelo SQL Server), a alocação é de round-robin. Ter vários arquivos de dados adiciona vantagens de escalabilidade para cargas de trabalho com uso intenso de alocação. Isso é especialmente válido para o TempDB, no qual atividades tendem a ter muita atividade de alocação. Os comportamentos de alocação do SQL Server não se alteram em execução no XtremIO. Essa recomendação deve ser seguida para otimizar a implementação de TempDB e as melhorias de cargas de trabalho com muita atividade de inserção de atividades. Sugestão de prática recomendada: • Siga as recomendações do SQL Server sobre criação de vários arquivos de dados para um banco de dados de usuário e a criação de TempDB. Para obter recomendações do SQL Server, consulte https://support.microsoft.com/en-us/kb/2154845. Ao implementar o SQL Server no XtremIO, lembre-se de que muitas das considerações e recomendações sobre o armazenamento existentes do SQL Server concentram-se em torno da mídia de disco rígido rotacional tradicional. Além disso, o Storage Array do XtremIO foi desenvolvido com a mídia SSD mais avançada, que é otimizada para acesso aleatório e sequencial. O mecanismo inteligente de conteúdo e a arquitetura scale-out do sistema também simplificam significativamente a complexidade do armazenamento de provisionamento para um SQL Server. Com o XtremIO, os administradores de banco de dados devem estar livres de preocupações com o RAID, contagens de eixos ou qualquer uma das configurações de armazenamento destacadas. ATENDENDO ÀS NECESSIDADES DE DADOS DE DOWNSTREAM Em todo o ciclo de vida de aplicativo do SQL Server, os administradores de banco de dados talvez precisem implementar cópias do banco de dados de produção para consumo de dados de downstream. A manutenção de ambientes de teste e desenvolvimento e a necessidade de dados de geração de relatórios quase em tempo real são os dois casos de uso principais para esse cenário. Os administradores de banco de dados podem implementar cópias do banco de dados no XtremIO usando metodologias tradicionais e aproveitar a eficiência de armazenamento que o XtremIO oferece. Um modo mais eficiente de atender às necessidades de dados de downstream de serviço é obtido por meio da implementação com serviços de dados de cópia do XtremIO. TESTE E DESENVOLVIMENTO Enquanto recursos do aplicativo continuam a ser desenvolvidos, testados e implementados para produção, cópias de banco de dados de produção existentes são necessárias para apoiar os esforços de desenvolvimento e para realizar os testes de aceitação do usuário. Como o tamanho do banco de dados de produção continua aumentando, os administradores de banco de dados estão enfrentando alguns desafios sérios, entre eles: • Como implementar e atualizar ambientes de teste e desenvolvimento com eficiência? Métodos tradicionais de backup/restauração demoram muito e fazem um uso muito intenso de recursos. • Onde encontrar o armazenamento adicional para hospedar várias cópias de teste e desenvolvimento do banco de dados? • Como garantir que as cópias de teste e desenvolvimento sejam executadas em um armazenamento com desempenho similar à produção? 20 Os serviços de dados de cópia do XtremIO podem ser utilizados para oferecer cópias de teste e desenvolvimento dos dados de produção. Várias cópias mestras podem ser criadas, e cada cópia pode ser processada (como um processo de anonimização ou de saneamento) para ser preparada como uma imagem de ouro para fins de desenvolvimento e teste. Várias cópias podem ser criadas a partir de cada cópia mestre e apresentadas a várias equipes de desenvolvimento. O provisionamento de cópias é um processo fácil e instantâneo. Os checkpoints para monitorar os estágios do desenvolvimento podem ser criados por meio de snapshots de vários níveis. Figura 12. Implementar ambientes de teste e desenvolvimento com serviços de dados de cópia do XtremIO Os serviços de dados de cópia do XtremIO permite que as cópias sejam criadas com base na demanda da eficiência máxima de negócios, em vez de com base nas limitações de desempenho ou capacidade de armazenamento. As cópias do banco de dados podem ser criadas instantaneamente, sem consumir armazenamento adicional. Com a abundância de IOPS e a latência baixa e consistente que o XtremIO oferece, teste e desenvolvimento podem aproveitar o mesmo desempenho de produção. Sugestões de práticas recomendadas: • Use os serviços de cópia para implementar cópias do banco de dados para fins de teste e desenvolvimento. • Use o recurso de snapshot multinível para limpar os dados confidenciais antes da apresentação do banco de dados para fins de teste ou desenvolvimento. • Use o recurso de snapshot multinível para criar checkpoints ou ramificações para desenvolvimento. RELATÓRIOS QUASE EM TEMPO REAL Um dos principais objetivos de um banco de dados é a geração de relatórios de serviço. As consultas de geração de relatórios são normalmente prolongadas e requerem uma grande quantidade de recursos de CPU e memória (já que pesam no disco/I/Os). A combinação de geração de relatórios com as atividades do usuário on-line na mesma unidade de computação pode causar conflito de acesso de recursos, bloqueio e problemas de impasses. A capacidade de transmitir a geração de relatórios e separar as atividades de geração de relatórios de cargas de trabalho principais do usuário on-line ajuda a reduzir a carga e melhorar o desempenho no ambiente de produção. Os serviços de dados de cópia do XtremIO permitem que você crie facilmente uma solução que dimensiona horizontalmente um banco de dados para fornecer quase em tempo real cópias dos dados de produção para fins de geração de relatórios. A solução também dá suporte a atualizações periódicas dos dados de produção por meio da acumulação de atualizações de bancos de dados de geração de relatórios. A solução baseia-se no SQL SSD (SQL Server Scalable Shared Database, banco de dados compartilhado dimensionável do SQL Server). Para obter detalhes do SQL SSD, consulte https://technet.microsoft.com/en-us/library/ms345584 (v=SQL.105).aspx. A solução para o uso de serviços de dados de cópia do XtremIO para geração de relatórios de scale-out aprimorou o SQL SSD com clonagem rápida de snapshot e atualização de recursos que são nativos do XtremIO. A tabela a seguir mostra as etapas detalhadas para a solução proposta. 21 HORA T0 FASE FIGURA Essa fase define o processo de construção para criar os bancos de dados iniciais de geração de relatórios. 1. Crie um snapshot mestre de volumes de banco de dados em T0. 2. Crie os snapshots de segundo nível com base no snapshot mestre. 3. Monte os snapshots de segundo nível para todos os servidores de geração de relatórios. Figura 13. Fase inicial de geração de relatórios quase em tempo real 22 HORA T1 FASE FIGURA Esta fase define o processo de atualização periódica dos bancos de dados de geração de relatórios. Nessa fase, metade dos bancos de dados de geração de relatórios foi atualizada por vez e a abordagem de atualização acumulada foi usada para maximizar a disponibilidade do serviço de geração de relatórios. 1. Atualize o snapshot mestre com dados de produtos atuais em T1. 2. Coloque metade da geração de relatórios de bancos de dados em modo off-line. Relatórios podem ser atendidos sem interrupção com a metade restante. 3. Desmonte os discos de propriedade dos bancos de dados de geração de relatórios off-line. 4. Use o recurso de atualização de snapshot para atualizar os snapshots de segundo nível usando o snapshot mestre. 5. Monte os discos para todos os bancos de dados de geração de relatórios off-line. 6. Coloque os bancos de dados em modo on-line. 7. Repita as etapas 2 a 6 para atualizar a segundo metade de banco de dados de geração de relatórios. Figura 14. Atualização de geração de relatórios quase em tempo real: Fase I Figura 15. Atualização de geração de relatórios quase em tempo real: Fase II Figura 16. Atualização de geração de relatórios quase em tempo real: Fase III 23 ATUALIZANDO DADOS DE DOWNSTREAM COM ATUALIZAÇÃO DE SNAPSHOT Se você estiver usando serviços de dados de cópia do XtremIO para fornecer serviços de dados para teste, desenvolvimento ou geração de relatórios, o snapshot acabará se tornando ultrapassado e perderá sua utilidade. Deve haver um processo em vigor para periodicamente atualizar os dados de geração de relatórios, ou oferecer novas versões do banco de dados para fins de teste ou desenvolvimento. O recurso de atualização de snapshot do XtremIO simplifica o processo para atualizar um snapshot obsoleto. O processo de atualização de um banco de dados de downstream exige a conclusão das cinco etapas a seguir: 1. Desconecte o banco de dados obsoleto 2. Desmonte os volumes de banco de dados 3. Execute a atualização de snapshot no XtremIO 4. Monte os volumes 5. Conecte o banco de dados atualizado Para obter scripts detalhados de cada etapa, consulte o Apêndice III: Atualização de snapshot. Sugestões de práticas recomendadas: • Use os serviços de dados de cópia para criar réplicas secundárias legíveis para geração de relatórios quase em tempo real, sem a implementação dos AlwaysOn Availability Groups. • Use snapshots de vários níveis para sincronizar os dados em todas as instâncias de geração de relatórios. MANUTENÇÃO DO BANCO DE DADOS Em todo o ciclo de vida de aplicativo do SQL Server, os bancos de dados precisam ser mantidos para garantir que não exista nenhum problema de integridade de dados. Enquanto as tarefas de manutenção de banco de dados ajudam a manter o SQL Server em execução na sua melhor condição, a execução das tarefas pode ocupar uma grande quantidade de recursos do host. Isso afeta o desempenho de um SQL Server de produção. Os serviços de dados de cópia do XtremIO permitem a rápida implementação de cópias de banco de dados com eficiência de armazenamento. As tarefas de manutenção de banco de dados de atividades com uso intenso de recursos podem ser descarregadas em uma unidade de computação secundária para minimizar o impacto para a carga de trabalho de produção. Figura 17. Liberação de tarefas de manutenção de banco de dados 24 AJUSTE DE CONSULTA Conforme os aplicativos continuam a serem desenvolvidos com novos recursos adicionais, os índices existentes no banco de dados podem não ser suficientes para comportar mais atividades do usuário. O ajuste de índice é parte da vida diária para os administradores de banco de dados do SQL Server. O ajuste de consulta eficaz exige a execução em um banco de dados semelhante ao de produção e pode necessitar de várias versões e passar por erros. Não é viável tentar o ajuste em um ambiente de produção. No entanto, seria difícil tentar obter uma cópia do banco de dados de produção de tamanho de terabyte para consulta de ajustes, tanto de uma perspectiva de requisito de capacidade de armazenamento, como de uma perspectiva de tempo de implementação. Esse é um dilema enfrentado por muitos administradores de banco de dados do SQL Server com armazenamento tradicional. Os serviços de dados de cópia do XtremIO podem criar um snapshot totalmente gravável de um banco de dados instantaneamente, sem ocupar qualquer espaço de armazenamento físico adicional. Ao conectar o snapshot a uma instância do SQL Server secundária, você pode ter um ambiente dedicado para fins de ajustes sem impacto na carga de trabalho de produção. DBCC DBCC CHECKDB é uma tarefa de manutenção que verifica a integridade lógica e física de todos os objetos no banco de dados. É uma tarefa importante a ser realizada, pois ela garante a integridade do banco de dados do SQL Server. No entanto, DBCC CHECKDB pode ser muito conturbado para um SQL Server de produção. O pool de buffer do SQL Server pode ser completamente destruído conforme o CHECKDB lê todas as páginas de todos os objetos. A execução de DBCC CHECKDB em um servidor de produção não é uma prática recomendada. Como resultado, muitos administradores de banco de dados passam por um longo processo para restaurar uma cópia do banco de dados de produção em um ambiente de não produção para realizar DBCC CHECKDB. No entanto, outros podem não ter o luxo de executar DBCC CHECKDB e, assim, incorrer em mais riscos de corrupção dos dados. Com os serviços de dados de cópia do XtremIO, os administradores de banco de dados podem facilmente conectar uma cópia de snapshot do banco de dados de produção a uma instância do SQL Server secundária para executar DBCC CHECKDB. Além disso, não há preocupação com a destruição do pool de buffer do SQL Server de produção. Com o recurso de atualização de snapshot do XtremIO, a integridade do banco de dados pode ser verificada periodicamente em uma cópia atualizada do snapshot para garantir a integridade contínua do banco de dados. Sugestão de prática recomendada: • Descarregue tarefas de manutenção de banco de dados com uso intensivo de recursos, como o ajuste de consulta e o DBCC CHECKDB para uma unidade de computação secundária, usando cópias de bancos de dados criados com os serviços de dados de cópia. BACKUP/RESTAURAÇÃO O backup é essencial para fornecer proteção de dados para um banco de dados do SQL Server. O backup do banco de dados do SQL Server e a execução em um armazenamento tradicional podem ser demorados,fazerem uso intenso de recursos e requerem uma grande quantidade de armazenamento. Uma estratégia comum de armazenamento para backup envolve fazer primeiro o backup de SAN local e, em seguida, copiar o backup para um compartilhamento de arquivos de rede. Depois, copiar os backups para um sistema de arquivamento no local, além da criação de cópias de transporte em um local externo. Os serviços de dados de cópia do XtremIO podem melhorar significativamente o backup/restauração de banco de dados de SQL Server para a SAN local de várias maneiras: • Backup/restauração rápida com a tecnologia de snapshot • Descarregamento de processos de backup com uso intenso de recursos a unidade de computação secundária • Armazenamento de várias imagens de backup com eficiência com a tecnologia de desduplicação de dados em linha A restauração de um backup de snapshot não exige esforços. Os administradores de banco de dados podem facilmente executar uma recuperação completa do banco de dados, ou montar o snapshot com um nome de banco de dados diferente para restaurar parcialmente tabelas ou linhas de um banco de dados. 25 BACKUP/RESTAURAÇÃO DE SNAPSHOTS COM O EMC APPSYNC O XtremIO integra-se com o EMC AppSync para fornecer um recurso de backup e restauração de snapshot consistente com aplicativos para SQL Server. O AppSync interage com a VDI (Virtual Desktop Interface, inteface de desktop virtual) do SQL Server para coordenar o backup de snapshot com o XtremIO. Neste estudo, uma comparação foi realizada para comparar o tempo de backup de um banco de dados de 1 TB usando o método tradicional de backup do SQL e o backup de snapshot consistente com aplicativos usando o AppSync. O tempo de backup foi reduzido de 28 minutos para 1 minuto ao usar o backup de snapshot consistente com aplicativos. Como o backup de snapshot é uma operação completa de metadados, sem qualquer necessidade de copiar ou mover dados físicos, quanto maior banco de dados, maior a diferença de tempo de backup. O AppSync dá suporte a backup completo e a backup somente cópia com snapshot consistente com aplicativos. Com a opção de backup completo, é feito o backup dos dados e da parte ativa da registro de transação. Um backup completo pode ser restaurado em estado NORECOVERY para permitir que os registros de transações adicionais sejam restaurados. Essa opção é compatível com recuperação point-in-time com registros de transação. Um backup somente cópia faz o backup do banco de dados sem afetar a sequência de um backup convencional. Essa opção cria um backup do banco de dados sem interferir nos aplicativos de backup de terceiros que podem estar criando backups diferenciais e/ou completos dos bancos de dados do SQL Server. A criação de um backup completo de banco de dados usando o recurso de um snapshot consistente com aplicativos, o AppSync, é uma forma eficaz de se obter uma cópia recuperável rápida do banco de dados no armazenamento local. Para proteger ainda mais bancos de dados em caso de um desastre catastrófico ou falha de armazenamento físico que vai muito além de recuperação, os volumes de snapshot devem ser copiados para o compartilhamento de arquivos de rede, para o sistema de arquivamento no local e para o armazenamento externo para obter uma proteção completa. Sugestões de práticas recomendadas: • Descarregue backups em uma unidade de computação secundária, usando os serviços de dados de cópia. • Crie backups de banco de dados completos e rápidos direcionados para armazenamentos usando snapshots consistentes com aplicativos do AppSync. Copie os volumes de snapshot para armazenamentos secundários para recuperação de desastres e proteja dados contra falhas de armazenamento físico irrecuperáveis. • Use o tipo de recuperação flexível de AppSync para restaurar um banco de dados no estado NORECOVERY para fins de recuperação point-in-time, usando backups de registros de transação. UPGRADE Conforme aplicativos e o SQL Server continuam a amadurecer, mais recursos são lançados. Os ambientes precisam receber upgrade para aproveitar as vantagens dos novos recursos. Os serviços de dados de cópia do XtremIO podem aprimorar as experiências de upgrade, simplificando o processo de upgrade, minimizando o tempo de inatividade e reduzindo os riscos de upgrade. Com a capacidade de criar uma cópia gravável instantânea do banco de dados sem usar qualquer espaço de armazenamento adicional, use os serviços de dados de cópia do XtremIO para: • Testar o upgrade em uma cópia do banco de dados para resolver possíveis problemas. • Simular o processo de upgrade usando uma cópia do banco de dados para obter uma percepção real de quanto tempo levará o upgrade. • Proteger o banco de dados ao obter uma cópia dele antes do upgrade. Se o upgrade falhar por qualquer motivo, basta apontar a instância do SQL Server na cópia e recuperar. Sugestões de práticas recomendadas: • Execute um teste de upgrade em uma cópia de snapshot para identificar possíveis problemas de upgrade e medir o tempo de upgrade. • Criar um backup de snapshot antes do upgrade, caso haja necessidade de failback. 26 CONSIDERAÇÕES SOBRE A IMPLEMENTAÇÃO MÚLTIPLOS CAMINHOS Caminhos múltiplos facilitam o roteamento de I/O em caminhos de hardware redundantes ao conectar um host ao armazenamento. Se qualquer componente do caminho de armazenamento falhar (por exemplo, cabos, adaptadores de barramento do host [HBAs], switches, controladoras de armazenamento ou até mesmo a energia), o software de múltiplos caminhos redefine a conexão e transmite a solicitação ao longo de um caminho alternativo. Aplicativos como o SQL Server podem continuar a atender I/Os sem nenhuma interrupção. Além de proteger aplicativos de falhas de caminho de hardware, múltiplos caminhos também aprimoram o desempenho dos aplicativos ao realizar o balanceamento de carga de I/Os em todos os caminhos disponíveis para otimizar recursos, maximizar o throughput e reduzir a latência de I/O. O XtremIO é compatível com os seguintes produtos de software de múltiplos caminhos nativos de fornecedores ou múltiplos caminhos usando o EMC PowerPath: • O XtremIO é compatível com o recurso de múltiplos caminhos nativo utilizando o Microsoft Multipath I/O (MPIO) nativo da Microsoft com Windows Server 2008 e posteriores. Para operação ideal com o armazenamento do XtremIO, configure a política Least Queue Depth para MPIO para dispositivos apresentados por meio do XtremIO. Utilizando essa política, o I/O é enviado pelo caminho com o menor número de solicitações de I/O pendentes atualmente. • O XtremIO é compatível com a tecnologia de múltiplos caminhos nativa (NMP) do VMware vSphere. Para um melhor desempenho, recomenda-se: o Configurar a política de seleção de caminhos nativa round robin nos volumes XtremIO apresentados ao host ESX. o Configurar o caminho de Round Robin de recurso de múltiplos caminhos nativo do vSphere alternando a frequência dos volumes do XtremIO do valor padrão (1000 pacotes de I/O) para 1. O XtremIO é compatível com o EMC PowerPath. Para obter detalhes sobre instalação e a configuração do EMC PowerPath com suporte a classes nativas do XtremIO no host, consulte o Guia de Administração e Instalação no Windows do EMC PowerPath ou o Guia de Administração e Instalação do EMC PowerPath no VMware vSphere. O guia fornece as informações necessárias para posicionar os volumes do XtremIO sob o controle do PowerPath e garante a melhor distribuição e disponibilidade de carga entre os caminhos de I/O para o armazenamento do XtremIO. • Para obter etapas detalhadas sobre a habilitação e a configuração de múltiplos caminhos para plataformas de host diferentes, consulte o Guia de Configuração de Host do XtremIO em https://support.emc.com/docu56210_XtremIO-2.2.x---4.0-HostConfiguration-Guide.pdf?language=en_US. Sugestões de práticas recomendadas: • Para Windows 2008 e posteriores, use a política Least Queue Depth com Microsoft Multipath IO nativo da Microsoft (MPIO). • Para SQL Server no VMware vSphere, use a política de seleção de caminhos nativos round-robin do VMware e defina a frequência de alternância como um. • Para obter práticas recomendadas com o PowerPath, consulte o Guia de Administração e Instalação no Windows do EMC PowerPath ou o Guia de Administração e Instalação do EMC PowerPath no VMware vSphere. TAMANHO DA FILA Os drivers de dispositivo SCSI têm um parâmetro configurável chamado tamanho da fila, que determina o número máximo de comandos SCSI ou solicitações de I/O pendentes que uma determinada LUN pode ter uma só vez. Se o valor de tamanho da fila for muito baixo, os I/Os em excesso são enfileirados no aplicativo. À medida que a latência de I/O do SQL Server aumenta, o throughput pode ser afetado. Se o valor de tamanho da fila for muito alto e o sistema de armazenamento não consegue acompanhar o processamento de I/O, o sistema de armazenamento pode ficar sobrecarregado, afetando assim o desempenho de I/O para todos os aplicativos em execução no sistema de armazenamento. Uma configuração de tamanho da fila ideal deve se esforçar para obter um projeto de sistema balanceado e considerar o seguinte: • Requisitos de throughput e IOPS do SQL Server • Número de LUNs usado pelo SQL Server • O máximo de IOPS e throughput que o sistema de armazenamento aceita • O número de hosts e iniciadores que estão conectados ao sistema de armazenamento • Tipos de HBA (marca e largura de banda) usados para conectar os hosts e o sistema de armazenamento 27 O tamanho da fila é por LUN e não por iniciador. Um valor de tamanho de fila pré-configurado de fornecedor de HBA (Host Bus Adapter, adaptador de barramento de host) é definido como 32. O valor pode variar de acordo com o fornecedor ou em algumas implementações de virtualização. Cada porta de iniciador é capaz de dar suporte a um número muito maior de solicitações de I/O simultâneas, normalmente variando em milhares, dependendo da implementação do fornecedor específico. A maioria das configurações do fornecedor para tamanho da fila padrão é otimizada para sistemas de armazenamento de disco rígido tradicional. Um array totalmente flash como o XtremIO pode processar as solicitações de I/O em microssegundos. A arquitetura exclusiva de scale-out do sistema também significa que ele pode processar milhões de solicitações de I/O simultâneas. Além disso, dada a simplicidade de projeto do XtremIO, o número de LUNs pode possivelmente ser reduzido para uma única LUN. O tamanho de fila padrão pode se tornar o fator limitante para prejudica o desempenho do SQL Server. Para operação ideal com o armazenamento do XtremIO, considere o seguinte: • Defina o tamanho da fila como 256. A configuração de tamanho da fila é uma configuração global. Se você tiver um ambiente misto com um host conectado a várias plataformas de armazenamento, consulte recomendações sobre todas as plataformas de armazenamento para evitar problemas de desempenho. • Para implementação no ambiente do VMware vSphere, o tamanho da fila é ainda mais controlado por limites definidos no adaptador vSCSI e no VMKernel Scheduler. • A configuração de tamanho de fila deve ser definida em todas as camadas, inclusive HBA físicas, o adaptador vSCSI e o VMKernel Scheduler para garantir a configuração adequada. • Para obter detalhes sobre como alterar o tamanho da fila do adaptador vSCSI, consulte: http://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1267 • Para obter detalhes sobre a configuração de política de admissão do VMKernel scheduler, consulte: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1268 Recomendamos a configuração Disk.SchedNumReqOutstanding no valor máximo compatível de 256 para volumes do XtremIO. • Para obter etapas detalhadas sobre a configuração de tamanho da fila com diferentes implementações de fornecedores HBA, consulte o Guia de Configuração de Host do XtremIO em: https://support.EMC.com/docu56210_XtremIO-2.2.x---4.0-Host-Configuration-Guide.PDF?Language=en_US. Sugestões de práticas recomendadas: • Defina o tamanho da fila de LUN como 256. • Para implementação do SQL Server no VMware vSphere: o Defina o tamanho da fila em todas as camadas, inclusive HBA físicas, adaptador vSCSI e VMKernel Scheduler, ao configurar a fila para SQL Server em execução no VMware vSphere. o Defina schednumreqoutstanding de disco como 256. 28 TAMANHO DE SETOR FÍSICO DE 512 B EM COMPARAÇÃO A 4 KB O XtremIO pode apresentar o tamanho de setor físico de 512 B ou 4 KB para Windows e para o SQL Server. Como parte das opções de “volume de criação”, você pode especificar um volume a ser usado tanto de 512 LBs como 4 KB LBs. Até recentemente, o Microsoft Windows e o SQL Server eram gravados com base no tamanho de setores de disco de 512 B. A Microsoft começou o suporte nativo para o tamanho de setor de 4 KB com o lançamento do Windows 2012. Para obter mais detalhes sobre o suporte, consulte: • https://support.microsoft.com/en-us/kb/2510009 • https://support.microsoft.com/en-us/kb/926930 O SQL Server armazena dados em páginas de unidade 8 K. Usar o tamanho de setor de 4 KB permite que uma página de dados do SQL Server ocupe dois setores físicos em vez de 16 setores físicos com o tamanho de setor de 512 B. O tamanho do setor de 4 KB alinha-se com eficiência ao limite de 8 KB de página de dados do SQL Server e reduz a quantidade de sobrecarga de metadados. O efeito da melhoria do metadados é muito visível com uma cópia ODX que opere com muitos metadados. Com uma cópia ODX de um conjunto de arquivos do SQL Server com o tamanho total de 1 TB, a largura de banda média para copiar de 512 B para o volume de 512 B é de 6 GB/s. A largura de banda média para copiar de 4 KB para o volume de 4 KB é de 12 GB/s. Apesar de o tamanho do setor de 4 KB oferecer melhor capacidade de armazenamento com menos sobrecarga de metadados, estas são algumas restrições das quais você deve estar ciente antes de apresentar volumes de tamanho de setor de 4 KB ao SQL Server: • As gravações de registro de transações do SQL Server sempre estão alinhadas com o tamanho físico do setor. O tamanho de block de gravação do registro pode ser um ou um múltiplo do tamanho físico do setor, com até 60 KB. Com um tamanho de setor de 4 KB, aplicativos que executam um grande número de operações reduzidas de gravação com confirmações frequentes podem resultar em maior uso de espaço de registro. • As versões anteriores do SQL Server impedem a restauração ou a conexão a um banco de dados em um ambiente que tem um tamanho de setor físico maior que o tamanho do banco de dados do setor no qual ele foi formatado. Para obter mais detalhes, consulte: http://blogs.msdn.com/b/psssql/archive/2011/01/13/sql-server-new-drives-use-4k-sector-size.aspx • As versões do SQL Server anteriores ao SQL Server 2005 tinham um sistema e uma amostra bancos de dados com base em 512 B. Portanto, não é possível definir as versões legadas do SQL Server em um volume de setores de 4 KB, já que ele falhará. • Ao colocar o TempDB e o bancos de dados de usuário em volumes diferentes, lembre-se de que as criações de banco de dados e TempDB usam o tamanho de setor que é relatado pelo sistema de operação no momento da criação, com base no tamanho do setor do volume no qual o arquivo está localizado. A variação de tamanhos de setor pode ocorrer quando os arquivos de banco de dados ou arquivos de banco de dados temporário estão localizados em volumes com um tamanho de setor físico diferente. A variação de tamanho do setor nos caminhos de I/O deve ser evitada para impedir qualquer acesso a dados abaixo do ideal. • Se você executar o SQL Server em um ambiente virtual, esteja ciente de que o tamanho de setor físico de 4 KB ainda não é aceito por todos os fornecedores de hipervisor. Por exemplo, o VMware vSphere não é atualmente compatível com o tamanho de setor de 4 KB. Para obter mais detalhes sobre suporte do Windows Hyper-V e VMware vSphere, consulte: o http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2091600 o https://support.microsoft.com/en-us/kb/2515143 Antes de implementar um banco de dados do SQL Server, sempre verifique o tamanho de setor físico dos volumes provisionado para o SQL Server. Isso é realizado executando FSUTIL. A Figura 18 mostra um exemplo de resultados da execução de FSUTIL em um volume de setor de 512 B e de 4 KB. 29 Figura 18. Verificar o tamanho de setor de volume usando FSUTIL 30 Os administradores de banco de dados do SQL Server também podem executar um fileheader dbcc para verificar o tamanho de setor do banco de dados (que é determinado durante a criação do banco de dados) e o tamanho de setor físico do volume no qual o banco de dados reside atualmente. A Figura 19 mostra resultados de amostra de um fileheader dbcc para um banco de dados criado no tamanho do setor de 4 KB e um banco de dados criado no tamanho do setor de 512 B. A coluna SectorSize mostra que o tamanho do setor no qual o banco de dados foi criado. A coluna ActualSectorSize mostra que o tamanho de setor do volume no qual o banco de dados está atualmente. Para obter melhor desempenho, o valor de SectorSize deve ser igual ao de ActualSectorSize. Figura 19. Exemplo de Fileheader dbcc DETERMINANDO QUAL TAMANHO DE SETOR USAR O uso do tamanho de setor de 4 KB está se tornando a tecnologia mais popular de escolha na indústria de software e armazenamento, pois ele aprimora a armazenamento de página de dados do SQL Server e reduz a sobrecarga de metadados. Para qualquer novo desenvolvimento de banco de dados, o tamanho do setor de 4 KB seria uma boa escolha como o novo padrão. No entanto, apesar das vantagens oferecidas pelo tamanho do setor de 4 KB, o tamanho de setor de 512 B permanece como o tamanho de setor amplamente compatível com menor probabilidade de causar qualquer problema de suporte de aplicativos ou ferramentas. Verifique o suporte na plataforma de software e as ferramentas de armazenamento integradas ao implementar o tamanho do setor de 4 KB. Sugestões de práticas recomendadas: • Use o tamanho do setor de 4 KB para implementações físicas Windows e Hyper-V com implementação independente do XtremIO. • Use o tamanho do setor de 512 B se a implementação incluir produtos como o RecoverPoint para replicação ou o VPLEX. • Use o tamanho do setor de 512 B para SQL Server em implementações do VMware. • Ao mover um banco de dados existente para a plataforma do XtremIO, verifique o tamanho de setor no banco de dados existente, usando dbcc fileheader. Alinhe o tamanho de setor de volume do XtremIO com o tamanho de setor de banco de dados existente. 31 TAMANHO DA UNIDADE DE ALOCAÇÃO O tamanho da unidade de alocação é uma opção configurável para formatar um volume NTFS. Ele não deve ser confundido com tamanho de setor físico. O amanho do setor físico especifica a menor unidade que pode ser gravada por um aplicativo, como o SQL Server. O tamanho de unidade de alocação é a menor unidade de armazenamento que qualquer arquivo individual pode assumir. O tamanho de unidade de alocação padrão em um drive do Windows é 4 KB. Ao formatar o drive, você pode defini-lo como um tamanho maior. O valor de 64 KB é recomendado para dados do SQL Server, arquivos de registro e de banco de dados temporário pelos motivos a seguir: • Os arquivos do SQL Server estão normalmente muito maiores do que 64 KB. • A alocação do SQL Server é definida por extent. Cada extent no SQL Server tem oito páginas de 8 KB, que totalizam 64 KB. Figura 20. Configurar o tamanho de unidade de alocação Sugestão de prática recomendada: • Use o tamanho de unidade de alocação de 64 KB para volumes de dados e registros do SQL Server. 32 SNAPSHOT CONSISTENTE COM APLICATIVOS EM COMPARAÇÃO AO SNAPSHOT CONSISTENTE EM CASO DE FALHA Os serviços de dados de cópia do XtremIO podem ser usados para aprimorar muitos cenários de uso do SQL Server e simplificar as operações diárias para um administrador de banco de dados. Os serviços de dados de cópia do XtremIO são baseados na tecnologia de snapshot. Ele dá suporte a snapshots consistentes em caso de falhas e snapshot consistentes com aplicativos. Então, qual é a diferença entre o snapshot consistente em caso de falhas e o snapshot consistente com aplicativos? Quando você precisa de cada tipo? SNAPSHOT CONSISTENTE EM CASO DE FALHA Snapshots consistentes em caso de falhas capturam o estado dos volumes de dados em um ponto específico no tempo. O SQL Server não tem conhecimento do snapshot. Dessa forma, não existe impacto na execução da instância do SQL Server. Um snapshot consistente em caso de falha de um banco de dados do SQL Server é equivalente a ou consistente com o estado de um banco de dados em execução durante uma falta de energia. Nesse estado, pode haver páginas de dados em memória que ainda não foram submetidas a flush no disco (transações abertas). O SQL Server usa registro à frente da gravação (WAL), onde todas as transações confirmadas são registradas no registro de transações do SQL Server no disco. Esse SQL Server pode se recuperar de uma falha usando informações no registro de transações. É nele que as páginas de dados que ainda não são submetidas a flush no disco podem ser recriadas, e transações em trânsito são marcadas como falha. SNAPSHOT CONSISTENTE COM APLICATIVOS Um snapshot consistente com aplicativos requer a coordenação do snapshot com o SQL Server. O XtremIO integra-se ao EMC AppSync para dar suporte a snapshots consistentes com aplicativos com o SQL Server. O AppSync coordena a obtenção de um snapshot entre o SQL Server (via SQL Server Virtual Device Interface) e o XtremIO. A versão 4.0 do XtremIO também vem com um VSS Provider nativo que permite que os desenvolvedores ou fornecedores terceirizados gravem seus próprios utilitários parecidos com o AppSync para criar snapshots consistentes com aplicativos. Antes de criar um snapshot consistente com aplicativos, o SQL Server é notificado de que o backup dele está prestes a ser feito; portanto, ele pode ser preparado. Então, o SQL Server pode: • Confirmar ou reverter transações em trânsito. • Execute um checkpoint para fazer flush de páginas sujas para disco e anote o número de sequência de registro. Isso é feito para garantir que os arquivos de dados e os arquivos de registros estejam sincronizados e, portanto, minimizem o volume de trabalho durante um processo de restauração. • Congelar I/Os. • Fazer um backup dos metadados. Os snapshots consistentes com aplicativos são considerados um backup completo para o SQL Server. Com o AppSync, um snapshot consistente com aplicativos pode ser montado e restaurado em vários estados de recuperação, ou seja, recovery, NORECOVERY ou standby, conforme mostrado na Figura 21. Com a restauração com NORECOVERY, o banco de dados é colocado em um estado não operacional e não reverte as transações não confirmadas. Como consequência, os registros de transações adicionais podem ser restaurados. Figura 21. Tipos de recuperação de banco de dados compatíveis com o AppSync 33 DETERMINANDO QUAL SNAPSHOT USAR As principais diferenças entre snapshots consistentes com aplicativos e consistentes em caso de falhas são: A quantidade de trabalho necessária durante a recuperação do banco de dados: • Com snapshots consistentes com aplicativos, os arquivos de dados e arquivos de registros estão sincronizados. Não há nenhum trabalho adicional necessário para refazer ou desfazer todas as transações. Embora os snapshots consistentes com aplicativos e snapshots consistentes em caso de falhas tenham o mesmo RPO (Recovery Point Objective, objetivo de ponto de recuperação), o snapshot consistente com aplicativos pode oferecer um RTO melhor. Se o SQL Server congela I/Os durante a operação de snapshot: • O SQL Server permite que um snapshot seja feito em até 10 segundos. O aplicativo pode passar por uma queda de desempenho durante o tempo em que os I/Os estão parados. Se o SQL Server tem um backup de metadados da operação de snapshot ou trata o snapshot como um backup completo: • Um snapshot consistente com aplicativos pode ser restaurado no modo de NORECOVERY para continuar a acumular backups de registros de avanço. Para determinar qual tipo de snapshot a ser usado, você deve considerar o requisito de disponibilidade, a frequência do snapshot, o impacto no desempenho e se é necessário dar suporte a backups de registros. Considerações para o uso de snapshots consistentes com aplicativos em comparação com snapshots consistentes em caso de falhas: Snapshot consistente com aplicativos • o Backup de banco de dados o Criando réplicas secundárias de availability groups com disponibilidade ininterrupta, servidor de mirror de espelhamento de banco de dados ou envio de logs secundário Snapshot consistente em caso de falha • o Realocação para teste, desenvolvimento ou geração de relatórios o Processamento de descarga (por exemplo, ajuste e dbcc) Sugestões de práticas recomendadas: • Use snapshots consistentes com aplicativos para backup e para alta disponibilidade que exigem o acúmulo de dados do registro de transação adicionais. • Use snapshots consistentes em caso de falha para fins de realocação, processamento de descarga ou backup que não exige registros adicionais de avanço. 34 CONCLUSÃO Os arrays totalmente flash EMC XtremIO são projetados para transformar o SQL Server por meio de uma arquitetura scale-out com desempenho singular, com compactação em memória sempre ativa, desduplicação e serviços de dados de cópia com eficiência no uso de espaço, viabilizando a aceleração, a consolidação e a agilidade de aplicativos. O storage array totalmente flash XtremIO oferece não somente desempenho excepcional para qualquer implementação do SQL Server, mas também apresenta simplicidade e eficiência refinadas para administradores de armazenamento e banco de dados que gerenciam o ciclo de vida de aplicativos do SQL Server. Ele aprimora a carga de trabalho do SQL Server e resolve os desafios dos administradores de banco de dados do SQL Server de muitas maneiras, conforme listado abaixo: • Desempenho — O Storage Array do XtremIO aumenta significativamente qualquer desempenho de carga de trabalho do SQL Server sem precisar de ajustes. Com latência baixa consistente para qualquer acesso a block data aleatório ou sequencial, pequeno ou grande, os administradores de banco de dados do SQL Server podem consolidar com segurança várias cargas de trabalho do SQL Server ou cargas de trabalho mistas de SQL Server no XtremIO, sem se preocupar com o problema do “vizinho barulhento”. O desempenho e a capacidade de armazenamento pode aumentar linearmente sob demanda sem a interrupção de serviços com a exclusiva arquitetura scale-out do XtremIO e a capacidade de expansão não disruptiva. • Eficiência — A eficiência de armazenamento é desenvolvida na arquitetura do XtremIO, oferecida como um serviço de dados gratuitos para qualquer carga de trabalho do SQL Server. O banco de dados no espaço ocupado pelo armazenamento é automaticamente reduzido com provisionamento thin ininterrupto, desduplicação de dados em linha e compactação de dados em linha. • Agilidade — Os serviços de dados de cópia do XtremIO aprimoram a agilidade para gerenciamento de workflow de ciclo de vida do SQL Server. Os serviços de dados de cópia do XtremIO criam instantaneamente cópias de volume com tamanho e desempenho completo, mas ainda assim economizando espaço que pode ser realocado para serviços de dados de downstream. Além disso, eles podem ser usados para simplificar a manutenção de banco de dados, o backup ou os workflows de upgrade. Isso resulta em melhorias drásticas de produtividade do administrador de banco de dados e maior agilidade do workflow. • Simplicidade — Não é preciso fazer planejamentos complexos de capacidade para cargas de trabalho do SQL Server. Os administradores de banco de dados não precisam mais se preocupar com RAID, contagens de eixos ou qualquer uma das configurações de armazenamento destacadas ao planejar implementações de SQL Server. Um RAID otimizado para flash é integrado para oferecer proteção para falha de hardware. Os bancos de dados obtêm automaticamente o desempenho de todos os SSDs e de todas as controladoras de armazenamento com a natureza inerentemente balanceada da arquitetura scale-out. O provisionamento de carga de trabalho do SQL Server é tão fácil como especificar o tamanho para os volumes. 35 APÊNDICE I: RESUMO DAS PRÁTICAS RECOMENDADAS A tabela a seguir resume as recomendações de práticas recomendadas, conforme discutido neste artigo. CATEGORIAS PRÁTICAS RECOMENDADAS GERAL • Use a compactação em linha do XtremIO em vez de compactação de linha nativa do SQL Server para alcançar uma compactação automática de dados ativos. Use a compactação de página nativa do SQL Server para maximizar a economia de compactação de dados menos ativos ou de arquivamento. • Use a compactação de linha ou de página nativa do SQL Server se o banco de dados é criptografado com criptografia de dados transparente do SQL Server. Um banco de dados criptografado de dados transparentes não obtém economia por compactação com a compactação em linha do XtremIO. Uma alternativa para resolver o problema de compatibilidade é considerar a criptografia de dados em repouso do XtremIO . • Use serviços de dados de cópia do XtremIO para uma rápida implementação de cópias de banco de dados com eficiência de armazenamento. • Não é necessária nenhuma configuração de RAID. Um RAID otimizado para flash (XDP) é integrado e pré-configurado no XtremIO. LAYOUT DE ARQUIVOS DO SQL SERVER E PROVISIO- • Não há motivos relacionados ao desempenho necessários para a separação de arquivos. • Para o uso mais eficiente de serviços de dados de cópia ou replicação de armazenamento, considere o seguinte: NAMENTO o o Separe TempDB de registros e arquivos de dados do usuário. A menos que sua transação comercial abranja vários bancos de dados, não compartilhe a LUN com vários bancos de dados. Um volume/LUN é a menor unidade de operação de snapshot. • Um única LUN por banco de dados é suficiente para a maioria dos cenários de implementação. O XtremIO automaticamente cuida da distribuição uniforme de dados e garante o processamento máximo em paralelo. • Para implementação extrema em grande escala do SQL Server com uso intenso de I/O, considere as seguintes opções de ajustes: o o Aumente o tamanho da fila de LUN. Consulte a seção Tamanho da fila. Se os I/Os excederem o tamanho de fila máximo permitido, distribua os arquivos de banco de dados entre várias LUNs para aumentar o tamanho da fila geral além do valor máximo configurável por LUN. • Se o armazenamento é dedicado a um só banco de dados do SQL Server, um mínimo de quatro LUNs/volumes deve ser criado no cluster do XtremIO. Isso tira proveito total das capacidades de processamento paralelo de várias controladoras de armazenamento no cluster e maximiza o desempenho. • Siga as recomendações do SQL Server sobre criação de vários arquivos de dados para um banco de dados de usuário e a criação de TempDB. Para obter recomendações do SQL Server, consulte https://support.microsoft.com/en-us/kb/2154845. GERENCIAMENT O DO CICLO DE VIDA DO SQL SERVER • Use os serviços de cópia para implementar cópias do banco de dados para fins de teste e desenvolvimento. • Use o recurso de snapshot multinível para limpar os dados confidenciais antes da apresentação do banco de dados para fins de teste ou desenvolvimento. • Use o recurso de snapshot multinível para criar checkpoints ou ramificações para desenvolvimento. • Use os serviços de dados de cópia para criar réplicas secundárias legíveis para geração de relatórios quase em tempo real, sem a implementação dos AlwaysOn Availability Groups. • Use snapshots de vários níveis para sincronizar os dados em todas as instâncias de geração de relatórios. • Descarregue tarefas de manutenção de banco de dados com uso intensivo de recursos, como o ajuste de consulta e o DBCC CHECKDB para uma unidade de computação secundária, usando cópias de bancos de dados criados com os serviços de dados de cópia. • Descarregue backups em uma unidade de computação secundária, usando os serviços de dados de cópia. • Crie backups de banco de dados completos e rápidos direcionados para armazenamentos usando snapshots consistentes com aplicativos do AppSync. Copie os volumes de snapshot para armazenamentos secundários para recuperação de desastres e proteja dados contra falhas de armazenamento físico irrecuperáveis. • Use o tipo de recuperação flexível de AppSync para restaurar um banco de dados no estado NORECOVERY para fins de recuperação point-in-time, usando backups de registros de transação. • Execute um teste de upgrade em uma cópia de snapshot para identificar possíveis problemas de upgrade e medir o tempo de upgrade. • Crie um backup de snapshot antes do upgrade, caso haja necessidade de failback. 36 CATEGORIAS PRÁTICAS RECOMENDADAS MÚLTIPLOS • Para Windows 2008 e posteriores, use a política Least Queue Depth com Microsoft Multipath IO nativo da Microsoft (MPIO). • Para SQL Server no VMware vSphere, use a política de seleção de caminhos nativos round-robin do VMware e defina a frequência de alternância como um. • Para obter práticas recomendadas com o PowerPath, consulte o Guia de Administração e Instalação no Windows do EMC PowerPath ou o Guia de Administração e Instalação do EMC PowerPath no VMware vSphere. CAMINHOS TAMANHO • Defina o tamanho da fila de LUN como 256. DA FILA • Para implementação do SQL Server no VMware vSphere: TAMANHO DO SETOR FÍSICO TAMANHO DA o Defina o tamanho da fila em todas as camadas, inclusive HBA físicas, adaptador vSCSI e VMKernel Scheduler, ao configurar a fila para SQL Server em execução no VMware vSphere. o Defina schednumreqoutstanding de disco como 256. • Use o tamanho do setor de 4KB para implementações físicas Windows e Hyper-V com implementação independente do XtremIO. • Use o tamanho do setor de 512 B se a implementação incluir produtos como o RecoverPoint para replicação ou o VPLEX. • Use o tamanho do setor de 512 B para SQL Server em implementações do VMware. • Ao mover um banco de dados existente para a plataforma do XtremIO, verifique o tamanho de setor no banco de dados existente, usando dbcc fileheader. Alinhe o tamanho de setor de volume do XtremIO com o tamanho de setor de banco de dados existente. • Use o tamanho de unidade de alocação de 64 KB para volumes de dados e registros do SQL Server. • Use snapshots consistentes com aplicativos para backup e para alta disponibilidade que exigem o acúmulo de dados do registro de transação adicionais. • Use snapshots consistentes em caso de falha para fins de realocação, processamento de descarga ou backup que não exige registros adicionais de avanço. UNIDADE DE ALOCAÇÃO SNAPSHOT CONSISTENTE COM APLICATIVOS EM COMPARAÇÃO AO SNAPSHOT CONSISTENTE EM CASO DE FALHA 37 APÊNDICE II: CONFIGURAÇÕES E METODOLOGIAS DE TESTES DE DESEMPENHO Esta seção descreve as configurações e as metodologias usadas no estudo de desempenho e do dimensionamento em expansão de até oito cargas de trabalho do SQL Server no XtremIO Storage Array. METODOLOGIAS DE TESTE A finalidade desse estudo é examinar o desempenho do sistema de armazenamento do XtremIO, em termos de IOPS e latência, quando o número de instâncias do SQL Server são dimensionados verticalmente em um ambiente consolidado. O objetivo não é demonstrar a capacidade de desempenho máximo do sistema. Este estudo dimensiona o número de instâncias do SQL Server em um cluster do XtremIO de X-Brick dual. Os testes iniciais foram feitos primeiramente com um cenário de uma instância do SQL Server. Cada teste subsequente dobrou o número de instâncias do SQL Server no teste anterior, até atingir o número de oito instâncias do SQL Server executadas. As medição de desempenho foram capturadas por 30 minutos durante o estado steady para cada cenário de teste. Cada instância do SQL Server executou uma carga de trabalho tipo OLTP de 1 TB, gerada pelo Microsoft BenchCraft TPC-E Toolkit. O Kit de ferramentas da Microsoft simula as atividades do usuário de uma empresa de corretagem. A carga de trabalho representa um perfil de acesso de aplicativo típico de transações on-line, com 90% de leitura e 10% de gravação, e IOPSs na sua maioria aleatórios de 8 KB. CONFIGURAÇÕES DE TESTE O ambiente de teste é composto pelos seguintes componentes de hardware e software. Recursos de hardware HARDWARE QUANTIDADE CONFIGURATION Storage array 1 X-Brick 20 TB dual Hosts 4 Dell PowerEdge R620 • 2 x 8 núcleos @2,40 GHz, 380 GB de RAM • 1 x NICs de 1 GbE (rede de gerenciamento) • 1 x NICs de 10 GBE (rede de dados) • 2 x FC HBAs de 8 GB Máquinas virtuais (VMs) 8 Máquinas virtuais de SQL Server com 2 VMs por host Switches LAN 1 Switch Ethernet de 10 GBe Switches SAN 1 Fibre Channel Switch de 16 GB SOFTWARE VERSÃO OBSERVAÇÕES XtremIO v3.0 SO de armazenamento VMware vSphere v5.5 Hipervisor que hospeda todas as máquinas virtuais do SQL Server Microsoft Windows Windows 2012 R2 Sistema operacional que hospeda todos os SQL Servers SQL Server SQL Server 2014 Enterprise Edition Banco de dados Microsoft BenchCraft TPC-E Toolkit 1.12.0-1026 Driver de carga e do gerador de carga de trabalho Recursos de software 38 Projeto de armazenamento do SQL Server no XtremIO VOLUME VOLUME BANCO DE DADOS DE NAME SIZE TEMPDB/USUÁRIO 4 TB TempDB de 250 GB x 8 OBSERVAÇÕES (NOME DO VOLUME) Infra Sql1 Sql2 Sql3 Sql4 Sql5 Sql6 Sql7 Sql8 2 TB 2 TB 2 TB 2 TB 2 TB 2 TB 2 TB 2 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB Banco de dados do usuário de 1 TB • Datastore compartilhado para todos os vmdks de binários de SO/SQL 8 • Datastore compartilhado para todos os TempDBs • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 1 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 2 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 3 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 4 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 5 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 6 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 7 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk • Arquivos de dados de usuário do SQL Server e arquivos de registros do SQL Server 8 • Datastore dedicado com o datastore de 1:1 para o mapeamento de vmdk 39 APÊNDICEIII: ATUALIZAÇÃO DE SNAPSHOT As etapas a seguir descrevem em detalhes os scripts e os processos de Transact-SQL, Windows PowerShell e CLI do XtremIO para atualizar os dados de um banco de dados do SQL Server usando o recurso de atualização de snapshot do XtremIO: Etapa 1: Desconecte o banco de dados obsoleto. Execute a seguinte instrução SQL: sp_detach_db @dbname ='<nome do banco de dados>' Etapa 2: Desmonte os volumes de banco de dados. No PowerShell, primeiro liste todos os discos do XtremIO e, em seguida, mude o status dos discos de banco de dados específico para off-line e verifique se o disco está off-line. Get-disk -FriendlyName XtremIO* Set-Disk -Number 6 -IsOffline $True Get-Disk | Where-Object IsOffline –Eq $True Figura 22. Exemplos de scripts do PowerShell na desmontagem de um volume Etapa 3: Execute a atualização de snapshot no XtremIO. A Figura 23 mostra a relação pai-filho para o volume de origem de produção, o snapshot mestre e os snapshots de segundo nível para os bancos de dados. Figura 23. Exibição em árvore do snapshot de volume do XMS 40 Execute o comando CLI “create-snapshot-and-reassign” para atualizar o snapshot mestre do volume de origem de produção e, em seguida, execute “create-snapshot-and-reassign” em cada um dos volumes de geração de relatórios. O comando “createsnapshot-and-reassign” atualiza o volume de snapshot com dados de origem e salva e renomeia o snapshot antigo com um novo nome. Por exemplo, SnapshotSet.1437607649, conforme mostrado na Figura 24, é a versão antiga do sql1-master-snap. Figura 24. CLI do exemplo na atualização de snapshot O comando da CLI “create-snapshot-and-reassign” dá suporte à atualização de snapshot em nível de volume, consistency group ou conjunto de snapshot. Consulte a Figura 25 para obter detalhes sobre a sintaxe. Figura 25. Sintaxe da CLI para atualização de snapshot Etapa 4: Desmonte os volumes. No PowerShell, liste todos os discos do XtremIO e, em seguida, mude o status dos discos de banco de dados específico para on-line e verifique se o disco está on-line. Get-disk -FriendlyName XtremIO* | Where-Object IsOffline -Eq $True Set-Disk -Number 6 -IsOffline $False Get-disk -FriendlyName XtremIO* 41 Etapa 5: Conecte o bancos de dados. Execute a instrução de SQL “create database … on <filespec> for attach” para conectar o banco de dados, por exemplo: USE [master] GO CREATE DATABASE [oltp] ON ( FILENAME = N'J:\MSSQL_tpce_root.mdf' ), ( FILENAME = N'J:\TPCE_Log.ldf' ), ( FILENAME = N'J:\Fixed_1.ndf' ), ( FILENAME = N'J:\Scaling_1.ndf' ), ( FILENAME = N'J:\Scaling_2.ndf' ), ( FILENAME = N'J:\Scaling_3.ndf' ), ( FILENAME = N'J:\Growing_1.ndf' ), ( FILENAME = N'J:\Growing_2.ndf' ), ( FILENAME = N'J:\Growing_3.ndf' ) FOR ATTACH GO 42 REFERÊNCIAS Esta seção lista links relevantes para as conclusões descritas neste White paper. XtremIO https://support.emc.com/docu56210_XtremIO-2.2.x---4.0-Host-Configuration-Guide.pdf?language=en_US http://info.xtremio.com/rs/xtremio/images/White-Paper_Introduction-to-XtremIO-Storage-Array_Ver-3-0_H11752-5_Rev06_Draft_2014-07-02_1.pdf http://info.xtremio.com/rs/xtremio/images/h13183-so-xtremio-for-sql-server.pdf http://brazil.emc.com/collateral/white-papers/h13163-xtremio-microsoft-sql-server-wp.pdf http://brazil.emc.com/collateral/technical-documentation/h13925-emc-xtremio-data-warehouse-fast-track-ra.pdf Microsoft http://download.microsoft.com/download/0/F/B/0FBFAA46-2BFD-478F-8E567BF3C672DF9D/SQLCAT's%20Guide%20to%20Relational%20Engine.pdf https://support.microsoft.com/en-us/kb/2154845 https://support.microsoft.com/en-us/kb/2515143 http://blogs.msdn.com/b/psssql/archive/2011/01/13/sql-server-new-drives-use-4k-sector-size.aspx https://support.microsoft.com/en-us/kb/2510009 https://support.microsoft.com/en-us/kb/926930 https://technet.microsoft.com/en-us/library/dd894051(v=sql.100).aspx https://technet.microsoft.com/en-US/library/ms345584(v=SQL.105).aspx VMware http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2091600 http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1268 http://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1267 43