GNU/Linux >> Tutoriales Linux >  >> FreeBSD

Freebsd – ¿Estado de compatibilidad con Zfs Xattr en Freebsd?

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

  1. zfs get xattr lo enumera como on (default) para / , /usr y /var , pero como off (temporary) para todos los demás conjuntos de datos, incluidos los secundarios de los mencionados anteriormente.
  2. Ejecutando zfs set xattr=on zroot/usr/home Recibo el mensaje

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

  3. Esto está de acuerdo con zfs página man:

    El xattr Actualmente, la propiedad no es compatible con FreeBSD.

  4. setextattr , getextattr y lsextattr parecen funcionar lo suficientemente bien.
  5. También logré guardar y restaurar un nodo de archivo de dispositivo usando rsync --fake-super , y podría ver sus datos usando lsextattr y getextattr .
  6. Wikipedia tiene una discusión en la página de discusión de xattr. Aparentemente, una vez hubo una afirmación de que ZFS admite xattr desde FreeBSD 8, pero eso se eliminó más tarde, 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 xattr propiedad 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 grandes cantidades de datos de respaldo a un rsync --fake-super corriendo en tal máquina. Preferiría no perder todos mis metadatos debido a problemas conocidos de xattr.

Si es importante, esto es muy Instalación nueva de FreeBSD 10.2 que acabo de configurar, con ZFS configurado por el instalador.

Respuesta aceptada:

Como ha descubierto, xattrs funcionará, pero hay asperezas.

A veces tienes que acercarte al código fuente abierto como un antropólogo. Si esto no es útil en sí mismo, tal vez provoque 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 este 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

Relacionado:No se puede escribir en el archivo en FreeBSD:¿sistema de archivos de solo lectura?

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

Hay un código allí que establece MNTOPT_XATTR pero no lo he rastreado. intentar cambiarlo usando zfs set te da el mensaje no compatible. Supongo que eso explica la rareza de la propiedad xattr de zfs 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


FreeBSD
  1. Guía de instalación de FreeBSD 11.1

  2. Freebsd – ¿Agregar Freebsd al menú de inicio de Grub2?

  3. Freebsd:¿desconectar un grupo de Zfs de forma rápida y segura como un todo monolítico?

  4. ¿Error wifi Wpa_supplicant?

  5. ¿Cuál es el estado actual del soporte del controlador de video de Linux?

Cómo instalar Cinnamon en FreeBSD 13

Cómo instalar XFCE en FreeBSD 13

Cómo instalar mediawiki en FreeBSD

Cómo instalar HAProxy en FreeBSD

Cómo instalar Webmin en FreeBSD

10 cosas que hacer después de una instalación nueva de FreeBSD