Hỗ trợ trạng thái ZFS xattr trong FreeBSD


15

Tôi đang cố gắng tìm hiểu xem có hay không, hay đúng hơn là những gì mở rộng, xattrs được hỗ trợ trong FreeBSD bằng ZFS. Tôi đã đọc một số thông tin mâu thuẫn.

  1. zfs get xattrliệt kê nó như on (default)cho /, /usr/var, nhưng off (temporary)đối với tất cả các bộ dữ liệu khác, bao gồm cả con của những người được đề cập ở trên.
  2. Chạy zfs set xattr=on zroot/usr/hometôi nhận được tin nhắn

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

  3. Này phù hợp với các zfstrang người đàn ông :

    Các xattrbất động sản hiện chưa được hỗ trợ trên FreeBSD.

  4. setextattr, getextattrlsextattrdường như làm việc đủ tốt.
  5. Tôi cũng đã quản lý để lưu và khôi phục một nút tệp thiết bị bằng cách sử dụng rsync --fake-supervà có thể thấy dữ liệu của nó bằng lsextattrgetextattr.
  6. Wikipedia có một số cuộc thảo luận trong trang thảo luận xattr . Rõ ràng đã từng có một tuyên bố rằng ZFS hỗ trợ xattr kể từ FreeBSD 8, nhưng điều đó đã bị xóa sau đó, với tham chiếu đến trang này (xem 3.).

Hiện tại tôi có ấn tượng rằng các thuộc tính mở rộng trên zfs hoạt động trên thực tế, nhưng thuộc xattrtính kiểm soát việc sử dụng của chúng không hoạt động như trong các bản phân phối zfs khác. Nhưng tôi muốn nghe điều đó đã được xác nhận (hoặc sửa chữa) trước khi tôi tin tưởng một lượng lớn dữ liệu sao lưu vào một máy rsync --fake-superchạy như vậy. Tôi thà không mất tất cả siêu dữ liệu của mình do các vấn đề xattr đã biết.

Nếu có vấn đề, đây là bản cài đặt FreeBSD 10.2 rất mới mà tôi vừa thiết lập, với ZFS được cài đặt bởi trình cài đặt.


1
Tôi đã đăng chéo này lên diễn đàn FreeBSD . Chúng ta hãy hy vọng rằng, hoặc tiền thưởng, hoặc cả hai, sẽ giúp có được câu trả lời có thẩm quyền về vấn đề này.
MvG

1
Tôi cũng đã đăng chéo này vào danh sách gửi thư của freebsd-fs . Sẽ là một sự xấu hổ khi tiền thưởng hết hạn mà không có câu trả lời.
MvG

Liên kết danh sách gửi thư đã chết.
Mateusz Piotrowski

1
@Mateusz: Người tạo ra gmane đã ngừng dịch vụ đó , mặc dù rõ ràng có những cuộc đàm phán để người khác tiếp tục lại. Đây là bài đăng trong kho lưu trữ FreeBSD, hoặc ở đây để tìm kiếm id tin nhắn của tôi .
MvG

Câu trả lời:


5

Như bạn đã tìm thấy, xattrs sẽ hoạt động, nhưng có các cạnh thô.

Đôi khi bạn phải tiếp cận mã nguồn mở như một nhà nhân chủng học. Nếu bản thân điều này không hữu ích, có thể điều này sẽ gây ra một số đóng góp tốt hơn (hoặc cuối cùng là sửa lỗi mã!)

Tôi tìm thấy điều này trong mã nguồn:

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

/*
 * 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/386ddae58459341ec567604707805818a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302

và điều này mang lại cho bạn tạm dừng: https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common

Vì vậy, điều tôi nghĩ đang thực sự xảy ra là xattrs hoạt động nhưng chức năng tắt chúng (hoặc bật) bởi các thuộc tính của bộ dữ liệu ZFS bị hỏng, do đó, thông báo "không được hỗ trợ" có nghĩa là "bạn tự mình làm".

Có một số mã trong đó thiết lập MNTOPT_XATTR nhưng tôi đã không tìm ra nó. cố gắng thay đổi nó bằng cách sử dụng bộ zfs giúp bạn nhận được thông báo không được hỗ trợ. Tôi đoán là điều đó giải thích sự kỳ lạ của thuộc tính zfs xattr với /, / usr, / var và cài đặt / hành vi bị xung đột của / home.

Điều này làm sáng tỏ một số thứ. https://www.lesbonscomptes.com/pages/extattrs.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.