Je viens de mettre à jour Ubuntu 14.04 et j'avais deux pools ZFS sur le serveur. Il y avait un problème mineur avec moi qui me battais avec le pilote ZFS et la version du noyau, mais cela a fonctionné maintenant. Un pool est entré en ligne et s'est bien monté. L'autre ne l'a pas fait. La principale différence entre l'outil est que l'un était juste un pool de disques (stockage vidéo / musique), et l'autre était un ensemble raidz (documents, etc.)
J'ai déjà tenté d'exporter et de réimporter le pool, en vain, tenter d'importer me donne ceci:
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
Les liens symboliques pour ceux /dev/disk/by-id
qui existent existent également:
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
En inspectant les différents /dev/sd*
périphériques répertoriés, ils semblent être les bons (les 3 disques de 1 To qui se trouvaient dans une matrice raidz).
J'ai exécuté zdb -l
sur chaque lecteur, en le vidant dans un fichier et en exécutant un diff. La seule différence sur les 3 sont les champs guid (qui, je suppose, sont attendus). Les 3 étiquettes de chacune sont fondamentalement identiques et sont les suivantes:
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:
Bêtement, je n'ai pas de sauvegarde récente de ce pool. Cependant, le pool était bien avant le redémarrage, et Linux voit les disques bien (j'ai smartctl en cours d'exécution pour vérifier à nouveau)
Donc, en résumé:
- J'ai mis à jour Ubuntu et perdu l'accès à l'un de mes deux zpools.
- La différence entre les piscines est celle qui est apparue était JBOD, l'autre était zraid.
- Tous les disques du zpool non montable sont marqués INDISPONIBLE, sans notes pour les données corrompues
- Les pools ont tous deux été créés avec des disques référencés à partir de
/dev/disk/by-id/
. - Les liens symboliques de
/dev/disk/by-id
vers les différents/dev/sd
appareils semblent être corrects zdb
peut lire les étiquettes des lecteurs.- Le pool a déjà été tenté d'être exporté / importé et ne peut pas réimporter.
Existe-t-il une sorte de magie noire que je peux invoquer via zpool / zfs pour ramener ces disques dans un tableau raisonnable? Puis-je courir zpool create zraid ...
sans perdre mes données? Mes données ont-elles disparu de toute façon?
/dev/disk/by-id
pour ces lecteurs, et tous les liens symboliques pour un périphérique pointent vers le même/dev/sd*
lecteur. Et la chose la plus proche que je peux trouver à une solution (utilisez zpool replace), je ne peux pas le faire car je ne peux pas réimporter le pool.