sexta-feira, 28 de novembro de 2014

All-flash de armazenamento ou você vai se contentar com híbrido? Como decidir


Internet Security Threat Report 2014


Lembre-se surra? Voltar nos primeiros dias de sistemas de memória virtual do servidor, a quantidade de RAM era tão limitado que o sistema operacional passou a maior parte de seu tempo para a paginação de dados em seus discos, deixando pouco ou nenhum tempo para aplicações de processamento.


Foi o que aconteceu porque não havia uma incompatibilidade total entre o número de aplicações, seus conjuntos de trabalho - o seu próprio código, mais os dados que eles têm de trabalhar - e a quantidade disponível de memória.







Estes dias RAM é mais abundante e raramente ouvimos sobre este problema. Mas surra ainda é uma preocupação, sempre que a quantidade de armazenamento de computador rápido e caro é limitado e seu conteúdo são buscados de uma loja muito maior, muito mais barato e também muito mais lento - como pode ser o caso com matrizes de flash / disco híbridos.


Você não pode dar ao luxo de over-disposição a loja rápido quanto que custa muito caro, mas nem se pode dar ao luxo de sub-disposição, como tempo de execução do aplicativo pode ser estendido a níveis grotescos.


Tendo isso em mente, vamos examinar arrays de disco, matrizes all-Flash e Flash híbrido / arrays de disco.


Frações de segundos


Disk arrays manter grandes quantidades de dados e responder a pedidos para a ler ou escrever novos dados a velocidades de milissegundo - milésimos de segundo.


Estes dados devem ser lidos ou escritos a partir da memória de um servidor, um lugar em que o acesso aos dados acontece em nanossegundo - bilionésimos de segundo - os níveis. É uma disparidade 10 6 no tempo de acesso aos dados, que se tornou uma preocupação crescente como servidores trazer mais recursos da CPU para carregar em aplicações com multi-core, processadores multi-socket.


CPU tempo de espera para IO de disco está se tornando insustentável e memória flash está sendo usado como um mais rápido do que o disco de armazenamento de acesso intermediário entre matrizes e servidores de disco.


O Flash latência de acesso a dados é na área de microssegundo - milionésimos de segundo - cerca de mil vezes mais rápido do que o disco.


Pequenas quantidades de flash são usados ​​em servidores como um cache ou como armazenamento SSD de conexão direta. Grandes quantidades de Flash estão sendo usados ​​em matrizes de armazenamento diretamente.


Há uma dependência aqui em dados de trabalho definir o tamanho eo número de tais conjuntos. Se alguns deles caber dentro de um cartão de memória flash PCIe ou alguns SSDs, então as coisas são boas. Mas se eles são múltiplos terabytes de tamanho e há muitos deles, em seguida, encaixe-los todos em um único servidor não é viável.


Contar o custo


Todos os flash-matrizes são uma resposta. Ofertas da inicialização fornecedores, tais como armazenamento Pure, SolidFire e Tegile pode ter 50TB ou mais de capacidade bruta, 1500TB-plus depois de desduplicação e compressão. Eles se alimentam de dados de acesso aleatório para servidores muito, muito mais rápido do que uma matriz de disco, embora a um custo mais elevado.


Eles podem dar um custo por GB de menos de US $ 5 após a deduplicação e compressão. Este não é um número absoluto como a capacidade efectiva de um cliente realmente recebe depende da quantidade de dados repetidos na sua informação de camadas.


Dado que arrays de disco são muito lento, flash híbrido / arrays de disco parecido com uma alternativa natural, com perto de tudo-flash desempenho no próximo preços all-disco.


Dados de alta taxa de acesso é armazenada em flash, com a chamada mais frio, ou a taxa de acesso de baixo, os dados armazenados no disco. O flash pode ser tratado como um cache com movimento dinâmico de dados necessários, com ele sobre-gravação de dados após sua exigência de residir em flash.


Isso pode ser um cache de leitura e / ou um cache de gravação.


Se o flash é tratado como uma camada de armazenamento em vez de um cache temporário, em seguida, ambos leituras e gravações são acelerados.


Em geral, isso é tudo muito bem, mas você precisa usar o flash suficiente para evitar a re-ocorrência de goleada. Se ocorrer uma falha flash, com dados queria que não está no cache, então ele tem de ser obtida a partir do disco, e isso significa uma espera IO. Se isso acontece muito para qualquer trabalho criado, em seguida, esse conjunto pode precisar ser atualizado e recarregado.


Se há uma quantidade limitada de flash de a taxa de flash-miss vai aumentar, a definir taxa de atualização de trabalho irá aumentar, e a matriz vai gastar um monte de tempo movendo conjuntos de trabalho dentro e fora de flash de como eles se tornam necessária a aplicativos em execução na servidores conectados.


Limitações de trabalho


Isto tem dois efeitos. Um aplicativo individual em uma máquina virtual precisa mais tempo para executar, porque está à espera de IO de disco. Um servidor indivíduo será capaz de correr menos máquinas virtuais porque cada um leva mais tempo para executar, à espera de IO de disco, enquanto o seu conjunto de trabalho é renovado e recarregado.


Dimensionamento de RAM, cache e disco é, em teoria, bastante viável. Suponha que temos 10 servidores, cada um com quatro CPUs, cada um com oito núcleos e 160 GB de RAM. Os aplicativos são máquinas virtuais e cada um precisa de dois núcleos. Em seguida, 16 máquinas virtuais podem ser executados por cada servidor, cada uma com 10 GB de memória.


