La importación de ZFS no puede encontrar ningún grupo

11

Tenía un grupo ZFS, un espejo que contenía 2 vdevs, ejecutándose en un servidor FreeBSD. Ahora solo tengo uno de los discos del espejo, y estoy tratando de recuperar archivos de él.

Los datos de ZFS se encuentran en una partición GPT en el disco.

Cuando intento importar el grupo, no hay señal de que exista. He probado varios enfoques, pero no pasa nada.

He corrido zdb -luen la partición, y parece encontrar las etiquetas muy 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

Información de partición:

# 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

Etiqueta 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

(Otras etiquetas son copias exactas)

Hay una discusión sobre un problema de sonido similar en este viejo hilo . Intenté ejecutar la labelfixherramienta de Jeff Bonwick (con actualizaciones de esta publicación ), pero no pareció resolver el problema.

¿Algunas ideas?

calamares
fuente
2
La unidad se separó del espejo, en lugar de dividirse. Parece que esa fue la causa del problema. El resto del espejo no existe, desafortunadamente.
squidpickles
1
No sé si este es el foro adecuado para esto, porque la 'respuesta' a la pregunta implica mucha prueba y error. Por ahora, intente 'zpool import -d </ dev / path / to / disk>'. -D enumera las agrupaciones destruidas, -d toma un argumento de la ubicación de un disco para mirar, y se puede especificar varias veces en la línea de comando (pero en su caso, solo se necesitará una vez ya que tiene un solo disco) . Mira lo que hace eso.
Nex7
1
Puede que tengas razón acerca de que este no es el foro correcto. Y sí, lo he intentado con las opciones -dy -D, sin éxito.
Squidpickles
1
Si intentó con -d <ruta de desarrollo de disco, incluida la partición> y no apareció, intente todo de nuevo, pero en un sistema operativo illumos. Si eso todavía no puede verlo, estoy sin ideas. Es posible que deba contratar a un experto en recuperación de datos si los datos tienen un valor monetario, o comenzar a mirar el código (src.illumos.org) mientras está en el derivado de illumos y trazar el comando de importación de zpool para ver qué ruta toma e intentar para descubrir por qué no puede ver tu piscina.
Nex7
2
@GrahamPerrin Terminé haciéndolo funcionar. Edité las fuentes de ZFS en mi instalación de FreeBSD e hice que omitieran todas las comprobaciones de cordura. Después de deshabilitar lo suficiente, logré importar el grupo. Alguien debe haber pasado por alto mis propios controles de cordura ...
squidpickles

Respuestas:

6

para referencia futura, simplemente hacer zpool import -a (buscará todos), generalmente también ayuda cuando no se reconoce un zpool / zfs fs.

Mal
fuente
Incluso veo el mío en el caché, pero intentarlo no funcionó. Estoy haciendo una copia de seguridad de mi archivo de caché, intentándolo con y sin él, y para forzarlo, etc. también, voy a verificar lo que Graham sugirió anteriormente.
Brian Thomas
4

Del comentario (del póster de apertura):

Edité las fuentes de ZFS en mi instalación de FreeBSD e hice que omitieran todas las comprobaciones de cordura. Después de deshabilitar lo suficiente, logré importar el grupo.

Graham Perrin
fuente
1

De alguna manera arruiné mi configuración de ZFS. Desafortunadamente, no recuerdo qué hice exactamente (he estado cambiando algo de hardware, así que me equivoqué; ¡no seas como yo!), Pero esto funcionó para mí. Estoy usando XigmaNAS (nas4free) y todos los comandos a continuación se emiten a través del terminal.

Algunos recuerdos vagos sobre lo que hice (y no hice):

  • No exportó ningún grupo
  • Podría haber eliminado (destruido) el grupo

Síntomas

  1. En la GUI web, el disco puede importarse automáticamente y reconocerse como un zpool (sin formato o UFS, etc.)
  2. Sin embargo, la sección ZFS de la GUI no puede detectar el zpool. Por lo tanto, no puedo importar el grupo simplemente presionando los botones. La importación forzada tampoco funcionó.
  3. La información SMART sobre este disco se ve bien en la GUI. No creo que el disco esté dañado físicamente.
  4. En la sección de Información GUI muestra el disco como da1. Esta es suficiente información que necesito antes de ir a la terminal.
  5. Advertencia a otros usuarios: si tiene problemas con la GUI, detenga inmediatamente las operaciones destructivas. Como crear un nuevo vdev o probar con otros formatos de disco. Ve a la terminal.
  6. En la terminal, aquí hay algunos intentos de comandos y resultados.

    • zpool import -a dice no pool available to import
    • zpool statusdice no pools available(lenguaje roto? jajaja)
    • gpart list -a no muestra da1
    • gpart list da1 dice gpart: no such geom: da1
    • zpool list dice no pools available
    • glabel list -a no muestra ningún grupo en da1
    • zdb -l /dev/da1es capaz de imprimir las dos etiquetas da1, por lo que mi disco no está muerto
    • zpool import -Ddice que el grupo da1está destruido y que puede importarse

Solución:

Run zpool import -D -f (poolname)resolvió el problema.

Yvon
fuente