J'essaie de déterminer si ou non, ou plutôt dans quelle mesure, les xattrs sont pris en charge dans FreeBSD en utilisant ZFS. J'ai lu des informations contradictoires.
zfs get xattr
listes comme ilon (default)
pour/
,/usr
et/var
, mais commeoff (temporary)
pour tous les autres ensembles de données, y compris les enfants de ceux qui sont mentionnés ci - dessus.- En cours d'exécution,
zfs set xattr=on zroot/usr/home
je reçois le messageproperty 'xattr' not supported on FreeBSD: permission denied
. - Cela correspond à la
zfs
page de manuel :La
xattr
propriété n'est actuellement pas prise en charge sur FreeBSD. setextattr
,getextattr
Etlsextattr
semblent fonctionner assez bien.- J'ai également réussi à enregistrer et à restaurer un nœud de fichier de périphérique à l'aide de
rsync --fake-super
, et j'ai pu voir ses données à l'aide delsextattr
etgetextattr
. - Wikipedia a quelques discussions dans la page de discussion de xattr . Apparemment, il y avait une fois que ZFS soutenait 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 dans la pratique, mais que la xattr
propriété qui contrôlerait leur utilisation ne fonctionne pas comme dans les 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
fonctionnement sur une telle machine. Je préfère ne pas perdre toutes mes métadonnées en raison de problèmes connus de xattr.
Si cela est important, il s'agit d'une toute nouvelle installation de FreeBSD 10.2 que je viens de configurer, avec ZFS configuré par le programme d'installation.
Réponses:
Comme vous l'avez trouvé, les xattrs fonctionneront, mais il y a des bords rugueux.
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é cela dans le code source:
https://github.com/freebsd/freebsd/blob/c829c2411ae5da594814773175c728ea816d9a12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#L514
et ce 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
Donc, je pense que ce qui se passe réellement, c'est que les xattrs fonctionnent mais la fonctionnalité pour les désactiver (ou les activer) par les propriétés de l'ensemble de données ZFS est cassée, donc le message "non pris en charge" signifie "vous êtes seul".
Il y a du code qui définit MNTOPT_XATTR mais je ne l'ai pas tracé. essayer de le changer à l'aide de zfs set vous obtient le message non pris en charge. Je suppose que cela explique la bizarrerie de la propriété zfs xattr avec /, / usr, / var et le paramètre / comportement conflictuel de / home.
Cela met en lumière les choses. https://www.lesbonscomptes.com/pages/extattrs.html
la source