GNU/Linux >> Linux の 問題 >  >> FreeBSD

Freebsd –FreebsdでのZfsXattrサポートの状態?

私は、ZFSを使用してFreeBSDでxattrsがサポートされているかどうか、またはどの程度までサポートされているかを調べようとしています。矛盾する情報をいくつか読みました。

  1. zfs get xattr on (default)としてリストされます /の場合 、/usr および/var 、ただしoff (temporary) 上記の子を含む他のすべてのデータセットの場合。
  2. zfs set xattr=on zroot/usr/homeを実行します メッセージが表示されます

    property 'xattr' not supported on FreeBSD: permission denied

  3. これはzfsと一致します マニュアルページ:

    xattr プロパティは現在FreeBSDではサポートされていません。

  4. setextattrgetextattr およびlsextattr 十分に機能しているようです。
  5. rsync --fake-superを使用して、デバイスファイルノードを保存および復元することもできました。 、およびlsextattrを使用してそのデータを表示できます およびgetextattr
  6. ウィキペディアのxattrトークページでいくつかの議論があります。どうやら、FreeBSD 8以降、ZFSがxattrをサポートしているという主張があったようですが、マンページを参照して、後で削除されました(3を参照)。

現在、zfsの拡張属性は実際には機能しているという印象を受けますが、xattr それらの使用を制御するプロパティは、他のzfsディストリビューションの場合のようには機能しません。しかし、大量のバックアップデータをrsync --fake-superに信頼する前に、それが確認(または修正)されたことを聞きたいです。 そのようなマシンで実行されています。既知のxattrの問題が原因で、すべてのメタデータを失いたくないのです。

重要な場合、これは非常に インストーラーによってZFSがセットアップされた、セットアップしたばかりのFreeBSD10.2の新規インストール。

承認された回答:

お気づきのとおり、xattrsは機能しますが、エッジが粗いです。

人類学者のようにオープンソースコードにアプローチしなければならない場合もあります。これ自体が役に立たない場合は、より良い貢献(または最終的にはコードの修正)を引き起こす可能性があります

私はこれをソースコードで見つけました:

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

そしてこのhttps://github.com/freebsd/freebsd/blob/386ddae58459341ec567604707805814a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302

それでも、これにより一時停止が発生します:https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638

関連:FreeBSD上のファイルに書き込めません—読み取り専用ファイルシステム?

つまり、実際に起こっていると思うのは、xattrsが機能するということです。 ただし、ZFSデータセットのプロパティによってそれらをオフ(またはオン)にする機能が壊れているため、「サポートされていません」というメッセージは「あなたは自分で」を意味します。

MNTOPT_XATTRを設定するコードがいくつかありますが、私はそれを追跡していません。 zfs setを使用して変更しようとすると、サポートされていないメッセージが表示されます。私の推測では、これは、/、/ usr、/varを使用したzfsxattrプロパティの奇妙さ、および/homeの競合する設定/動作を説明していると思います。

これは物事にいくつかの光を当てます。 https://www.lesbonscomptes.com/pages/extattrs.html


FreeBSD
  1. FreeBSD11.1インストールガイド

  2. Freebsd – Zfsプールをモノリシック全体として迅速かつ安全にオフライン化しますか?

  3. Linux ビデオ ドライバー サポートの現在の状態はどのようなものですか?

  1. Freebsd – FreebsdをGrub2ブートメニューに追加しますか?

  2. WifiエラーWpa_supplicant?

  3. Freebsdでファイルに書き込めません—読み取り専用ファイルシステム?

  1. 証明書の透明性のサポート

  2. Freebsd –FreebsdでのTwainApiサポート?

  3. ZfsGrub-probeエラーが/dev/ disk_nameの正規パスを取得できませんでしたか?