ZFS na atualização do linux de 0.6.2 para 0.6.3 fez com que meu zpool ilegível ajudasse a traduzir os comandos do CentOS para o Ubuntu

6

Após atualizar meu ubuntu 13.10 server usando sudo apt-get upgrade e reinicializar, meu zpool não seria exibido.

messier@ANDERSON:~$ sudo zpool status
no pools available
messier@ANDERSON:~$ sudo zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion 'nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
messier@ANDERSON:~$

Eu olhei no zfs no github linux e achei uma correção para o CentOS que é remover o antigo módulos do kernel e, em seguida, reinstalar o software para obter os novos módulos do kernel.

$ 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")

As pessoas estão dizendo que isso é consertar isso. Eu só não sei como fazer essa correção correr no meu servidor Ubuntu. Obrigado pela ajuda!

Última edição: Se você entrar nesta página para o bug de atualização do zfs. A solução mais fácil é como Scott Simon disse.

# apt-get update
# apt-get dist-upgrade
# reboot
    
por Reissem 19.06.2014 / 03:58

4 respostas

6
$ sudo find /lib/modules/$(uname -r)/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
$ sudo apt-get install --reinstall ubuntu-zfs
$ sudo apt-get install --reinstall $(dpkg-query --show --showformat='${binary:Package}\n' | egrep 'spl|zfs')

O Ubuntu mantém todos os seus dkms em /lib/modules/$(uname -r)/updates , em vez de em /lib/modules/$(uname -r)/extra e find /lib/modules/$(uname -r)/weak-updates como o CentOS faz.

yum resinstall é equivalente a apt-get install --reinstall .
O meta-pacote zfs do Ubuntu é ubuntu-zfs em vez de zfs-release , como no CentOS.
rpm -qa é equivalente a dpkg-query --show --showformat='${binary:Package}\n'

Eu também não tenho certeza se o comando find realmente precisa ser executado, já que apt-get pode cuidar disso, mas executá-lo não interromperá o processo.

Alguém com mais conhecimento ou experiência com dpkg pode ser capaz de escrever um comando ligeiramente mais eficiente, mas suspeito que isso seja bom o suficiente para a maioria dos propósitos.

    
por 19.06.2014 / 20:05
3

A página de erros oficial tem essa correção para usuários do Ubuntu e do Debian:

# apt-get update
# apt-get dist-upgrade
# reboot
    
por 15.07.2014 / 05:32
2

Eu tenho o debian-zfs instalado no proxmox 3.2 (usando este kernel pve-headers-2.6.32-26-pve). Foi assim que consertei após a atualização.

aptitude purge dkms debian-zfs spl-dkms zfs-dkms

Eu escolhi "Sim" para todos os prompts, para remover tudo. Depois que isso foi feito, eu fiz algumas verificações se há alguma sobra de dkms. O comando abaixo deve mostrar um diretório vazio.

ls /lib/modules/2.6.32-26-pve/updates/dkms/

Se você ver alguma coisa lá (o diretório acima), você precisa apagar tudo (a menos que você tenha outros módulos do kernel customizados) .

Então foi tão simples como:

apt-get install debian-zfs

Em seguida, importe meu pool (meu pool é chamado de tank):

zpool import tank

zfs ficou chateado porque não foi devidamente exportado antes de todo o drama acontecer.

cannot import 'tank': pool may be in use on another system

Isso não é um problema, tentei novamente com isso:

zpool import -f tank

Os itens acima funcionaram e consegui ver meu pool com este comando:

zpool status
    root@proxmox-01:~# zpool status
  pool: tank
 state: ONLINE
  scan: scrub repaired 0 in 0h8m with 0 errors on Tue Jul  8 20:39:13 2014
config:

        NAME                                           STATE     READ WRITE CKSUM
        tank                                           ONLINE       0     0     0
          raidz2-0                                     ONLINE       0     0     0
            scsi-SATA_WDC_WD1001FALS-_WD-WMATV4198253  ONLINE       0     0     0
            scsi-SATA_WDC_WD1002FAEX-_WD-WCAW30398837  ONLINE       0     0     0
            scsi-SATA_WDC_WD1002FAEX-_WD-WCAW30404054  ONLINE       0     0     0
            scsi-SATA_WDC_WD1002FAEX-_WD-WCAW30406039  ONLINE       0     0     0

errors: No known data errors

Eu estava feliz com isso. Mas proxmox foi um pouco mais difícil. Eu tive que mexer com o ponto de montagem para proxmox, porque ele cria automaticamente a estrutura de diretório de "armazenamento" que você adiciona ao proxmox.

Primeiro, eu verifico se /tank não era um pool zfs adorável, usando du -hs /tank . Minha piscina tem muita coisa, muito mais que 12KB.

Eu exporto (desconecto) meu pool zfs zpool export tank

Eu removi o diretório EMPTY /tank com rm -R /tank (verifique novamente !!)

Em seguida, importo meu pool (connect) zpool import tank e seu armazenamento zfs deve estar funcionando e acessível à proxmox.

Foi assim que consegui que o meu zfs trabalhasse no proxmox em primeiro lugar:

link

    
por 08.07.2014 / 23:09
0

A solução do usuário 84104 "funcionou". Eu fiz a primeira linha disso. Então o resto não funcionou direito. Então eu tentei sudo apt-get remove ubuntu-zfs dkms e, em seguida, sudo apt-get install ubuntu-zfs dkms e o mesmo erro ocorreu. O Dkms não reconheceu que o zfs / 0.6.3 e o spl / 0.6.3 eram diferentes daquele que vem com o kernel 3.11.0-23-genérico. Então eu usei sudo dkms remove zfs/0.6.3 --all e sudo dkms remove zfs/0.6.3 --all e então forcei a instalação de ambos os módulos usando sudo dkms install zfs/0.6.3 --force e sudo dkms install spl/0.6.3 --force

Basicamente, a solução é usar o dkms para remover os módulos e, em seguida, forçar a instalação do 0.6.3.

    
por 20.06.2014 / 02:28