Estado do ZFS xattr suportado no FreeBSD

15

Estou tentando descobrir se ou não, ou melhor, em que extensão, os xattrs são suportados no FreeBSD usando o ZFS. Eu li algumas informações conflitantes.

  1. zfs get xattrlista como on (default)para /, /usre /var, mas como off (temporary)para todos os outros conjuntos de dados, incluindo filhos dos mencionados acima.
  2. Em execução zfs set xattr=on zroot/usr/home, recebo a mensagem

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

  3. Isso concorda com a zfspágina do manual :

    A xattrpropriedade atualmente não é suportada no FreeBSD.

  4. setextattr, getextattrE lsextattrparecem funcionar bem o suficiente.
  5. Também consegui salvar e restaurar um nó do arquivo de dispositivo usando rsync --fake-supere pude ver seus dados usando lsextattre getextattr.
  6. A Wikipedia tem alguma discussão na página de discussão do xattr . Aparentemente, houve uma alegação de que o ZFS suporta o xattr desde o FreeBSD 8, mas que foi removido posteriormente, com referência à página de manual (veja 3.).

Atualmente, tenho a impressão de que atributos estendidos no zfs funcionam na prática, mas que a xattrpropriedade que controlaria seu uso não funciona como em outras distribuições do zfs. Mas eu gostaria de ouvir isso confirmado (ou corrigido) antes de confiar em grandes quantidades de dados de backup rsync --fake-superem uma máquina em execução. Prefiro não perder todos os meus metadados devido a problemas conhecidos do xattr.

Se isso importa, esta é uma instalação muito recente do FreeBSD 10.2 que acabei de configurar, com o ZFS configurado pelo instalador.

MvG
fonte
1
Eu publiquei isso no fórum do FreeBSD . Vamos esperar que isso, ou a recompensa, ou ambos, ajude a obter uma resposta autorizada sobre isso.
MvG 07/03
1
Também publiquei isso na lista de discussão do freebsd-fs . Seria uma pena que a recompensa expire sem resposta.
MvG 12/03
O link da lista de discussão está morto.
Mateusz Piotrowski
1
@Mateusz: O criador do gmane interrompeu esse serviço , embora aparentemente haja negociações para outra pessoa continuar com ele novamente. Aqui está a postagem no arquivo FreeBSD, ou aqui, para pesquisar meu ID de mensagem .
MvG 27/08/16

Respostas:

5

Como você descobriu, o xattrs funcionará, mas existem arestas.

Às vezes você precisa abordar o código-fonte aberto como um antropólogo. Se isso não for útil por si só, talvez isso cause algumas contribuições melhores (ou, eventualmente, correções de código!)

Encontrei isso no código fonte:

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

e isso https://github.com/freebsd/freebsd/blob/386ddae58459341ec567604707805814a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302

e ainda assim isso dá uma pausa: https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c#L1638

Então, o que eu acho que realmente está acontecendo é que xattrs funciona, mas a funcionalidade de desativá-los (ou ativá-los) pelas propriedades do conjunto de dados do ZFS é interrompida, portanto a mensagem "não suportado" significa "você está por sua conta".

Existe algum código lá que define MNTOPT_XATTR, mas eu não o localizei. tentar alterá-lo usando o zfs set recebe a mensagem não suportada. Meu palpite é que explica a estranheza da propriedade zfs xattr com /, / usr, / var e a configuração / comportamento conflitante de / home.

Isso lança alguma luz sobre as coisas. https://www.lesbonscomptes.com/pages/extattrs.html

Jeremy
fonte