OpenZFS 2.1 está disponible. Hablemos de sus nuevos vdevs dRAID

OpenZFS ha agregado ubicaciones RAID distribuidas a su kit de herramientas con la versión 2.1.0 de hoy.
Acercarse / OpenZFS ha agregado ubicaciones RAID distribuidas a su kit de herramientas con la versión 2.1.0 de hoy.

Orich Lawson

El viernes por la tarde, el proyecto OpenZFS Liberado Versión 2.1.0 de nuestro antiguo sistema de archivos «es complicado, pero vale la pena». La nueva versión es compatible con FreeBSD 12.2-RELEASE y los kernels de Linux 3.10-5.13. Esta versión ofrece algunas mejoras generales de rendimiento, así como algunas características completamente nuevas. Principalmente dirigido a empresas այլ otros casos demasiado avanzados para su uso.

Hoy definitivamente nos centraremos en la característica más importante de OpenZFS 2.1.0: la configuración regional dRAID vdev. dRAID ha estado en desarrollo activo desde al menos 2015, և alcanzó el estado beta cuando: unir Ingresó al OpenZFS Master en 2020. En noviembre. Desde entonces, se ha probado en varias de las principales tiendas de desarrollo de OpenZFS, lo que significa que el lanzamiento de hoy es «nuevo» para el estado del producto, no «nuevo», ya que no se ha probado.

Descripción general de RAID distribuido (dRAID)

Si ya pensaba que ese era el caso de ZFS Complicado tema, prepárate para volar tu mente. RAID distribuido (dRAID) es una topología vdev completamente nueva que encontramos por primera vez en la presentación OpenZFS Dev Summit 2016.

Al crear DRAID vdev, el administrador especifica una cantidad de datos, paridad և secciones de almacenamiento en caliente por capa. Estos números son independientes del número de discos reales en vdev. En la práctica, podemos ver esto en el siguiente ejemplo, que está tomado de los conceptos básicos de dRAID documentos:

root@box:~# zpool create mypool draid2:4d:1s:11c wwn-0 wwn-1 wwn-2 ... wwn-A
root@box:~# zpool status mypool

  pool: mypool
 state: ONLINE
config:

        NAME                  STATE     READ WRITE CKSUM
        tank                  ONLINE       0     0     0
          draid2:4d:11c:1s-0  ONLINE       0     0     0
            wwn-0             ONLINE       0     0     0
            wwn-1             ONLINE       0     0     0
            wwn-2             ONLINE       0     0     0
            wwn-3             ONLINE       0     0     0
            wwn-4             ONLINE       0     0     0
            wwn-5             ONLINE       0     0     0
            wwn-6             ONLINE       0     0     0
            wwn-7             ONLINE       0     0     0
            wwn-8             ONLINE       0     0     0
            wwn-9             ONLINE       0     0     0
            wwn-A             ONLINE       0     0     0
        spares
          draid2-0-0          AVAIL

topología dRAID

En el ejemplo anterior tenemos once discos. wwn-0 mediante: wwn-A, Creamos un vdev dRAID con 2 dispositivos de paridad, 4 dispositivos de datos և 1 dispositivo de respaldo en cada capa con jerga condensada, draid2:4:1,

Incluso si tenemos once discos comunes draid2:4:1, solo seis se utilizan en cada capa de datos – և cada uno en uno físico raya Vacío perfecto, sin superficies de fricción աշխարհում disposición del disco en el mundo de los pollos esféricos a draid2:4:1 sería algo así.

0: 1: 2: 3: 4: 5: 6: 7: 8: 9: a
s: Q: Q: D: D: D: D: Q: Q: D: D:
D: s: D: Q: Q: D: D: D: D: Q: Q:
D: D: s: D: D: Q: Q: D: D: D: D:
Q: Q: D: s: D: D: D: Q: Q: D: D:
D: D: , , s: , , , , , ,
, , , , , s: , , , , ,
, , , , , , s: , , , ,
, , , , , , , s: , , ,
, , , , , , , , s: , ,
, , , , , , , , , s: ,
, , , , , , , , , , s:

Efectivamente, dRAID lleva el concepto de RAID de «ecuación diagonal» un paso más allá. La primera topología RAID de paridad no era RAID5. Era RAID3, cuya paridad estaba en un disco fijo, no distribuida en una matriz completa.

RAID5 eliminó el motor de paridad fija փոխարեն, en su lugar distribuyó la paridad en todos los arreglos del arreglo, que ofrecía operaciones de escritura aleatoria significativamente más rápidas que el RAID3 ideológicamente más simple, ya que no obstruía todos los registros en un disco de paridad fija.

dRAID acepta esta idea. distribuir la ecuación en todos los discos, en lugar de llenarlos en uno o dos discos fijos; spares, Si el disco falla en dRAID vdev, los segmentos de datos de paridad lived que vivían en el disco muerto se copian en las particiones de respaldo para cada capa afectada.

Tomemos el diagrama simplificado anterior և estudie qué sucede si falla un disco de una masa. La falla inicial deja huecos en la mayoría de los conjuntos de datos (en este diagrama simplificado, capas).

0: 1: 2: 4: 5: 6: 7: 8: 9: a
s: Q: Q: D: D: D: Q: Q: D: D:
D: s: D: Q: D: D: D: D: Q: Q:
D: D: s: D: Q: Q: D: D: D: D:
Q: Q: D: D: D: D: Q: Q: D: D:
D: D: , s: , , , , , ,

Pero cuando somos resilientes, lo hacemos con la capacidad de almacenamiento previamente almacenada.

