Atualização do zfs-0.6.2-1.el6.x86_64 para zfs-0.6.3-1.el6.x86_64 fez por zpool ilegível

4

Depois de executar # yum update zfs e reiniciar meu sistema CentOS 6 ZFS on Linux , você não poderá mais ver ou interagir com seus zpools.

# zpool status
no pools available
# zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion 'nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
Aborted
# dmesg | grep -i spl 
SPL: Loaded module v0.6.2-1 
SPL: using hostid 0x43a4c8a0

Este é um sistema canário, então não estou preocupado com seu conteúdo, mas tenho outras máquinas que gostaria de atualizar com segurança. O que fiz de errado e, mais importante, como posso fazer certo pelos sistemas importantes?

    
por 84104 18.06.2014 / 20:44

3 respostas

5

Parece um erro. Na verdade, é um bug . O userland do ZFS é atualizado, mas os módulos do kernel não estão sendo atualizados pelo DKMS. Esta afirmação é causada pela incompatibilidade de versões.

Você pode contornar isso por um processo dado em um comentário ao bug, por removendo os antigos módulos do kernel e depois reinstalando tudo.

$ find /lib/modules/$(uname -r)/extra -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f
$ find /lib/modules/$(uname -r)/weak-updates -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f
$ yum reinstall zfs-release
$ yum reinstall $(rpm -qa | egrep "zfs|spl")
    
por 18.06.2014 / 20:49
5

Isso foi discutido na lista de e-mails do ZFS .

The kernel ABI changed between 0.6.2 and 0.6.3 in such a way that 0.6.3 user-land tools can't interact with 0.6.2 kernel modules, which is the configuration after upgrading to 0.6.3. According to numerous messages on this list, the right approach is simply to reboot.

Isso é abordado no relatório de erros do ZFS: link

Eu só uso o ZFS para partições de dados, então eu desinstalei os pacotes, me livrei das referências dos módulos fracos e reinstalei o ZFS.

# rpm -e 'rpm -qa | egrep '(spl|zfs)''
# cd /lib/modules/2.6.32-431.17.1.el6.x86_64/weak-updates/
# rm -fr spl* z*
# yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release$(rpm -E %dist).noarch.rpm
# yum install zfs

Editar : ainda tive que reinicializar.

Editar:

Após as duas soluções apresentadas, resultou em alguns problemas com a instalação do ZFS. Existem alguns problemas com o carregamento do módulo devido a um parâmetro crítico ausente ( zfs: Unknown parameter zfs_vdev_max_pending ''). Eu considero esta versão insegura para lançamento geral ou atualizações cegas em sistemas existentes.

    
por 18.06.2014 / 20:48
4

Se você acabar nesta página e estiver executando o Debian , só precisará fazer o seguinte para corrigir o problema:

# apt-get update
# apt-get dist-upgrade
# reboot

O problema ocorreu porque um update simples não substitui arquivos de biblioteca antigos pelos mais recentes. É por isso que é necessário um dist-upgrade . Da página do apt-get :

dist-upgrade in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a "smart" conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. The dist-upgrade command may therefore remove some packages.

Fonte: link

    
por 27.06.2014 / 03:33