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
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=1
tal 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
!
Beer ninja. Internet maven. Music buff. Wannabe web evangelist. Analista. Introvertido