L'importation ZFS n'a trouvé aucun pool

11

J'avais un pool ZFS - un miroir contenant 2 vdev - fonctionnant sur un serveur FreeBSD. J'ai maintenant seulement un des disques du miroir, et j'essaye d'en récupérer des fichiers.

Les données ZFS se trouvent dans une partition GPT sur le disque.

Lorsque j'essaie d'importer le pool, il n'y a aucun signe qu'il existe. J'ai essayé un certain nombre d'approches, mais rien ne se passe.

J'ai couru zdb -lusur la partition, et il semble trouver les étiquettes très bien.

# zpool import
# zpool import -D
# zpool status
no pools available
# zpool import -f ztmp
cannot import 'ztmp': no such pool available
# zpool import 16827460747202824739
cannot import '16827460747202824739': no such pool available

Informations sur la partition:

# gpart list da0
Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 3907029134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da0p1
   Mediasize: 65536 (64K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   rawuuid: d7a10230-8b0e-11e1-b750-f46d04227f12
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 65536
   offset: 17408
   type: freebsd-boot
   index: 1
   end: 161
   start: 34
2. Name: da0p2
   Mediasize: 17179869184 (16G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7aa40b7-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 17179869184
   offset: 82944
   type: freebsd-swap
   index: 2
   end: 33554593
   start: 162
3. Name: da0p3
   Mediasize: 1905891737600 (1.7T)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7b6a47e-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 1905891737600
   offset: 17179952128
   type: freebsd-zfs
   index: 3
   end: 3755999393
   start: 33554594
Consumers:
1. Name: da0
   Mediasize: 2000398934016 (1.8T)
   Sectorsize: 512
   Mode: r0w0e0

Étiquette ZFS:

--------------------------------------------
LABEL 0
--------------------------------------------
    version: 5000
    name: 'ztmp'
    state: 0
    txg: 0
    pool_guid: 16827460747202824739
    hostid: 740296715
    hostname: '#############'
    top_guid: 15350190479074972289
    guid: 3060075816835778669
    vdev_children: 1
    vdev_tree:
        type: 'mirror'
        id: 0
        guid: 15350190479074972289
        whole_disk: 0
        metaslab_array: 30
        metaslab_shift: 34
        ashift: 9
        asize: 1905887019008
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 3060075816835778669
            path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            phys_path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            whole_disk: 1
            DTL: 5511
            resilvering: 1
        children[1]:
            type: 'disk'
            id: 1
            guid: 3324029433529063540
            path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            phys_path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            whole_disk: 1
            DTL: 3543
            create_txg: 4
            resilvering: 1
    features_for_read:
    create_txg: 0
Uberblock[0]
    magic = 0000000000bab10c
    version = 5000
    txg = 0
    guid_sum = 1668268329223536005
    timestamp = 1361299185 UTC = Tue Feb 19 10:39:45 2013

(Les autres étiquettes sont des copies exactes)

Il y a une discussion sur un problème de son similaire dans ce vieux fil . J'ai essayé d'exécuter l' labelfixoutil de Jeff Bonwick (avec les mises à jour de ce post ), mais cela ne semble pas résoudre le problème.

Des idées?

squidpickles
la source
2
Le lecteur a été détaché du miroir, plutôt que d'être divisé. Il semble que ce soit la cause du problème. Le reste du miroir n'existe malheureusement pas.
squidpickles
1
Je ne sais pas que c'est le forum approprié pour cela, car la «réponse» à la question implique beaucoup d'essais et d'erreurs. Pour l'instant, essayez 'zpool import -d </ dev / path / to / disk>'. -D répertorie les pools détruits, -d prend un argument de l'emplacement d'un disque à consulter et peut être spécifié plusieurs fois sur la ligne de commande (mais dans votre cas, une seule fois sera nécessaire car vous ne disposez que d'un seul disque) . Voyez ce que cela fait.
Nex7
1
Vous avez peut-être raison de dire que ce n'est pas le bon forum. Et oui, j'ai essayé avec les options -det -D, en vain.
squidpickles
1
Si vous avez essayé avec -d <chemin de développement du disque, y compris la partition> et qu'il ne s'est pas affiché, réessayez tout sauf sur un système d'exploitation illumos. Si cela ne peut toujours pas le voir, je suis à court d'idées. Vous devrez peut-être engager un expert en récupération de données si les données ont une valeur monétaire, ou commencer à regarder le code (src.illumos.org) lorsque vous êtes sur le dérivé illumos et dtracez la commande zpool import pour voir quel chemin il prend et essayez pour comprendre pourquoi il ne peut pas voir votre piscine.
Nex7
2
@GrahamPerrin J'ai fini par le faire fonctionner. J'ai édité les sources ZFS sur mon installation FreeBSD, et je les ai fait contourner tous les contrôles d'intégrité. Après en avoir désactivé suffisamment, j'ai réussi à importer le pool. Quelqu'un a dû contourner mes propres tests de santé mentale ...
squidpickles

Réponses:

6

pour référence future, le simple fait d'importer zpool -a (recherchera tout), aide généralement aussi quand un zpool / zfs fs n'est pas reconnu.

Mal
la source
je vois même le mien dans le cache, mais essayer cela n'a pas fonctionné. Je sauvegarde mon fichier cache, essayant avec et sans lui, et pour le forcer, etc. aussi, je vais vérifier ce que Graham a suggéré ci-dessus.
Brian Thomas
4

Extrait du commentaire (de l'affiche d'ouverture):

J'ai édité les sources ZFS sur mon installation FreeBSD, et je les ai fait contourner tous les contrôles d'intégrité. Après en avoir désactivé suffisamment, j'ai réussi à importer le pool.

Graham Perrin
la source
1

J'ai en quelque sorte bousillé ma configuration ZFS. Malheureusement, je ne me souviens pas exactement de ce que j'ai fait (j'ai changé du matériel alors j'ai foiré; ne soyez pas comme moi!), Mais cela a fonctionné pour moi. J'utilise XigmaNAS (nas4free) et toutes les commandes ci-dessous sont émises via le terminal.

Un vague souvenir de ce que j'ai fait (et je n'ai pas fait):

  • N'a exporté aucun pool
  • Pourrait avoir supprimé (détruit) la piscine

Symptômes:

  1. Dans l'interface graphique Web, le disque peut être automatiquement importé et reconnu comme un zpool (non formaté ou UFS, etc.)
  2. Cependant, la section GUI ZFS ne peut pas détecter le zpool. Je ne peux donc pas importer la piscine en appuyant simplement sur les boutons. L'importation forcée n'a pas fonctionné non plus.
  3. Les informations SMART sur ce disque sont correctes dans l'interface graphique. Je ne pense pas que le disque soit physiquement endommagé.
  4. Dans la section Informations sur l'interface graphique, le disque est représenté par da1. C'est assez d'informations dont j'ai besoin avant d'aller au terminal.
  5. Avertissement aux autres utilisateurs: si vous rencontrez des problèmes avec l'interface graphique, arrêtez immédiatement toute opération destructrice. Tels que créer un nouveau vdev ou essayer avec d'autres formats de disque. Allez au terminal.
  6. Dans le terminal, voici quelques tentatives de commandes et de résultats.

    • zpool import -a dit no pool available to import
    • zpool statusdit no pools available(langue cassée? lol.)
    • gpart list -a ne montre pas da1
    • gpart list da1 dit gpart: no such geom: da1
    • zpool list dit no pools available
    • glabel list -a ne montre aucun pool dans da1
    • zdb -l /dev/da1est capable d'imprimer les deux étiquettes da1, donc mon disque n'est pas mort
    • zpool import -Dindique que le pool da1est détruit et peut être importé

Solution:

Run a zpool import -D -f (poolname)résolu le problème.

Yvon
la source