Acabei de atualizar o Ubuntu 14.04 e tinha dois pools de ZFS no servidor. Houve um pequeno problema comigo lutando com o driver ZFS e a versão do kernel, mas isso funcionou agora. Uma piscina ficou online e montou bem. O outro não. A principal diferença entre a ferramenta é que uma era apenas um conjunto de discos (armazenamento de vídeo / música) e a outra era um conjunto de raidz (documentos, etc.)
Eu já tentei exportar e reimportar o pool, sem sucesso, tentar importar me deixa assim:
root@kyou:/home/matt# zpool import -fFX -d /dev/disk/by-id/
pool: storage
id: 15855792916570596778
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
storage UNAVAIL insufficient replicas
raidz1-0 UNAVAIL insufficient replicas
ata-SAMSUNG_HD103SJ_S246J90B134910 UNAVAIL
ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523 UNAVAIL
ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969 UNAVAIL
Os links simbólicos para aqueles /dev/disk/by-id
também existem:
root@kyou:/home/matt# ls -l /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910* /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51*
lrwxrwxrwx 1 root root 9 May 27 19:31 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910 -> ../../sdb
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part9 -> ../../sdb9
lrwxrwxrwx 1 root root 9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523 -> ../../sdd
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part9 -> ../../sdd9
lrwxrwxrwx 1 root root 9 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969 -> ../../sde
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1 -> ../../sde1
lrwxrwxrwx 1 root root 10 May 27 19:15 /dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part9 -> ../../sde9
Inspecionando os vários /dev/sd*
dispositivos listados, eles parecem ser os corretos (as 3 unidades de 1 TB que estavam em uma matriz raidz).
Eu executei zdb -l
em cada unidade, despejando-o em um arquivo e executando um diff. A única diferença nos três são os campos de guia (que eu assumo que é esperado). Todos os três rótulos em cada um são basicamente idênticos e são os seguintes:
version: 5000
name: 'storage'
state: 0
txg: 4
pool_guid: 15855792916570596778
hostname: 'kyou'
top_guid: 1683909657511667860
guid: 8815283814047599968
vdev_children: 1
vdev_tree:
type: 'raidz'
id: 0
guid: 1683909657511667860
nparity: 1
metaslab_array: 33
metaslab_shift: 34
ashift: 9
asize: 3000569954304
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 8815283814047599968
path: '/dev/disk/by-id/ata-SAMSUNG_HD103SJ_S246J90B134910-part1'
whole_disk: 1
create_txg: 4
children[1]:
type: 'disk'
id: 1
guid: 18036424618735999728
path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51422523-part1'
whole_disk: 1
create_txg: 4
children[2]:
type: 'disk'
id: 2
guid: 10307555127976192266
path: '/dev/disk/by-id/ata-WDC_WD10EARS-00Y5B1_WD-WMAV51535969-part1'
whole_disk: 1
create_txg: 4
features_for_read:
Estupidamente, eu não tenho um backup recente desse pool. No entanto, o pool estava bom antes da reinicialização e o Linux vê os discos bem (eu tenho o smartctl sendo executado agora para verificar novamente)
Então, em resumo:
- Atualizei o Ubuntu e perdi o acesso a um dos meus dois zpools.
- A diferença entre as piscinas é aquela que surgiu no JBOD, a outra estava com medo.
- Todas as unidades no zpool desmontável têm a marca UNAVAIL, sem anotações para dados corrompidos
- Os conjuntos foram criados com discos referenciados
/dev/disk/by-id/
. - Os links simbólicos dos
/dev/disk/by-id
vários/dev/sd
dispositivos parecem estar corretos zdb
pode ler os rótulos das unidades.- O pool já tentou exportar / importar e não pode importar novamente.
Existe algum tipo de magia negra que posso invocar via zpool / zfs para trazer esses discos de volta para uma matriz razoável? Posso executar zpool create zraid ...
sem perder meus dados? Meus dados desaparecem de qualquer maneira?
/dev/disk/by-id
para essas unidades, e todos os links simbólicos de um dispositivo apontam para a mesma/dev/sd*
unidade. E a coisa mais próxima que posso encontrar de uma solução (use zpool replace), não posso fazer, pois não consigo reimportar o pool.