O conjunto de dados média útil de cada máquina virtual é, digamos, 100GB, e, portanto, a matriz de flash em rede ou de flash híbrido / matriz de disco precisa 16TB de capacidade de manter '160 máquinas virtuais "de dados do conjunto de trabalho dos 10 servidores.


Este é simples demais. Há um monte de média acontecendo aqui e um pressuposto implícito de que sabemos dos limites do conjunto de trabalho de um aplicativo.


Raramente é o caso. Em vez disso, o conjunto pode ser definido por tempo desde o último acesso. Todos os dados que foram acessados ​​pelo menos uma vez desde algum tempo de início arbitrário pode ser considerado como estando no conjunto de trabalho, ou seja, o tamanho total do conjunto de dados do aplicativo é maior do que o conjunto de trabalho.


Isso também significa que, se o aplicativo acessa dados amplamente em todo este conjunto, e de forma aleatória, que os dados são constantemente envelhecimento, enquanto que o processo executa mais e mais dados estão sendo acessados ​​e, portanto, qualificado para estar no conjunto de trabalho, para estar em flash.


A operação de movimentação de dados utiliza-se de recursos também. Se ele se move pequenos blocos de dados, então piscar os conteúdos são mais adequadas às necessidades de aplicação, mas mais processamento é necessário para alcançá-lo.


Se ele se move grandes blocos de dados menos operações são necessários, mas erra Flash são mais provável. Aplicações em máquinas virtuais podem usar uma variedade de tamanhos de blocos, digamos, de 4KB para 1,924KB.


Você pode resolver isso de conhecer o app em alguns casos, com o Oracle usando 8KB IO ou MS SQL usando 64KB. A ferramenta VMware como vscsiStats pode ser usado para descobrir um tamanho de bloco usado por uma máquina virtual particular.



O tamanho de dados de aplicativo e de perfil de acesso globais mudanças ao longo do tempo



Outra pegadinha é que, se a população máquina virtual não tem uma distribuição uniforme de trabalho criados tamanhos, em seguida, um esquema de tamanho médio pode ser inadequado.


No entanto, outra é que seu tamanho de dados do aplicativo e de perfil de acesso globais mudanças ao longo do tempo; o tamanho do cache do flash adequado pode tornar-se progressivamente menos ideal.


Idealmente, o seu fornecedor utiliza uma ferramenta de software para monitorar e analisar a aplicação do conjunto de trabalho características da taxa de tamanho e de acesso. Ela irá produzir dados que podem ser usados ​​para gerar cache de flash ou informações dimensionamento camada flash.


Por exemplo, ele pode relatar que o requisito total de armazenamento de dados para suas aplicações é 79TB, dos quais 21TB deve estar em flash para permitir que 95 por cento dos pedidos de IO a ser cumprida em menos de 10 microssegundos.


Software colocação de dados automatizada pode monitorar as taxas de acesso aos dados e promover os dados do disco para a camada de flash, se a sua taxa de acesso sobe, ou rebaixá-lo a partir do Flash para o disco se a sua taxa de acesso cai abaixo de um limiar.


A migração de dados de e para um cache de flash é tipicamente muito mais dinâmico do que para e de uma camada de flash.


Ferramentas do comércio


Dell, por exemplo, tem uma ferramenta de balanceamento de carga matriz híbrida. Ele monitora página "calor" por alguns segundos, com acessos a dados aumentando o calor. O valor de calor diminui a uma taxa, precisando acessos frescas para mantê-lo.


Um algoritmo calcula a probabilidade de páginas de dados que está sendo acessado com base em seu calor e a cada dois minutos, eles são movidos automaticamente de e para o Flash como seus calor sobe ou desce.


IOControl SPX matriz híbrida da SanDisk tem um esquema baseado qualidade de serviço (QoS), com diferentes níveis de serviço de armazenamento definidas por IOPS, o mínimo de latência e largura de banda.


Poderia haver três diferentes chamados de missão crítica, ou não-crítica críticas para os negócios, com volumes de dados de aplicativos designados para o apropriado. Os recursos da matriz são definidos pelas necessidades globais de QoS e dimensionado a partir deles.


Garantidos IOPS mínimos de um volume de aplicação, o rendimento e não-to-exceder latência são monitorados em tempo real. Com base nesse monitoramento do sistema operacional IOControl usa um motor de QoS para mover dados entre flash e disco.


Isso é para garantir que os aplicativos com um alvo QoS superior têm uma maior percentagem de blocos em flash. Ones com configurações de QoS mais baixas têm mais blocos no disco.


Nimble armazenamento tem seu esquema de layout Sequential Cache Acelerado, que armazena dados ativos em tempo real no SSDs como uma forma de acelerar a resposta a solicitações de leitura. Alega velocidades de resposta são 10 vezes mais rápido do que com os regimes de flash alternativas.


Cache do Flash matriz de rede e dimensionamento nível é uma área problemática específica. É uma arte com seu próprio conjunto de habilidades técnicas e temos tocado apenas a superfície aqui.


Sua melhor conselho é usar os recursos técnicos do seu fornecedor híbrido-array e dar-lhe o acesso aos dados aplicativo de servidor que necessite para o exercício de dimensionamento de flash. ®



Nenhum comentário:

Postar um comentário