¿Cómo afecta el ancho de RAIDZ a la latencia de lectura aleatoria en cargas de trabajo de IA?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

Un RAIDZ más ancho puede mejorar la eficiencia de capacidad y el ancho de banda secuencial, pero la latencia de las lecturas aleatorias pequeñas suele estar limitada por el comportamiento del vdev, la disposición de los bloques y la gestión de colas.

Una carga de trabajo de IA doméstica suele combinar archivos de modelos grandes con pequeños metadatos, páginas de índices vectoriales, miniaturas y lecturas de bases de datos. Añadir discos a un vdev RAIDZ permite que cada franja tenga más columnas de datos posibles, pero un bloque pequeño individual puede no utilizarlas todas y un solo vdev sigue representando un único dominio de programación. Las configuraciones más anchas también pueden aumentar el trabajo en modo degradado y la latencia de cola cuando varios servicios emiten solicitudes aleatorias simultáneamente.

El ancho cambia las columnas de datos, pero no el número de vdevs

RAIDZ distribuye los datos y la paridad entre los discos de un dispositivo virtual. Un vdev más ancho aumenta la capacidad utilizable por disco de paridad y puede proporcionar más ancho de banda agregado para registros grandes, pero el pool sigue equilibrando la E/S de alto nivel entre vdevs, en lugar de tratar cada disco como un destino independiente de lectura aleatoria.

La disposición RAIDZ de OpenZFS documenta los conceptos de disposición de RAIDZ y dRAID, incluidas recomendaciones para cargas de trabajo con bloques pequeños. El modelo explica por qué añadir un vdev especial en espejo puede ser más importante para los metadatos que simplemente ampliar el grupo RAIDZ de datos.

El tamaño de bloque, la compresión, recordsize y la alineación determinan cuántas columnas toca una lectura. Un bloque pequeño comprimido puede ocupar menos sectores y discos que una lectura de un archivo de modelo grande, por lo que un mismo ancho no produce un único resultado de latencia.

Las lecturas aleatorias dependen de las IOPS y de la distribución de la cola

Las solicitudes secuenciales grandes pueden atenderse en paralelo en varios discos, mientras que las lecturas pequeñas independientes están limitadas por la forma en que el vdev programa y completa cada solicitud. Varios vdevs más estrechos crean más destinos de E/S de alto nivel, pero consumen más discos de paridad y cambian los dominios de fallo.

Un análisis de ingeniería sobre el comportamiento de las lecturas aleatorias mide este comportamiento en distintas disposiciones RAIDZ y muestra por qué anchos de franja menores pueden producir más IOPS del pool cuando los mismos discos se dividen en más vdevs. Es un efecto de topología, no una regla universal sobre la velocidad de los discos.

Las lecturas que aciertan en la caché ARC evitan los discos, y un vdev de metadatos o especial puede trasladar determinados bloques pequeños a medios más rápidos. Las pruebas comparativas que caben por completo en la RAM no pueden revelar la diferencia de latencia en disco atribuida al ancho de RAIDZ.

Los grupos más anchos aumentan la relación entre la recuperación y el riesgo de latencia de cola

Durante un scrub, una resilverización o ante la ausencia de un disco, las lecturas pueden requerir la reconstrucción a partir de las columnas supervivientes. Un grupo más ancho expone más discos a la carga de trabajo degradada de cada vdev y puede prolongar el tiempo durante el cual las consultas de IA compiten con la E/S de recuperación.

Una descripción general de la topología de vdev de ingeniería de ZFS compara las propiedades de los vdevs en espejo y RAIDZ, y explica que el rendimiento del pool sigue la topología de los vdevs. Proporciona la distinción arquitectónica necesaria antes de interpretar las pruebas comparativas del número de discos. Este efecto debe seguir siendo medible con la carga de trabajo prevista para el servidor doméstico.

El límite del análisis está en extrapolar una prueba de rendimiento secuencial a la búsqueda vectorial o a los metadatos de fotos. Las lecturas almacenadas en caché, los bloques pequeños, la profundidad de cola, recordsize y el estado degradado pueden invertir la ventaja aparente de un grupo más ancho. La distinción importa cuando varias etapas de una canalización comparten el mismo presupuesto de almacenamiento y memoria.

-15% OFF

Preguntas frecuentes sobre el ancho de RAIDZ para IA local

¿Un vdev RAIDZ más ancho siempre es más lento para las lecturas aleatorias?

No. Los resultados dependen del tamaño de bloque, los aciertos de caché, la compresión, los discos, la profundidad de cola y la topología del pool. La preocupación habitual es que un único vdev más ancho no añade IOPS independientes de alto nivel del mismo modo que añadir otro vdev.

¿Los espejos son siempre mejores para las bases de datos vectoriales?

Los espejos suelen proporcionar más IOPS aleatorias pequeñas y una recuperación más sencilla, pero utilizan más capacidad bruta. La decisión debe incluir la durabilidad, el espacio utilizable, el diseño de las copias de seguridad y la carga de trabajo medida de la base de datos, no solo la latencia. Este límite debe probarse con datos domésticos representativos en lugar de darse por supuesto.

¿Puede un vdev especial solucionar la latencia de los metadatos en RAIDZ?

Un vdev especial redundante puede almacenar metadatos y, opcionalmente, bloques pequeños, reduciendo la presión sobre el RAIDZ de datos. Se convierte en una infraestructura crítica del pool, por lo que perderlo puede provocar la pérdida del pool y su redundancia debe corresponderse con el riesgo.

Compara el ancho con lecturas en frío y degradadas

Reproduce lecturas representativas de páginas vectoriales, SQLite o metadatos, miniaturas y archivos de modelos con tamaños de bloque y profundidades de cola controlados. Mide la latencia p50, p95 y p99, las IOPS, la proporción de aciertos de ARC, la utilización de los discos y la interferencia de scrub o resilverización en las topologías candidatas.

Relaciona el acceso remoto a modelos con las limitaciones de red descritas en el acceso remoto a modelos. Mantén constantes el número total de discos, los modelos de unidad, recordsize, la compresión, el conjunto de datos, el estado de la caché y el espacio libre, y prueba condiciones de caché fría en lugar de limitarte a lecturas repetidas en caliente.

Elige la topología considerando conjuntamente el objetivo de latencia, la capacidad utilizable, la redundancia y el comportamiento de recuperación. Si la E/S aleatoria de IA es crítica, compara varios vdevs o un nivel especial redundante con un único RAIDZ más ancho, en lugar de asumir que añadir columnas proporciona IOPS equivalentes.

Centro de Tecnología e IA

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.