Stand der ZFS-xattr-Unterstützung in FreeBSD

15

Ich versuche herauszufinden, ob oder inwieweit xattrs in FreeBSD mit ZFS unterstützt werden. Ich habe widersprüchliche Informationen gelesen.

  1. zfs get xattrListen als on (default)für /, /usrund /var, aber wie off (temporary)für alle anderen Datensätze, darunter auch Kinder von den oben genannten.
  2. Laufen zfs set xattr=on zroot/usr/homebekomme ich die Nachricht

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

  3. Dies stimmt mit der zfsManpage überein :

    Die xattrEigenschaft wird derzeit von FreeBSD nicht unterstützt.

  4. setextattr, getextattrUnd lsextattrscheinen gut zu funktionieren.
  5. Ich habe es auch geschafft, einen Gerätedateiknoten mit zu speichern und wiederherzustellen rsync --fake-superund konnte seine Daten mit lsextattrund sehen getextattr.
  6. 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 xattrEigenschaft, 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-superdie 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.

MvG
quelle
1
Ich habe dies über das FreeBSD-Forum gepostet . Hoffen wir, dass dies oder das Kopfgeld oder beides dazu beitragen wird, eine maßgebliche Antwort auf diese Frage zu erhalten.
MVG
1
Ich habe dies auch in die freebsd-fs-Mailingliste übernommen . Es wäre eine Schande, wenn das Kopfgeld ohne Antwort verfallen würde.
MvG
Der Mailinglisten-Link ist tot.
Mateusz Piotrowski
1
@Mateusz: Der Schöpfer von gmane hat diesen Dienst eingestellt , obwohl anscheinend Verhandlungen darüber bestehen, dass jemand anderes ihn wieder fortsetzt. Hier ist der Beitrag im FreeBSD-Archiv oder hier , um meine Nachrichten-ID zu durchsuchen .
MVG

Antworten:

5

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

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

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

Jeremy
quelle