FreeBSDでのZFS xattrサポートの状態


15

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

  1. zfs get xattr、およびのようon (default)にリストされていますが、上記の子を含む他のすべてのデータセットについても同様です。//usr/varoff (temporary)
  2. 実行中zfs set xattr=on zroot/usr/homeにメッセージが表示されます

    property 'xattr' not supported on FreeBSD: permission denied

  3. これzfsmanページと一致します

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

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

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

問題があれば、これは私がセットアップしたばかりの非常に新しいFreeBSD 10.2インストールであり、インストーラーによってZFSがセットアップされています。


1
これをFreeBSDフォーラムクロスポストしました。それ、または報奨金、あるいはその両方が、これに関する権威ある答えを得るのに役立つことを期待しましょう。
MvG

1
また、これをfreebsd-fsメーリングリストにクロスポストしました。返事なしで賞金が期限切れになるのは残念です。
MvG

メーリングリストのリンクは無効です。
マテウスピオトロフスキ

1
@Mateusz:gmane の作成者はそのサービスを停止しましたが、明らかに他の誰かが再びそれを継続するための交渉があるようです。ここでは、ポストは、FreeBSDアーカイブにある、または、ここで私の検索するメッセージIDを
MvG

回答:


5

あなたが見つけたように、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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.