GNU/Linux >> Znalost Linux >  >> FreeBSD

Freebsd – stav podpory Zfs Xattr ve Freebsd?

Snažím se zjistit, zda, nebo spíše do jaké míry, jsou xattrs podporovány ve FreeBSD pomocí ZFS. Přečetl jsem si některé protichůdné informace.

  1. zfs get xattr uvádí jej jako on (default) pro / , /usr a /var , ale jako off (temporary) pro všechny ostatní datové sady, včetně podřízených souborů uvedených výše.
  2. Spuštění zfs set xattr=on zroot/usr/home Dostávám zprávu

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

  3. To souhlasí s zfs manuálová stránka:

    xattr vlastnost není aktuálně podporována na FreeBSD.

  4. setextattr , getextattr a lsextattr Zdá se, že fungují dostatečně dobře.
  5. Také se mi podařilo uložit a obnovit uzel souboru zařízení pomocí rsync --fake-super a mohl vidět svá data pomocí lsextattr a getextattr .
  6. Wikipedia má diskuzi na diskusní stránce xattr. Zřejmě kdysi existovalo tvrzení, že ZFS podporuje xattr od FreeBSD 8, ale to bylo později odstraněno s odkazem na manuálovou stránku (viz 3.).

V současné době mám dojem, že rozšířené atributy na zfs v praxi fungují, ale že xattr vlastnost, která by řídila jejich použití, nefunguje jako v jiných distribucích zfs. Ale rád bych to slyšel potvrzené (nebo opravené), než svěřím velké množství zálohovaných dat rsync --fake-super běží na takovém stroji. Raději bych nepřišel o všechna svá metadata kvůli známým problémům xattr.

Pokud na tom záleží, je to velmi čerstvou instalaci FreeBSD 10.2, kterou jsem právě nastavil, se ZFS nastaveným instalačním programem.

Přijatá odpověď:

Jak jste zjistili, xattrs bude fungovat, ale jsou zde drsné hrany.

Někdy musíte k otevřenému zdrojovému kódu přistupovat jako antropolog. Pokud to samo o sobě není užitečné, možná to vyvolá nějaké lepší příspěvky (nebo případně opravy kódu!)

Ve zdrojovém kódu jsem našel toto:

https://github.com/freebsd/freebsd/blob/c829c2411ae5da594814773175c728ea816d9a12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops

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

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

a přesto vám to dá pauzu:https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzc#L1638. Související:Nelze zapisovat do souboru na FreeBSD — souborový systém pouze pro čtení?

Takže si myslím, že se skutečně děje, že xattrs funguje ale funkce pro jejich vypnutí (nebo zapnutí) pomocí vlastností datové sady ZFS je nefunkční, takže zpráva „nepodporováno“ znamená „jste na to sami.“

Je tam nějaký kód, který nastavuje MNTOPT_XATTR, ale nevysledoval jsem to. při pokusu o změnu pomocí sady zfs získáte nepodporovanou zprávu. Hádám, že to vysvětluje podivnost vlastnosti zfs xattr s /, /usr, /var a konfliktní nastavení/chování /home.

To vrhá určité světlo na věci. https://www.lesbonscomptes.com/pages/extattrs.html


FreeBSD
  1. Freebsd – Offline Zfs Pool rychle a bezpečně jako monolitický celek?

  2. Nelze zapisovat do souboru na Freebsd – souborový systém pouze pro čtení?

  3. Chyba sondy Zfs Grub Nepodařilo se získat kanonickou cestu /dev/disk_name?

  1. Instalační příručka FreeBSD 11.1

  2. Freebsd – přidat Freebsd do spouštěcí nabídky Grub2?

  3. Wifi Error Wpa_supplicant?

  1. Podpora transparentnosti certifikátu

  2. Freebsd – podpora Twain Api na Freebsd?

  3. Jaký je aktuální stav podpory ovladačů videa pro Linux?