Estado del soporte de ZFS xattr en FreeBSD


15

Estoy tratando de averiguar si o no, o más bien hasta qué punto, xattrs son compatibles con FreeBSD usando ZFS. He leído alguna información contradictoria.

  1. zfs get xattrlo enumera como on (default)para /, /usry /var, pero off (temporary)para todos los demás conjuntos de datos, incluidos los hijos de los mencionados anteriormente.
  2. En ejecución zfs set xattr=on zroot/usr/homerecibo el mensaje

    property 'xattr' not supported on FreeBSD: permission denied.

  3. Esto concuerda con la zfspágina del manual :

    La xattrpropiedad actualmente no es compatible con FreeBSD.

  4. setextattr, getextattrY lsextattrparece funcionar bastante bien.
  5. También logré guardar y restaurar un nodo de archivo de dispositivo usando rsync --fake-super, y pude ver sus datos usando lsextattry getextattr.
  6. Wikipedia tiene alguna discusión en la página de conversación de xattr . Aparentemente, una vez hubo una afirmación de que ZFS admite xattr desde FreeBSD 8, pero que se eliminó más adelante, con referencia a la página de manual (ver 3.).

Actualmente tengo la impresión de que los atributos extendidos en zfs funcionan en la práctica, pero que la xattrpropiedad que controlaría su uso no funciona como lo haría en otras distribuciones de zfs. Pero me gustaría escuchar eso confirmado (o corregido) antes de confiar en grandes cantidades de datos de copia de seguridad rsync --fake-superen una máquina de este tipo. Prefiero no perder todos mis metadatos debido a problemas conocidos de xattr.

Si es importante, esta es una instalación muy reciente de FreeBSD 10.2 que acabo de configurar, con ZFS configurado por el instalador.


1
Me Cruz-registrado, esto al foro de FreeBSD . Esperemos que eso, o la recompensa, o ambos, ayuden a obtener una respuesta autorizada sobre esto.
MvG

1
También publiqué esto en la lista de correo de freebsd-fs . Sería una pena que la recompensa expire sin una respuesta.
MvG

El enlace de la lista de correo está muerto.
Mateusz Piotrowski

1
@Mateusz: El creador de gmane suspendió ese servicio , aunque aparentemente hay negociaciones para que alguien más lo continúe nuevamente. Aquí está la publicación en el archivo de FreeBSD, o aquí para buscar mi ID de mensaje .
MvG

Respuestas:


5

Como ha encontrado, xattrs funcionará, pero hay bordes ásperos.

A veces hay que acercarse al código fuente abierto como un antropólogo. Si esto no es útil en sí mismo, tal vez esto provocará algunas mejores contribuciones (¡o eventualmente correcciones de código!)

Encontré esto en el código fuente:

https://github.com/freebsd/freebsd/blob/c829c2411ae5da594814773175c728ea816d9a12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#L514

/*
 * Register property callbacks.
 *
 * It would probably be fine to just check for i/o error from
 * the first prop_register(), but I guess I like to go
 * overboard...
 */
error = dsl_prop_register(ds,
    zfs_prop_to_name(ZFS_PROP_ATIME), atime_changed_cb, zfsvfs);
error = error ? error : dsl_prop_register(ds,
    zfs_prop_to_name(ZFS_PROP_XATTR), xattr_changed_cb, zfsvfs);
error = error ? error : dsl_prop_register(ds,
    zfs_prop_to_name(ZFS_PROP_RECORDSIZE), blksz_changed_cb, zfsvfs);

y esto https://github.com/freebsd/freebsd/blob/386ddae58459341ec567604707805814a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302

y, sin embargo, esto te da una pausa: https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638

Entonces, lo que creo que está sucediendo realmente es que los xattr funcionan, pero la funcionalidad para desactivarlos (o activarlos) mediante las propiedades del conjunto de datos de ZFS está rota, por lo que el mensaje "no compatible" significa "estás solo".

Hay un código allí que establece MNTOPT_XATTR pero no lo he rastreado. intentar cambiarlo usando zfs set le da el mensaje no compatible. Supongo que eso explica la rareza de la propiedad zfs xattr con /, / usr, / var y la configuración / comportamiento en conflicto de / home.

Esto arroja algo de luz sobre las cosas. https://www.lesbonscomptes.com/pages/extattrs.html

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.