ZFS versus RAID: ocho discos Ironwolf, dos sistemas de archivos, un ganador

Ni el cronómetro ni la chaqueta de mezclilla son estrictamente necesarios, si somos honestos.
Acercarse / / Ni el cronómetro ni la chaqueta de mezclilla son estrictamente necesarios, si somos honestos.

Aurich Lawson / Getty

Ha pasado mucho tiempo, es hora de los resultados de las pruebas. Para comprender realmente los fundamentos del almacenamiento de la computadora, es importante explorar el impacto de varias topologías convencionales de matriz redundante de discos económicos (RAID) en el rendimiento. También es importante comprender qué es ZFS y cómo funciona. Pero en algún momento, las personas (especialmente los entusiastas de la informática en Internet) quieren números.

Primero, una breve nota: esta prueba, por supuesto, se basa en esos fundamentos. Nos basaremos en gran medida en las lecciones aprendidas al explorar las topologías de ZFS aquí. Si aún no es completamente sólido en la diferencia entre pool y vdevs o en el significado de ashift y recordsize, nosotros fuertemente Le recomiendo volver a visitar estos explicadores antes de sumergirse en las pruebas y los resultados.

Y aunque a todos les gusta ver los números en bruto, recomendamos más atención Cómo Estas cifras se refieren entre sí. Todos nuestros gráficos relacionan el rendimiento de dos a ocho topologías de agrupación ZFS de tamaño de disco con el rendimiento de un solo disco. Si cambia el modelo de disco, los números sin procesar cambiarán en consecuencia, pero en su mayor parte, su relación con el rendimiento de un solo disco no lo hace.

Equipo probado

Para esta prueba utilizamos las ocho bahías vacías de nuestro Hot Rod de almacenamiento del verano de 2019. Tiene una gran cantidad de RAM y más que suficiente potencia de CPU para pasar estas pruebas de almacenamiento sin sudar.

El hot rod de almacenamiento también tiene un adaptador de bus host (HBA) LSI-9300-8i dedicado que no se utiliza para nada más que los discos que se están probando. Las primeras cuatro ranuras en el chasis tienen nuestros datos de respaldo, pero estuvieron inactivas durante todas las pruebas aquí y están conectadas al controlador SATA de la placa base, completamente aisladas de nuestras matrices de prueba.

Como hemos probado

Como siempre, utilizamos Fio para realizar todas nuestras pruebas de conservación. Los ejecutamos localmente en el Hot Rod y utilizamos tres tipos básicos de pruebas de acceso aleatorio: lectura, escritura y sincronización de escritura. Cada una de las pruebas se realizó con bloques 4K y 1M, y ejecuté las pruebas con un solo proceso y iodepth = 1 y con ocho procesos con iodepth = 8.

Para todas las pruebas, estamos usando ZFS en Linux 0.7.5, como se encuentra en los repositorios principales para Ubuntu 18.04 LTS. Vale la pena señalar que ZFS en Linux 0.7.5 ahora tiene dos años: hay características y mejoras de rendimiento en las nuevas versiones de OpenZFS que no estaban disponibles en 0.7.5.

Probamos con 0.7.5 de todos modos, para gran molestia de al menos un desarrollador de OpenZFS muy experimentado, porque cuando ejecutamos las pruebas, 18.04 era el Ubuntu LTS más actualizado y una de las distribuciones estables más actuales en general. En el próximo artículo de esta serie, sobre cómo optimizar y optimizar ZFS, actualizaremos el nuevo Ubuntu 20.04 LTS y un ZFS mucho más reciente en Linux 0.8.3.

Configuración inicial: ZFS vs mdraid / ext4

Cuando probamos mdadm y ext4, en realidad no usamos todo el disco: creamos una partición de 1 TB en la cabeza de cada disco y usamos esas particiones de 1 TB. También tuvimos que invocar argumentos arcanos:mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0—Para evitar que la ubicación previa ext4 contamine nuestros resultados.

El uso de estas particiones relativamente pequeñas en lugar de todo el disco era una necesidad práctica, ya que ext4 necesita volcar todo el sistema de archivos creado y dispersar los bloques de metadatos previamente asignados. Si hubiéramos usado discos completos, el espacio utilizable en la topología RAID6 de ocho discos habría sido de aproximadamente 65 TiB y habría tomado varias horas para formatear, con esperas angustiantes similares cada topología probada.

Afortunadamente, ZFS no necesita o no quiere preasignar bloques de metadatos: los crea sobre la marcha tan pronto como sean necesarios. Así que alimentamos ZFS para cada disco Ironwolf de 12TB en su totalidad y no tuvimos que esperar por procedimientos de formateo largos: cada topología, incluso la más grande, estaba lista para usar un segundo o dos después de la creación, sin argumentos especiales necesarios .

ZFS vs RAID convencional

Una matriz RAID convencional es una capa de abstracción simple que se encuentra entre un sistema de archivos y un conjunto de discos. Presenta toda la matriz como un dispositivo de «disco» virtual que, desde el punto de vista del sistema de archivos, es indistinguible de un solo disco real, aunque es significativamente más grande de lo que podría ser el disco individual más grande.

ZFS es un animal completamente diferente e incluye funciones que normalmente podrían ocupar tres capas separadas en un sistema Unix tradicional. Es un administrador de volumen lógico, un sistema RAID y un sistema de archivos incluido en uno. La fusión de capas tradicionales como esta ha provocado que muchos administradores superiores rechinan los dientes indignados, pero hay muy buenas razones para hacerlo.

Hay un absoluto tonelada Se recomienda encarecidamente que las funciones ofrecidas por ZFS y los usuarios que no estén familiarizados con ellas echen un vistazo a nuestra cobertura del sistema de archivos de próxima generación de 2014 para obtener una descripción básica y nuestro artículo reciente ZFS 101 para una explicación mucho más completa.

Megabyte vs Mebibytes

Como en el último artículo, nuestras unidades de medición de rendimiento aquí son kibibyte (KiB) y mebibytes (MiB). Un kibibyte es de 1.024 bytes, un mebibyte es de 1.024 kibibyte y así sucesivamente, en contraste con un kilobyte, que es de 1.000 bytes, y un megabyte, que es de 1.000 kilobytes.

Kibibytes y sus hermanos mayores siempre han sido las unidades estándar para almacenar computadoras. Antes de la década de 1990, los profesionales informáticos simplemente se referían a ellos como K y M y usaban prefijos métricos inexactos al describirlos. Pero cada vez que su sistema operativo se refiere a GB, MB o KB, en términos de espacio libre, velocidad de red o cantidad de RAM, en realidad se refiere a GiB, MiB y KiB.

Los proveedores de almacenamiento, desafortunadamente, finalmente detectaron la diferencia entre las métricas como una forma de unidades de «gigabytes» más baratas y luego unidades de «terabyte», por lo que un SSD de 500 GB es en realidad solo 465 GiB y discos. Los discos duros de 12 TB como los que volvemos a probar hoy en día son realmente solo 10.9 TB cada uno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *