GNU/Linux >> Tutoriels Linux >  >> FreeBSD

Freebsd - État de la prise en charge de Zfs Xattr dans Freebsd ?

J'essaie de déterminer si oui ou non, ou plutôt dans quelle mesure, xattrs sont pris en charge dans FreeBSD en utilisant ZFS. J'ai lu des informations contradictoires.

  1. zfs get xattr le liste comme on (default) pour / , /usr et /var , mais comme off (temporary) pour tous les autres ensembles de données, y compris les enfants de ceux mentionnés ci-dessus.
  2. Exécuter zfs set xattr=on zroot/usr/home Je reçois le message

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

  3. Ceci est en accord avec le zfs page de manuel :

    Le xattr La propriété n'est actuellement pas prise en charge sur FreeBSD.

  4. setextattr , getextattr et lsextattr semblent fonctionner assez bien.
  5. J'ai également réussi à enregistrer et à restaurer un nœud de fichier de périphérique à l'aide de rsync --fake-super , et pourrait voir ses données en utilisant lsextattr et getextattr .
  6. Wikipedia a des discussions sur la page de discussion xattr. Apparemment, il y a eu une fois une affirmation selon laquelle ZFS prend en charge xattr depuis FreeBSD 8, mais cela a été supprimé plus tard, en référence à la page de manuel (voir 3.).

Actuellement, j'ai l'impression que les attributs étendus sur zfs fonctionnent en pratique, mais que le xattr propriété qui contrôlerait leur utilisation ne fonctionne pas comme elle le ferait dans d'autres distributions zfs. Mais j'aimerais entendre cela confirmé (ou corrigé) avant de confier de grandes quantités de données de sauvegarde à un rsync --fake-super fonctionnant sur une telle machine. Je préfère ne pas perdre toutes mes métadonnées à cause de problèmes xattr connus.

Si c'est important, c'est un très nouvelle installation de FreeBSD 10.2 que je viens de configurer, avec ZFS configuré par le programme d'installation.

Réponse acceptée :

Comme vous l'avez constaté, xattrs fonctionnera, mais il y a des aspérités.

Parfois, vous devez aborder le code open source comme un anthropologue. Si cela n'est pas utile en soi, cela provoquera peut-être de meilleures contributions (ou éventuellement des corrections de code !)

J'ai trouvé ceci dans le code source :

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);

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

et pourtant cela vous donne une pause :https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638

Connexe :Impossible d'écrire dans un fichier sur FreeBSD - système de fichiers en lecture seule ?

Donc, ce que je pense qu'il se passe réellement, c'est que xattrs fonctionne mais la fonctionnalité pour les désactiver (ou les activer) par les propriétés du jeu de données ZFS est cassée, donc le message "non pris en charge" signifie "vous êtes seul".

Il y a du code là-dedans qui définit MNTOPT_XATTR mais je ne l'ai pas tracé. essayer de le changer à l'aide de zfs set vous donne le message non pris en charge. Je suppose que cela explique l'étrangeté de la propriété zfs xattr avec /, /usr, /var et le paramètre/comportement conflictuel de /home.

Cela éclaire un peu les choses. https://www.lesbonscomptes.com/pages/extattrs.html


FreeBSD
  1. Guide d'installation de FreeBSD 11.1

  2. Freebsd - Ajouter Freebsd au menu de démarrage Grub2 ?

  3. Freebsd - Déconnecter un pool Zfs rapidement et en toute sécurité en tant qu'ensemble monolithique ?

  4. Erreur Wi-Fi Wpa_supplicant ?

  5. Impossible d'écrire dans un fichier sur Freebsd - Système de fichiers en lecture seule ?

Comment installer Cinnamon dans FreeBSD 13

Comment installer XFCE dans FreeBSD 13

Comment installer mediawiki sur FreeBSD

Comment installer HAProxy sur FreeBSD

Comment installer Webmin sur FreeBSD

10 choses à faire après une nouvelle installation de FreeBSD