Primeira publicação na TECHNET em 11 de agosto de 2017
Hi! Eu sou o Cosmos. Siga-me no Twitter @cosmosdarwin.
Background
Storage Spaces Direct no Windows Server 2016 e Windows Server 2019 apresenta um cache embutido, persistente, de leitura e escrita para maximizar o desempenho de armazenamento. Você pode ler tudo sobre isso em Understanding the cache in Storage Spaces Direct . Em implantações em todos os instantes, as unidades NVMe normalmente usam cache para SSDs SATA/SAS; em implantações híbridas, o cache NVMe ou SSDs SATA/SAS para HDDs.
Em qualquer caso, as unidades de cache servirão à esmagadora maioria das E/S, incluindo 100% das escritas. Isto é essencial para fornecer o desempenho inigualável do Storage Spaces Direct, quer você meça isso em milhões de IOPS , Tb/s de IO, ou latência consistente de sub-milissegundo.
Mas nada é grátis: essas unidades de cache estão sujeitas a se desgastar rapidamente.
Revisão: O que é desgaste do flash
As unidades de estado sólido hoje em dia são quase universalmente compostas por flash NAND, que se desgasta com o uso. Cada célula de memória flash só pode ser escrita tantas vezes antes de se tornar não confiável. (Há inúmeras grandes escritas online que cobrem todos os detalhes sangrentos – inclusive na Wikipédia).
Você pode ver isso acontecer no Windows olhando para o contador de confiabilidade Wear no PowerShell:
PS C:\ > Get-PhysicalDisk | Get-StorageReliabilityCounter | Select Wear
Here é a saída do meu portátil – o meu SSD está cerca de 5% gasto após dois anos.
Nota: Nem todas as unidades relatam esse valor com precisão para o Windows. Em alguns casos, o contador pode estar em branco. Verifique com seu fabricante para ver se eles têm ferramentas proprietárias que você pode usar para recuperar este valor.
Geralmente, as leituras não desgastam NAND flash.
Quantificar a resistência do flash
Medir o desgaste é uma coisa, mas como podemos prever a longevidade de uma SSD?
Resistência do flash é normalmente medida de duas maneiras:
- Drive Writes Per Day (DWPD)
- Terabytes Written (TBW)
Both approaches are based on the manufacturer’s warranty period for the drive, its so-called “lifetime”.
Digital Writes Per Day (DWPD)
Drive Writes Per Day (DWPD) mede quantas vezes você poderia sobrescrever o tamanho inteiro da unidade a cada dia de sua vida útil. Por exemplo, suponha que a sua unidade tem 200 GB e o seu período de garantia é de 5 anos. Se seu DWPD for 1, isso significa que você pode gravar 200 GB (seu tamanho, uma vez) nele todos os dias durante os próximos cinco anos.
Se você multiplicar isso, isso significa 200 GB por dia × 365 dias/ano × 5 anos = 365 TB de gravações acumuladas antes que você precise substituí-lo.
Se seu DWPD fosse 10 em vez de 1, isso significaria que você pode gravar 10 × 200 GB = 2 TB (seu tamanho, dez vezes) nele todos os dias. Correspondentemente, são 3.650 TB = 3,65 PB de escritas cumulativas ao longo de 5 anos.
Terabytes Escritos (TBW)
Terabytes Escritos (TBW) mede diretamente o quanto você pode escrever cumulativamente na unidade ao longo de sua vida útil. Essencialmente, inclui apenas a multiplicação que fizemos acima na própria medida.
Por exemplo, se a sua unidade é classificada para 365 TBW, isso significa que você pode escrever 365 TB nela antes de precisar substituí-la.
Se o período de garantia for de 5 anos, isso funciona até 365 TB ÷ (5 anos × 365 dias/ano) = 200 GB de gravações por dia. Se a sua unidade tinha 200 GB de tamanho, isso é equivalente a 1 DWPD. De forma correspondente, se a sua unidade foi classificada para 3,65 PBW = 3.650 TBW, isso equivale a 2 TB de gravações por dia, ou 10 DWPD.
Como você pode ver, se você sabe o tamanho da unidade e o período de garantia, você sempre pode obter de DWPD para TBW ou vice-versa com algumas multiplicações ou divisões simples. As duas medidas são realmente muito semelhantes.
Qual é a diferença?
A única diferença real é que o DWPD depende do tamanho da unidade, enquanto o TBW não depende.
Por exemplo, considere um SSD que pode levar 1.000 TB de gravações ao longo de sua vida útil de 5 anos.
Ponha que a SSD seja 200 GB:
1.000 TB ÷ (5 anos × 365 dias/ano × 200 GB) = 2,74 DWPD
Agora suponha que a SSD seja 400 GB:
1.000 TB ÷ (5 anos × 365 dias/ano × 400 GB) = 1,37 DWPD
O DWPD resultante é diferente! O que é que isso significa?
Por um lado, a unidade maior de 400 GB pode fazer exactamente a mesma escrita acumulada ao longo da sua vida útil que a unidade menor de 200 GB. Olhando para a TBW, isto é muito claro – ambas as unidades são classificadas para 1.000 TBW. Mas olhando para o DWPD, a unidade maior parece ter apenas metade da resistência! Você pode argumentar que, porque sob a mesma carga de trabalho, ele executaria “o mesmo”, usando o TBW é melhor.
Por outro lado, você pode argumentar que a unidade de 400 GB pode fornecer armazenamento para mais carga de trabalho porque é maior, e portanto seus 1.000 TBW se espalha mais finamente, e realmente tem apenas metade da resistência! Por este raciocínio, usar DWPD é melhor.
A linha de fundo
Você pode usar a medida que preferir. É quase universal ver tanto o TBW como o DWPD aparecerem hoje em dia nas folhas de especificações da unidade. Dependendo de suas suposições, há um caso convincente para um dos dois.
Recomendação para Espaços de Armazenamento Direto
Nossa recomendação mínima para Espaços de Armazenamento Direto está listada na página Requisitos de Hardware. A partir de meados de 2017, para unidades de cache:
- Se você optar por medir em DWPD, recomendamos 3 ou mais.
- Se você optar por medir em TBW, recomendamos 4 TBW por dia de vida útil. As folhas de especificações geralmente fornecem TBW cumulativamente, que você precisará dividir por sua vida útil. Por exemplo, se a sua unidade tem um período de garantia de 5 anos, então 4 TB × 365 dias/ano × 5 anos = 7.300 TBW = 7,3 PBW total.
A maior parte das vezes, uma destas medidas funcionará para ser ligeiramente menos rigorosa do que a outra.
Pode usar a medida que preferir.
Não há recomendação mínima para unidades de capacidade.
Adendo: Escreva amplificação
Pode ser tentado a raciocinar sobre resistência a partir de números IOPS, se os conhecer. Por exemplo, se a sua carga de trabalho gera (em média) 100.000 IOPS que são (em média) 4 KiB cada um dos quais (em média) 30% são escritas, você pode pensar:
100.000 × 30% × 4 KiB = 120 MB/s de escritas
120 MB/s × 60 segs/min × 60 mins/hora × 24 horas = aproximadamente 10 TBW/dia
Se você tiver quatro servidores com duas unidades de cache cada, isto é:
10 TBW/dia ÷ (8 unidades de cache total) = aprox. 1,25 TBW/dia por unidade
Interessando! Menos de 4 TBW/dia!
Felizmente, isto é matemática defeituosa porque não conta para a amplificação de escrita.
Aplicação de escrita é quando uma escrita (na camada do usuário ou da aplicação) se torna múltipla escrita (na camada do dispositivo físico). A amplificação de escrita é inevitável em qualquer sistema de armazenamento que garanta a resiliência e/ou a consistência do crash. O exemplo mais gritante em Storage Spaces Direct é o espelho de três vias: ele grava tudo três vezes, em três drives diferentes.
Existem outras fontes de amplificação de gravação também: trabalhos de reparo geram IO adicional; a deduplicação de dados gera IO adicional; o sistema de arquivos, e muitos outros componentes, geram IO adicional pela persistência de seus metadados e estruturas de log; etc. Na verdade, a própria unidade gera amplificação de escrita a partir de atividades internas como a coleta de lixo! (Se você estiver interessado, confira a metodologia padrão JESD218 para saber como considerar isso nos cálculos de endurance).
Isso tudo é necessário e bom, mas torna difícil derivar a atividade IO de nível de drive na parte inferior da pilha a partir da atividade IO de nível de aplicação na parte superior da pilha de qualquer forma consistente. É por isso que, com base em nossa experiência, publicamos a recomendação mínima de DWPD e TBW.
Deixe-nos saber o que você pensa! 🙂