รองรับสถานะ ZFS xattr ใน FreeBSD


15

ฉันกำลังพยายามหาว่าจะขยายหรือไม่ xattrs ได้รับการสนับสนุนใน FreeBSD โดยใช้ ZFS ฉันอ่านข้อมูลที่ขัดแย้งกันแล้ว

  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. setextattr, getextattrและlsextattrดูเหมือนจะทำงานได้ดีพอ
  5. ฉันยังมีการจัดการเพื่อบันทึกและเรียกคืนแฟ้มอุปกรณ์โหนดใช้rsync --fake-superและสามารถเห็นข้อมูลของการใช้และlsextattrgetextattr
  6. วิกิพีเดียมีการอภิปรายในหน้าพูดคุย xattr เห็นได้ชัดว่าครั้งหนึ่งเคยมีการอ้างสิทธิ์ว่า ZFS สนับสนุน xattr ตั้งแต่ FreeBSD 8 แต่ถูกลบในภายหลังโดยอ้างอิงกับ manpage (ดูที่ 3)

ขณะนี้ฉันได้รับความประทับใจว่าคุณสมบัติที่เพิ่มขึ้นของ zfs นั้นใช้งานได้จริง แต่xattrคุณสมบัติที่จะควบคุมการใช้งานของพวกเขานั้นไม่ได้ผลเหมือนที่ใช้ในการกระจาย zfs อื่น ๆ แต่ฉันต้องการได้ยินการยืนยัน (หรือแก้ไข) ก่อนที่ฉันจะเชื่อถือข้อมูลสำรองจำนวนมากเพื่อให้rsync --fake-superทำงานบนเครื่องดังกล่าว ฉันไม่ควรสูญเสียข้อมูลเมตาทั้งหมดเนื่องจากปัญหา xattr ที่รู้จัก

หากเรื่องนี้เป็นอย่างมากที่สดใหม่ FreeBSD 10.2 ติดตั้งฉันเพียงแค่ตั้งค่ากับ ZFS จัดตั้งขึ้นโดยการติดตั้ง


1
ฉันข้ามโพสต์นี้ไปยังฟอรั่ม FreeBSD หวังว่าสิ่งนั้นหรือความโปรดปรานหรือทั้งสองอย่างจะช่วยให้ได้คำตอบที่เชื่อถือได้ในเรื่องนี้
MvG

1
ฉันยัง ข้ามโพสต์นี้ไป FreeBSD-FS รายชื่อผู้รับจดหมาย จะเป็นความอัปยศที่จะได้รับรางวัลความตายโดยไม่มีคำตอบ
MvG

ลิงค์รายชื่อผู้รับจดหมายจะตาย
Mateusz Piotrowski

1
@Mateusz: ผู้สร้าง gmane หยุดให้บริการแม้ว่าจะเห็นได้ชัดว่ามีการเจรจาเพื่อให้คนอื่นดำเนินการต่อไปอีกครั้ง นี่คือโพสต์ในไฟล์ FreeBSD หรือที่นี่ในการค้นหาของฉันรหัสข้อความ
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_prop.c#L302นี้

และสิ่งนี้ยังช่วยให้คุณหยุดชั่วคราว: https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.cl

ดังนั้นสิ่งที่ฉันคิดว่าจริง ๆ แล้วเกิดขึ้นก็คือ xattrs ทำงานได้แต่ฟังก์ชั่นในการปิด (หรือเปิด) คุณสมบัติของชุดข้อมูล ZFS นั้นใช้งานไม่ได้ดังนั้นข้อความ "ไม่รองรับ" จึงแปลว่า "คุณเป็นของคุณเอง"

มีรหัสอยู่ในนั้นซึ่งตั้งค่า MNTOPT_XATTR แต่ฉันไม่ได้ติดตามมัน พยายามที่จะเปลี่ยนมันโดยใช้ชุด ZFS ทำให้คุณได้รับข้อความที่ไม่สนับสนุน ฉันเดาว่าจะอธิบายความแปลกประหลาดของคุณสมบัติ zfs xattr ด้วย /, / usr, / var และการตั้งค่า / พฤติกรรมที่ขัดแย้งกันของ / home

สิ่งนี้ให้แสงสว่างกับสิ่งต่าง ๆ https://www.lesbonscomptes.com/pages/extattrs.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.