私は、XFSがZFSを使用してFreeBSDでサポートされているかどうか、または拡張するかどうかを考えています。矛盾する情報を読みました。
zfs get xattr
_は、_/
_、_/usr
_および_/var
_の場合はon (default)
としてリストしますが、その他のすべてのデータセット(子を含む)の場合はoff (temporary)
としてリストします上記のもののうち。zfs set xattr=on zroot/usr/home
_メッセージが表示されます_
property 'xattr' not supported on FreeBSD: permission denied
_。
zfs
manページ :と一致します。
xattr
プロパティは現在FreeBSDではサポートされていません。
setextattr
、getextattr
およびlsextattr
は十分に機能するようです。rsync --fake-super
_を使用してデバイスファイルノードを保存および復元することもでき、lsextattr
およびgetextattr
を使用してそのデータを表示できました。現在、zfsの拡張属性は実際には機能するが、それらの使用を制御するxattr
プロパティは他のzfsディストリビューションのようには機能しないという印象を受けます。しかし、そのようなマシンで実行されている_rsync --fake-super
_に大量のバックアップデータを信頼する前に、その確認(または修正)を聞きたいと思います。既知のxattrの問題により、すべてのメタデータを失いたくない。
重要なのは、これはveryの新しいFreeBSD 10.2インストールであり、インストーラーによってZFSがセットアップされています。
あなたが見つけたように、xattrsは動作しますが、荒いエッジがあります。
人類学者のようなオープンソースコードにアプローチする必要がある場合があります。これ自体が役に立たない場合、おそらくこれはいくつかのより良い貢献(または最終的にはコードの修正!)を引き起こすでしょう。
私はこれをソースコードで見つけました:
/*
* 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/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638
つまり、実際に起こっていると思うのは、xattrsworkですが、ZFSデータセットプロパティによってそれらをオフ(またはオン)にする機能が壊れているため、「 「サポートされていません」というメッセージは、「あなたは自分でいる」という意味です。
MNTOPT_XATTRを設定するコードがいくつかありますが、私はそれを追跡していません。 zfs setを使用して変更しようとすると、サポートされていないメッセージが表示されます。私の推測では、これは/、/ usr、/ varでのzfsxattrプロパティの奇妙さ、および/ homeの競合する設定/動作を説明していると思います。
これは物事にいくつかの光を当てます。 https://www.lesbonscomptes.com/pages/extattrs.html