Publicado por primera vez en TECHNET el 11 de agosto de 2017
Hola! Soy Cosmos. Sígueme en Twitter @cosmosdarwin.
Antecedentes
Storage Spaces Direct en Windows Server 2016 y Windows Server 2019 cuenta con una caché de lectura y escritura integrada y persistente para maximizar el rendimiento del almacenamiento. Puede leer todo sobre ello en Entender la caché en Storage Spaces Direct . En las implementaciones all-flash, las unidades NVMe suelen almacenar en caché los SSD SATA/SAS; en las implementaciones híbridas, los SSD NVMe o SATA/SAS almacenan en caché los HDD.
En cualquier caso, las unidades de caché servirán para la inmensa mayoría de la IO, incluido el 100% de las escrituras. Esto es esencial para ofrecer el rendimiento inigualable de Storage Spaces Direct, tanto si se mide en millones de IOPS como en Tb/s de rendimiento de E/S o en latencia constante de menos de un milisegundo.
Pero nada es gratis: estas unidades de caché pueden desgastarse rápidamente.
Revisión: Qué es el desgaste del flash
Las unidades de estado sólido de hoy en día están compuestas casi universalmente por flash NAND, que se desgasta con el uso. Cada célula de memoria flash sólo puede escribirse un número determinado de veces antes de que deje de ser fiable. (Hay numerosos escritos en línea que cubren todos los detalles sangrientos – incluyendo en Wikipedia).
Puedes ver cómo sucede esto en Windows mirando el contador de fiabilidad de desgaste en PowerShell:
PS C:\> Get-PhysicalDisk | Get-StorageReliabilityCounter | Select Wear
Aquí está la salida de mi portátil – mi SSD es alrededor del 5% desgastado después de dos años.
Nota: No todas las unidades informan con precisión este valor a Windows. En algunos casos, el contador puede estar en blanco. Consulte a su fabricante para ver si tiene herramientas propias que pueda utilizar para recuperar este valor.
En general, las lecturas no desgastan la memoria flash NAND.
Cuantificar la resistencia de la memoria flash
Medir el desgaste es una cosa, pero ¿cómo podemos predecir la longevidad de un SSD?
La «resistencia» del flash se suele medir de dos maneras:
- Escrituras de la unidad por día (DWPD)
- Terabytes escritos (TBW)
Ambos enfoques se basan en el período de garantía del fabricante para la unidad, su llamada «vida útil».
Escrituras de la unidad por día (DWPD)
Las escrituras de la unidad por día (DWPD) miden cuántas veces se podría sobrescribir el tamaño completo de la unidad cada día de su vida. Por ejemplo, suponga que su unidad es de 200 GB y su período de garantía es de 5 años. Si su DWPD es 1, significa que puede escribir 200 GB (su tamaño, una vez) en ella cada día durante los próximos cinco años.
Si multiplica eso, son 200 GB por día × 365 días/año × 5 años = 365 TB de escrituras acumuladas antes de que tenga que sustituirla.
Si su DWPD fuera 10 en lugar de 1, significaría que puede escribir 10 × 200 GB = 2 TB (su tamaño, diez veces) en ella cada día. En consecuencia, son 3.650 TB = 3,65 PB de escrituras acumuladas durante 5 años.
Terabytes escritos (TBW)
Los Terabytes escritos (TBW) miden directamente la cantidad que se puede escribir acumulativamente en la unidad durante su vida útil. Esencialmente, sólo incluye la multiplicación que hicimos anteriormente en la propia medición.
Por ejemplo, si su unidad está clasificada para 365 TBW, eso significa que puede escribir 365 TB en ella antes de tener que sustituirla.
Si su período de garantía es de 5 años, eso equivale a 365 TB ÷ (5 años × 365 días/año) = 200 GB de escrituras por día. Si su unidad tenía un tamaño de 200 GB, eso equivale a 1 DWPD. Por su parte, si su unidad tenía una capacidad de 3,65 PBW = 3.650 TBW, eso equivale a 2 TB de escrituras al día, o 10 DWPD.
Como puede ver, si conoce el tamaño de la unidad y el período de garantía, siempre puede pasar de DWPD a TBW o viceversa con unas simples multiplicaciones o divisiones. Las dos medidas son realmente muy similares.
¿Cuál es la diferencia?
La única diferencia real es que el DWPD depende del tamaño de la unidad mientras que el TBW no.
Por ejemplo, considere un SSD que puede tomar 1.000 TB de escrituras durante su vida útil de 5 años.
Suponga que la unidad SSD es de 200 GB:
1.000 TB ÷ (5 años × 365 días/año × 200 GB) = 2,74 DWPD
Suponga ahora que la unidad SSD es de 400 GB:
1.000 TB ÷ (5 años × 365 días/año × 400 GB) = 1,37 DWPD
¡El DWPD resultante es diferente! ¿Qué significa esto?
Por un lado, la unidad más grande de 400 GB puede realizar exactamente las mismas escrituras acumuladas durante su vida útil que la unidad más pequeña de 200 GB. Si miramos el TBW, esto está muy claro: ambas unidades están clasificadas para 1.000 TBW. Sin embargo, si se observa la DWPD, la unidad más grande parece tener la mitad de resistencia. Se podría argumentar que, dado que bajo la misma carga de trabajo, el rendimiento sería «el mismo», usar el TBW es mejor.
Por otro lado, se podría argumentar que la unidad de 400 GB puede proporcionar almacenamiento para más carga de trabajo porque es más grande, y por lo tanto sus 1.000 TBW se extienden más, y realmente tiene sólo la mitad de la resistencia. Por este razonamiento, el uso de DWPD es mejor.
La línea de fondo
Usted puede utilizar la medida que prefiere. Hoy en día es casi universal ver tanto el TBW como el DWPD en las hojas de especificaciones de las unidades. Dependiendo de sus suposiciones, hay un caso convincente para cualquiera de los dos.
Recomendación para Storage Spaces Direct
Nuestra recomendación mínima para Storage Spaces Direct aparece en la página de requisitos de hardware. A partir de mediados de 2017, para las unidades de caché:
- Si elige medir en DWPD, recomendamos 3 o más.
- Si elige medir en TBW, recomendamos 4 TBW por día de vida útil. Las hojas de especificaciones suelen proporcionar el TBW acumulado, que tendrá que dividir por su vida útil. Por ejemplo, si su unidad tiene un periodo de garantía de 5 años, entonces 4 TB × 365 días/año × 5 años = 7.300 TBW = 7,3 PBW en total.
A menudo, una de estas medidas resultará ser ligeramente menos estricta que la otra.
Puede utilizar la medida que prefiera.
No existe una recomendación mínima para las unidades de capacidad.
Adenda: amplificación de la escritura
Puede verse tentado a razonar sobre la resistencia a partir de los números de IOPS, si los conoce. Por ejemplo, si su carga de trabajo genera (en promedio) 100.000 IOPS que son (en promedio) 4 KiB cada uno de los cuales (en promedio) el 30% son escrituras, puede pensar:
100.000 × 30% × 4 KiB = 120 MB/s de escrituras
120 MB/s × 60 seg/min × 60 min/hora × 24 horas = aprox. 10 TBW/día
Si tiene cuatro servidores con dos unidades de caché cada uno, eso es:
10 TBW/día ÷ (8 unidades de caché totales) = aproximadamente 1,25 TBW/día por unidad
¡Interesante! ¡Menos de 4 TBW/día!
Desgraciadamente, esta es una matemática errónea porque no tiene en cuenta la amplificación de la escritura.
La amplificación de la escritura se produce cuando una escritura (en la capa del usuario o de la aplicación) se convierte en varias escrituras (en la capa del dispositivo físico). La amplificación de escritura es inevitable en cualquier sistema de almacenamiento que garantice la resiliencia y/o la consistencia de las caídas. El ejemplo más flagrante en Storage Spaces Direct es la réplica a tres bandas: escribe todo tres veces, en tres unidades diferentes.
También hay otras fuentes de amplificación de escritura: los trabajos de reparación generan IO adicionales; la deduplicación de datos genera IO adicionales; el sistema de archivos, y muchos otros componentes, generan IO adicionales al persistir sus metadatos y estructuras de registro; etc. De hecho, la propia unidad de disco genera amplificación de escritura a partir de actividades internas como la recolección de basura. (Si le interesa, consulte la metodología estándar JESD218 para saber cómo incluir esto en los cálculos de resistencia).
Todo esto es necesario y bueno, pero hace que sea difícil derivar la actividad IO a nivel de la unidad en la parte inferior de la pila de la actividad IO a nivel de la aplicación en la parte superior de la pila de una manera consistente. Por eso, basándonos en nuestra experiencia, publicamos la recomendación mínima de DWPD y TBW.
¡Háganos saber lo que piensa! 🙂