Ich versuche herauszufinden, ob oder inwieweit xattrs in FreeBSD mit ZFS unterstützt werden. Ich habe widersprüchliche Informationen gelesen.
zfs get xattr
Listen alson (default)
für/
,/usr
und/var
, aber wieoff (temporary)
für alle anderen Datensätze, darunter auch Kinder von den oben genannten.- Laufen
zfs set xattr=on zroot/usr/home
bekomme ich die Nachrichtproperty 'xattr' not supported on FreeBSD: permission denied
. - Dies stimmt mit der
zfs
Manpage überein :Die
xattr
Eigenschaft wird derzeit von FreeBSD nicht unterstützt. setextattr
,getextattr
Undlsextattr
scheinen gut zu funktionieren.- Ich habe es auch geschafft, einen Gerätedateiknoten mit zu speichern und wiederherzustellen
rsync --fake-super
und konnte seine Daten mitlsextattr
und sehengetextattr
. - Wikipedia hat einige Diskussionen auf der xattr-Diskussionsseite . Anscheinend gab es einmal eine Behauptung, dass ZFS xattr seit FreeBSD 8 unterstützt, aber diese wurde später unter Bezugnahme auf die Manpage entfernt (siehe 3.).
Derzeit habe ich den Eindruck, dass erweiterte Attribute für zfs in der Praxis funktionieren, die xattr
Eigenschaft, die ihre Verwendung steuert, jedoch nicht wie in anderen zfs-Distributionen funktioniert. Aber ich würde gerne hören, dass dies bestätigt (oder korrigiert) wird, bevor ich großen Mengen an Sicherungsdaten anvertraue, rsync --fake-super
die auf einem solchen Computer ausgeführt werden. Ich möchte nicht alle meine Metadaten aufgrund bekannter XATTR-Probleme verlieren.
Wenn es darauf ankommt, handelt es sich um eine sehr neue FreeBSD 10.2-Installation, die ich gerade eingerichtet habe und deren ZFS vom Installer eingerichtet wurde.
Antworten:
Wie Sie festgestellt haben, funktionieren xattrs, aber es gibt Ecken und Kanten.
Manchmal muss man sich wie ein Anthropologe an Open Source Code wenden. Wenn dies für sich genommen nicht hilfreich ist, werden möglicherweise einige bessere Beiträge (oder eventuell auch Programmkorrekturen) provoziert.
Ich habe das im Quellcode gefunden:
https://github.com/freebsd/freebsd/blob/c829c2411ae5da594814773175c728ea816d9a12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#L514
und diese https://github.com/freebsd/freebsd/blob/386ddae58459341ec567604707805814a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302
und doch gibt Ihnen dies Pause: https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638
Ich denke also, dass tatsächlich xattrs funktioniert, aber die Funktionalität zum Deaktivieren (oder Aktivieren ) von xattrs durch ZFS-Dataset-Eigenschaften ist fehlerhaft .
Es gibt einen Code, der MNTOPT_XATTR festlegt, aber ich habe ihn nicht gefunden. Wenn Sie versuchen, es mit zfs set zu ändern, erhalten Sie die nicht unterstützte Nachricht. Ich vermute, dass dies die Verrücktheit der zfs xattr-Eigenschaft mit /, / usr, / var und das widersprüchliche / Verhalten von / home erklärt.
Dies wirft ein wenig Licht auf die Dinge. https://www.lesbonscomptes.com/pages/extattrs.html
quelle