Lanzan ZFS 2.3, con expansión RAIDZ incluida
(github.com/openzfs)- OpenZFS 2.3.0 incluye como función principal RAIDZ Expansion, que permite agregar nuevos dispositivos a un pool RAIDZ existente para aumentar la capacidad sin tiempo de inactividad
- Fast Dedup mejora notablemente el rendimiento de la función de deduplicación existente, junto con mejoras de rendimiento en toda la base de código
- Direct IO permite omitir el ARC en lecturas/escrituras, apuntando a entornos donde el caché puede reducir la eficiencia, como con dispositivos NVMe
- Se agregan salida JSON opcional para comandos de uso frecuente, soporte para nombres de archivos y directorios de hasta 1023 caracteres, y correcciones importantes de bugs que abordan problemas de versiones anteriores
- El soporte abarca kernels Linux 4.18 a 6.12 y FreeBSD 13.3, 14.0 a 14.2; en este ciclo de lanzamiento participaron 134 personas
Qué cambió en OpenZFS 2.3.0
- OpenZFS 2.3.0 se actualiza con foco en la expansión de almacenamiento, el rendimiento de deduplicación, la ruta de E/S, el formato de salida de comandos y el soporte de longitud de nombres de archivo
- La etiqueta de lanzamiento es zfs-2.3.0 e incluye cambios desde OpenZFS 2.2.0
Expansión de almacenamiento y mejoras de rendimiento
- RAIDZ Expansion permite agregar un nuevo dispositivo a un pool RAIDZ existente para aumentar la capacidad de almacenamiento sin tiempo de inactividad
- Fast Dedup es una mejora importante de rendimiento para la función de deduplicación existente de OpenZFS
- Direct IO permite omitir el ARC en lecturas/escrituras
- Busca mejorar el rendimiento en situaciones donde el caché puede interferir con la eficiencia, como en dispositivos NVMe
- También se incluyen varias mejoras de rendimiento en toda la base de código
Salida de comandos y longitud de nombres
- JSON agrega salida JSON opcional a los comandos más usados
- Long names admite nombres de archivos y directorios de hasta 1023 caracteres
Estabilidad, plataformas y contribuciones
- Incluye correcciones importantes de bugs que abordan problemas reportados en versiones anteriores
- Plataformas soportadas:
- Kernels Linux 4.18 a 6.12
- FreeBSD 13.3, 14.0 a 14.2
- En este ciclo de lanzamiento participaron 134 contribuidores
Documentación y registro de cambios
- La documentación de OpenZFS incluye documentación para Linux y FreeBSD
- El registro completo de cambios v2.2.0 - v2.3.0 ofrece el registro de cambios completo desde OpenZFS 2.2.0 hasta 2.3.0
Cambios en opciones de módulos
- La lista completa de opciones y los elementos que controlan está organizada en la documentación de parámetros de módulos
- Las nuevas opciones de módulos incluyen elementos relacionados con expansión RAIDZ, registro de deduplicación, Direct IO, allocator, scrub y resilver
- Ej.:
raidz_expand_max_copy_bytes,raidz_expand_max_reflow_bytes,zfs_dio_enabled,zfs_dedup_log_mem_max,zfs_scrub_after_expand
- Ej.:
- Opción de módulo eliminada:
zfetch_array_rd_sz
- Opciones de módulos modificadas:
zfs_arc_shrinker_limitzfs_bclone_enabledzfs_vdev_disk_classiczio_taskq_write
1 comentarios
Opiniones de Hacker News
La expansión de ZFS RAIDZ, preparada durante años, por fin llegó
Las funciones principales son la expansión RAIDZ, que permite agregar dispositivos a un pool RAIDZ existente para aumentar la capacidad sin interrupciones; la deduplicación rápida, que mejora mucho el rendimiento de la deduplicación de OpenZFS; la E/S directa, que mejora el rendimiento en entornos donde la caché puede ser ineficiente, como con NVMe, al omitir el ARC; salida JSON opcional para comandos de uso frecuente; y compatibilidad con nombres de archivos y directorios de hasta 1023 caracteres
Quisiera saber para qué tipo de uso está pensada esta función
También me pregunto si el equipo de ZFS realmente trata el cifrado como una prioridad de primer nivel
ZFS en Linux heredó gran parte de la reputación de ZFS en Solaris, pero quienes lo usan en entornos de producción tienen que mirar bastante de cerca el issue tracker para ver la realidad
No entiendo que Windows, por lejos la plataforma de PC más grande por cantidad de usuarios, todavía no tenga una respuesta a ZFS
Microsoft tuvo WinFS y luego ReFS, pero quedaron relegados; aunque el desarrollo continúa y de vez en cuando algunas partes llegan a Win11, no se ve un lanzamiento formal
Algunas personas están intentando el enorme trabajo de crear una capa de compatibilidad con ZFS, pero todavía está lejos de ser madura o usable en la práctica
No sé cómo Windows sigue usando un sistema de archivos de 32 años
ZFS tiene problemas de licencia con Linux que impiden una integración completa, y Btrfs lleva 15 años en desarrollo pero todavía no alcanza a ZFS en funciones y estabilidad
La mayoría de las distribuciones Linux siguen usando por defecto ext4, de 19 años, que en realidad es más bien una extensión montada sobre ext2, de la misma edad que NTFS
Para ser justos, pocos componentes de un sistema operativo son tan importantes como el sistema de archivos, y mucha gente prefiere no tocar un sistema de archivos que no haya sido probado durante más de 10 años en producción
El equipo de almacenamiento se encarga de las funciones necesarias, como snapshots, deduplicación a nivel de bloque, tecnologías de almacenamiento de objetos, RAID/resiliencia, redimensionamiento, etc.
Los appliances de almacenamiento modernos son casi magia negra, así que NTFS no necesita necesariamente más funciones
Basta con acceder de forma transparente mediante NAS/SAN, o almacenar volúmenes NTFS sobre una caja de discos competente
En el segmento avanzado del mundo Linux están Lustre y GPFS, y ZFS suele encajar en usos donde el rendimiento no es lo principal, pero sí se necesita resiliencia
Creo que es porque es difícil y de alto riesgo, mientras que la recompensa suele limitarse al respeto técnico
No son graves, pero por ahora conviene evitar el cifrado, y el ritmo de desarrollo es tan rápido que salen nuevos release candidates cada pocas semanas para corregir los problemas restantes
Si se combina esto con Storage Spaces para agrupar discos de distintos tipos o tamaños y definir ubicación, redundancia y tiering por Space, Windows se convierte ahora en una plataforma de almacenamiento avanzada
Si usas Windows Server, por ejemplo las económicas ediciones 2022/2025 Essentials, también puedes usar SMB Direct/RDMA con rendimiento de hasta 10 Gbyte/s en la LAN y sobre discos duros virtuales .vhdx, lo que lo vuelve una alternativa más rápida y sin configuración frente a iSCSI
Por eso porté napp-it cs, una GUI web para ZFS, de Solaris a Windows, para administrar Storage Spaces, ZFS y servidores OpenZFS remotos como Proxmox; es gratis para uso no comercial
Me gusta que hayan hecho la función de expansión de forma bastante conservadora
La expansión no solo es completamente transparente y reanudable, sino que además mantiene la redundancia durante todo el proceso
Pero hay un pequeño detalle que la gente debería tener en cuenta
Incluso después de terminar la expansión, los bloques existentes conservan la relación anterior entre datos y paridad. Por ejemplo, un RAIDZ2 de 5 discos se distribuye en un conjunto más grande de discos manteniendo 3 datos por 2 paridades
Los bloques nuevos se escriben con la nueva relación entre datos y paridad. Por ejemplo, si un RAIDZ2 de 5 discos se expande una vez y pasa a 6 discos, queda en 4 datos por 2 paridades
Aun así, las ventajas de RAIDZ N se mantienen: el pool sigue funcionando aunque fallen por completo hasta N discos
Por ejemplo, los cambios de configuración también se aplican solo a los datos nuevos
Da1 Db1 Dc1 Pa1 Pb1Da2 Db2 Dc2 Pa2 Pb2Da3 Db3 Dc3 Pa3 Pb3___ ___ ___ Pa4 Pb4Aquí
___es espacio vacío. Si se agrega un disco y se expande, lógicamente uno podría esperar algo como estoDa1 Db1 Dc1 Da2 Pa1 Pb1Db2 Dc2 Da3 Db3 Pa2 Pb2Dc3 ___ ___ ___ Pa3 Pb3___ ___ ___ ___ Pa4 Pb4Pero, según entiendo, en realidad se expande así
Da1 Db1 Dc1 Dd1 Pa1 Pb1Da2 Db2 Dc2 Dd2 Pa2 Pb2Da3 Db3 Dc3 Dd3 Pa3 Pb3___ ___ ___ ___ Pa4 Pb4Aquí los bloques Dd1~3 simplemente se desperdician. Es decir, aunque agregues un disco nuevo al arreglo, el espacio libre solo aumenta un 25%
Por ejemplo, si originalmente tenías 24 TB de espacio utilizable total con discos de 8 TB y antes de expandir había 4 TB libres, después de expandir habrá 5 TB libres
Ojalá me digan que lo entendí mal. Si no lo entendí mal, parece una implementación bastante inútil
Es una gran noticia para los usuarios de ZFS. Probablemente sobre todo para usuarios aficionados y domésticos, pero sigue siendo importante
La expansión de RAIDZ fue una de las funciones más solicitadas durante años
Quisiera saber si se pueden agregar discos más grandes o más pequeños, o si todos los discos deben tener el mismo tamaño
Esto es expansión en línea. La expansión en sí ya era posible antes, pero había que bajar el arreglo
También era posible migrar a unidades más grandes, pero había que reemplazarlas de a una, y por supuesto solo se obtenía la nueva capacidad después de actualizar todas las unidades
Hasta donde sé, reducir un pool todavía no es posible. Así que si agregas un sexto disco a un pool de 5 discos, no puedes volver a 5 aunque tengas muy pocos datos
¡Por fin!
Ahora también se vuelve posible una configuración de vdev único al borde de la locura, como RAID-Z3 con 4 de los discos duros más caros y de mayor densidad que se puedan comprar hoy
Al principio, con redundancia equivalente a 3 discos, el uso efectivo del espacio es de apenas 25%, pero a medida que aumente la demanda de espacio se puede comprar un disco por vez y expandir hasta alrededor de 12 discos
Con el tiempo los precios de los discos bajan, y como los discos se agregan en distintos momentos, también se distribuye la probabilidad de fallas
Aunque expandas el arreglo, los datos existentes no se almacenan de forma más eficiente
Para obtener la nueva relación paridad/datos, tendrías que forzar la copia de los datos y borrar la versión antigua e ineficiente. Por ejemplo, haría falta una herramienta como esta [1]
Personalmente, creo que es mucho mejor comprar configuraciones RAID-Z completas por separado y agregar una nueva configuración, o ir reemplazando la configuración antigua disco por disco
[1] https://github.com/markusressel/zfs-inplace-rebalancing
Me da curiosidad saber cómo se compara ZFS con btrfs
Actualmente uso btrfs en mi servidor doméstico, pero ya me encontré varias veces con problemas raros
Estoy pensando en pasarme a ZFS, pero no quiero terminar en la misma situación
A los 3 días apareció un archivo que no podía borrar, así que dejé de usarlo y más tarde encontré ZFS
ZFS también tenía algunos problemas menos graves, pero en ese entonces yo era estudiante de ciencias de la computación y, comparados con los problemas que tuve con btrfs, me parecían menores, así que pensé que podría corregirlos
Durante los siguientes 18 meses resolví todos los problemas que me molestaban y envié parches al repositorio de ZFSOnLinux de la época; ese esfuerzo ayudó a que ZFS pudiera usarse en entornos de producción en Linux
Desde entonces seguí usando ZFS y ha funcionado bien
Si el estado de btrfs hubiera sido mejor, me habría convertido en colaborador de btrfs. Pero no solo su estado era malo en ese momento; incluso después, cada vez que intentaba usarlo para algo serio, seguían apareciendo problemas que me frenaban, como ENOSPC frecuente aunque todavía hubiera espacio
En cambio, ZFS simplemente funciona. Yo y muchas otras personas trabajamos mucho para que funcionara bien
La mayor diferencia es que ZFS tenía una base muy sólida, gracias a una excelente infraestructura de pruebas de regresión
Una versión en espacio de usuario ejecuta el código de forma aleatoria para encontrar bugs antes de que exploten en producción, y se corre un conjunto de pruebas para cada cambio propuesto para filtrar errores
ZFS también tiene más personas revisando los cambios propuestos que otros sistemas de archivos. Los desarrolladores de Btrfs suelen decir que hay una gran diferencia de personal entre ambos sistemas de archivos; recuerdo que hablaban de una diferencia de unas 6 veces
En cualquier caso, es raro que alguien se arrepienta de usar ZFS, así que probablemente te guste
Según la documentación de BTRFS, BTRFS todavía no es completamente apto para producción: https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#raid5...
Algunos casos de uso simples pueden considerarse suficientemente aptos para producción con BTRFS, pero los resultados varían según el entorno
Lo usé en la partición raíz porque no requiere DKMS, pero tuve muchos problemas
Lo usaba de forma bastante simple, solo en espejo, pero un día, cuando una de las unidades del arreglo tuvo un problema, btrfs no aguantó correctamente
Si mal no recuerdo, volvió a montar todo en modo de solo lectura y, por defecto, no funcionó en modo degradado
Incluso mdraid, que no tiene funciones como checksums, habría sido mejor que eso
ZFS también marca el arreglo como defectuoso, pero por supuesto permite seguir usándolo
Perdí la confianza porque el comportamiento predeterminado no era el de un RAID; es decir, en la práctica faltaba la parte de la R, la de volver a leer los datos
Desde que me pasé a ZFS no he tenido problemas, y además hay una comunidad y buenas herramientas mucho más amplias
También me pasaron una o dos cosas raras con Btrfs, pero al final pude recuperarlo todo
En general me gustaba la flexibilidad de Btrfs, pero en la mayoría de los casos me parecía demasiado lento
Ahora uso ZFS en Arch Linux y, hasta ahora, en general no he tenido problemas
También hay más ajustes y métodos para optimizar el rendimiento
Si tuviera que dar un consejo, diría que conviene investigar y probar lo suficiente con ZFS. Tiene una pequeña curva de aprendizaje, pero para mí valió la pena el cambio
Me alegra que ahora exista el bypass de ARC para el rendimiento de NVMe
ZFS suele no aprovechar bien el potencial de NVMe
La expansión en línea también podría ser interesante
Intenté usar ZFS en una base de datos muy ocupada y me golpeó fuerte un bug de fragmentación
La única forma de recuperar el rendimiento parecía ser copiar los datos fuera del volumen, destruir el volumen y volver a copiarlos
Ahora quizá sea posible expandir el zpool y luego copiar el tablespace dentro del mismo volumen para reducir la fragmentación
También vale la pena notar que TrueNAS ya soporta esta función[0]
Parece que probablemente usa 2.3.0rc3; no sé qué tan estable será, pero me entusiasma mucho
https://www.truenas.com/blog/electric-eel-openzfs-23/
¿Alguien puede explicar por qué usaría algo como ZFS en casa?
Suma de verificación: en un entorno doméstico normalmente el hardware es de menor calidad, así que es aún más importante. Hay muchas razones por las que podrían guardarse datos incorrectos: controladores defectuosos, cables pésimos, discos duros mantenidos a temperaturas más altas que las recomendadas, etc. Si hay redundancia, ZFS maneja esto muy bien automáticamente.
Snapshots: son muy útiles para hacer backups y volver rápidamente a una versión anterior de un archivo cuando te equivocas.
Tranquilidad: comparado con las alternativas, siento que ZFS es fácil de usar y que es difícil cometer errores que terminen en pérdida de datos. Por ejemplo, si al reemplazar una unidad fallada sacas por error la unidad equivocada y el pool queda inutilizable, al volver a conectarla todo regresa como si nada hubiera pasado.
Puede que mdadm ahora sea distinto, pero cuando lo usé hace unos años siempre me ponía nervioso cometer un error destructivo.
Si configuras
recordsize=1Mycompression=zstd, muchas veces puedes guardar alrededor de 33% más juegos en el mismo espacio.Un amigo usa ZFS para guardar juegos de Steam en varios discos duros. Además, le asignó a ZFS un SSD como L2ARC.
ZFS cachea automáticamente en el SSD los juegos que ejecuta con frecuencia, para que carguen rápido.
Si cambian tus juegos favoritos, ZFS se adapta automáticamente y cachea esos juegos en el SSD.
Ya me salvó una vez cuando un WD_BLACK SN850 murió de repente [1].
También me recuperó código que había perdido por el clásico error con git.
Perder datos por un error del usuario o por la falla de un solo dispositivo ya no debería ser posible. Tenemos la tecnología para eso.
[1]: https://chromakode.com/post/zfs-recovery-with-zrepl/
No hay otro sistema de archivos moderno con sumas de verificación y autorreparación que se pueda leer y escribir en Linux, FreeBSD, Windows y macOS.
Btrfs también soporta snapshots, es decir, entornos de arranque. Mi instalación de Linux lo usa para no tener que preocuparme por un módulo de kernel de terceros para leer el sistema de archivos raíz.
El rendimiento tampoco es excelente y, si en Linux tu prioridad principal es el rendimiento, XFS es una mejor opción.
Antes usaba MDADM + LVM + dm-crypt + ext4, y también funcionaba, pero eran demasiadas capas y era un dolor de cabeza.
Los snapshots automáticos son muy fáciles y rápidos.
También es fácil acceder a ellos cuando borras un archivo: no hace falta restaurar todo el snapshot; simplemente puedes hacer
cpdesde la carpeta oculta.zfs/.Llevo años usándolo con 6 discos de 8 TB. Es RAIDZ2, así que pueden morir hasta 2 discos.
Si me preguntas si lo usaría en un solo disco de escritorio, probablemente no.