GNU/Linux >> Belajar Linux >  >> FreeBSD

Freebsd – Status Dukungan Zfs Xattr Di Freebsd?

Saya mencoba mencari tahu apakah, atau lebih tepatnya sejauh mana, xattrs didukung di FreeBSD menggunakan ZFS. Saya telah membaca beberapa informasi yang bertentangan.

  1. zfs get xattr mencantumkannya sebagai on (default) untuk / , /usr dan /var , tetapi sebagai off (temporary) untuk semua set data lainnya, termasuk turunan dari yang disebutkan di atas.
  2. Menjalankan zfs set xattr=on zroot/usr/home Saya mendapatkan pesannya

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

  3. Ini sesuai dengan zfs halaman manual:

    xattr properti saat ini tidak didukung di FreeBSD.

  4. setextattr , getextattr dan lsextattr tampaknya bekerja cukup baik.
  5. Saya juga berhasil menyimpan dan memulihkan node file perangkat menggunakan rsync --fake-super , dan dapat melihat datanya menggunakan lsextattr dan getextattr .
  6. Wikipedia memiliki beberapa diskusi di halaman pembicaraan xattr. Rupanya pernah ada klaim bahwa ZFS mendukung xattr sejak FreeBSD 8, tetapi klaim itu kemudian dihapus, dengan mengacu pada halaman manual (lihat 3.).

Saat ini saya mendapat kesan bahwa atribut yang diperluas pada zfs berfungsi dalam praktik, tetapi xattr properti yang akan mengontrol penggunaannya tidak berfungsi seperti pada distribusi zfs lainnya. Tapi saya ingin mendengar itu dikonfirmasi (atau dikoreksi) sebelum saya memercayai sejumlah besar data cadangan ke rsync --fake-super berjalan pada mesin seperti itu. Saya lebih suka tidak kehilangan semua metadata saya karena masalah xattr yang diketahui.

Jika itu penting, ini adalah sangat baru menginstal FreeBSD 10.2 Saya baru saja mengatur, dengan ZFS diatur oleh penginstal.

Jawaban yang Diterima:

Seperti yang Anda temukan, xattrs akan berfungsi, tetapi ada bagian yang kasar.

Terkadang Anda harus mendekati kode sumber terbuka seperti seorang Antropolog. Jika ini tidak membantu dengan sendirinya, mungkin ini akan memicu beberapa kontribusi yang lebih baik (atau akhirnya perbaikan kode!)

Saya menemukan ini di kode sumber:

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

dan ini https://github.com/freebsd/freebsd/blob/386ddae58459341ec5676044707805814a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302

namun ini memberi Anda jeda:https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638

Terkait:Tidak dapat menulis ke file di FreeBSD — sistem file read-only?

Jadi menurut saya yang sebenarnya terjadi adalah xattrs berfungsi tetapi fungsi untuk menonaktifkannya (atau mengaktifkannya) oleh properti kumpulan data ZFS rusak, jadi pesan "tidak didukung" berarti "Anda sendirian".

Ada beberapa kode di sana yang menetapkan MNTOPT_XATTR tetapi saya belum melacaknya. mencoba mengubahnya menggunakan zfs set memberi Anda pesan yang tidak didukung. Dugaan saya adalah itu menjelaskan keanehan properti zfs xattr dengan /, /usr, /var, dan pengaturan/perilaku yang bertentangan dari /home.

Ini menjelaskan beberapa hal. https://www.lesbonscomptes.com/pages/extattrs.html


FreeBSD
  1. Panduan Instalasi FreeBSD 11.1

  2. Wifi Error Wpa_supplicant?

  3. Tidak Dapat Menulis Ke File Di Freebsd — Sistem File Hanya-Baca?

  1. Freebsd – Tambahkan Freebsd ke Menu Boot Grub2?

  2. Freebsd – Dukungan Twain Api Di Freebsd?

  3. Bagaimana status dukungan driver video Linux saat ini?

  1. Dukungan Transparansi Sertifikat

  2. Freebsd – Menonaktifkan Pool Zfs dengan Cepat Dan Aman Sebagai Keseluruhan Monolitik?

  3. Kesalahan Zfs Grub-probe Gagal Mendapatkan Jalur Kanonik /dev/disk_name?