0: 1: 2: 4: 5: 6: 7: 8: 9: a
D: Q: Q: D: D: D: Q: Q: D: D:
D: Q: D: Q: D: D: D: D: Q: Q:
D: D: D: D: Q: Q: D: D: D: D:
Q: Q: D: D: D: D: Q: Q: D: D:
D: D: , s: , , , , , ,

Tenga en cuenta que estos diagramas están disponibles simplificado, La imagen completa incluye grupos, piezas և filas que no intentaremos incluir aquí. La disposición lógica también cambia aleatoriamente para distribuir los artículos de manera más uniforme en función de la compensación. Se anima a los interesados ​​en el más mínimo detalle a que se fijen en este detalle. comentar cifrado original

Cabe señalar que dRAID requiere anchos de banda fijos, no anchos de banda dinámicos que admitan RAIDz1 և RAIDz2 vdevs tradicionales. Si usamos un disco de 4kn, un draid2:4:1 Como vdev, como se muestra arriba, cada bloque de metadatos requerirá un disco de 24 KB, mientras que un vdev RAIDz2 tradicional de seis bandas solo requeriría 12 KB. Esta discrepancia empeora cuanto más altos son sus valores. d+p obtener una draid2:8:1 requeriría la friolera de 40 KB para el mismo bloque de metadatos.

Esta es la razón por, special La asignación de vdev es muy útil en grupos de dRAID vdev cuando el grupo tiene draid2:8:1 և Tres de ancho special necesita guardar un bloque de metadatos de 4 KB, solo lo hace en un sistema de 12 KB special, en lugar de 40 KB draid2:8:1,

Desempeño terrible, tolerancia al pecado և recuperación

Este gráfico muestra los tiempos de reciclaje observados de una agrupación de 90 discos.  La línea azul oscuro en la parte superior indica el momento de la liberación en un disco activo fijo.  Las líneas de colores a continuación muestran los tiempos de resistencia al almacenamiento distribuido.

Este gráfico muestra los tiempos de reciclaje observados de una agrupación de 90 discos. La línea azul oscuro en la parte superior indica el momento de la liberación en un disco activo fijo. Las líneas de colores a continuación muestran los tiempos de resistencia al almacenamiento distribuido.

En su mayor parte, dRAID vdev funcionará de la misma manera que un grupo equivalente de vdev tradicionales, p. Ej. draid1:2:0 Los nueve discos tendrán un rendimiento adecuado en un grupo equivalente de DVD RAIDz1 de tres anchos. La tolerancia a los errores es similar. Tiene la garantía de sobrevivir a un fracaso. p=1tal como lo hace con RAIDz1 vdevs.

Note que dijimos que esta es la tolerancia del pecado. como:, no es idéntico. Se garantiza que un grupo RAIDz1 tradicional de tres anchos sobrevivirá solo a una falla de disco, pero probablemente durará un segundo hasta que falle el segundo disco, que no forma parte del mismo vdev que el primero, todo está bien.

Con nueve discos draid1:2, la falla del segundo disco casi con certeza destruirá el vdev (և grupo paralelo), Si: que la falla ocurre antes de la recuperación. Dado que no hay grupos fijos de capas individuales, es probable que la falla del segundo disco resulte en secciones adicionales de capas detalladas adicionales, independientemente de cual: el disco falla el segundo.

Esta ligera disminución en la tolerancia al pecado se compensa con tiempos de procesamiento mucho más rápidos. En el diagrama de arriba de esta sección, podemos ver que noventa discos de 16 TB se procesan en un sistema fijo tradicional. spare Se necesitan unas treinta horas, independientemente de cómo configuremos dRAID vdev, pero el procesamiento en una copia de seguridad distribuida solo puede llevar una hora.

Esto se debe principalmente a que la inyección en la pieza de repuesto distribuida se carga en todos los discos que sobrevivieron a la carga de escritura. Cuando se recupera de lo tradicional spare, el disco de respaldo está obstruido. Las lecturas provienen de todos los discos vdev, pero escribe que todos deben completarse con repuestos. Pero al convertir a reservas distribuidas, lea ambos և: las cargas de trabajo de escritura se distribuyen en todos los discos existentes.

El revendedor distribuido también puede ser un revendedor secuencial, pero no un revendedor terapéutico. Significa que ZFS puede simplemente copiar a todas las secciones afectadas sin preocuparse por qué blocks esas partes pertenecen. Por el contrario, las propiedades curativas de los aceites esenciales se conocen desde hace mucho tiempo en la antigüedad. El resultado es una lectura aleatoria, no una lectura secuencial.

Cuando se agrega al grupo un reemplazo físico de una unidad defectuosa, esa acción resistente voluntad sea ​​curativo, no secuencial և bloqueará la escritura del disco de reemplazo, no todo el vdev. Pero el tiempo para completar esta operación es mucho más importante porque vdev no se degrada desde el principio.

Conclusiones:

Los vdev RAID distribuidos están diseñados principalmente para grandes servidores de almacenamiento: OpenZFS draid La prueba de diseño giró principalmente en torno a 90 sistemas de discos. A menor escala, los vdeves tradicionales y spares para seguir siendo tan útil como siempre.

Advertimos especialmente a los recién llegados que tengan cuidado con draid– Es un diseño mucho más complejo que una piscina tradicional con Vdevs. Una recuperación rápida es fantástica, pero draid alcanza los «niveles de compresión» y algunos escenarios de rendimiento debido a sus líneas de longitud fija.

A medida que las unidades regulares continúan creciendo sin un crecimiento significativo del rendimiento, draid արագ Su rápida recuperación puede ser deseable incluso en sistemas más pequeños, pero llevará algún tiempo averiguar dónde comienza el punto óptimo. Al mismo tiempo, tenga en cuenta que RAID no es una copia de seguridad և incluye draid!

Deja una respuesta

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