Restaurar el grupo ZFS después de crearlo

Restaurar el grupo ZFS después de crearlo

Reinstalé mi sistema Ubuntu 14.04 e intenté montar mi unidad zfs existente. Es una unidad única con todos los datos. El sistema operativo está en una unidad diferente, la unidad zfs solo contiene datos.

El nombre del grupo es crystal.

En mi prisa (sí) lo hicezpool create crystal /dev/disk-by-id/...etc...

La piscina ahora está vacía.

¿Hay alguna forma de restaurar el grupo original y/o recuperar los datos?

Respuesta1

Desafortunadamente:No en realidad no.

Hay, de manera algo poco intuitiva, principalmente dos operaciones destructivas en ZFS: zfs destroyy zpool create. En concreto, el comandozpool destroy esnodestructivo y, de hecho, es bastante fácilmente reversible si sólo te das cuenta rápidamente de tu error;simplemente establece una bandera, en cuyo caso zpool import -Des tu amigo.

Estos comandos son destructivos por razones similares, pero ligeramente diferentes:

  • zfs destroyes destructivo porque elimina las referencias al conjunto de datos que se está destruyendo, por lo que no hay forma de encontrarlo en el disco utilizando herramientas estándar. (Pero ver tambiénesta pregunta.)
  • zpool createes destructivo porque sobrescribe todos los überbloques del grupo, lo que significa que no hay forma de que el código ZFS encuentre el comienzo de las estructuras de datos del árbol Merkle en el disco. Una vez que no se puede encontrar la raíz del árbol, el resto de los datos se vuelven inaccesibles.

Ambos problemas se ven exacerbados por el complejo formato en disco de ZFS, que complica aún más cualquier intento de recuperación. Con la mayoría de los otros sistemas de archivos, los archivosgeneralmenteser contiguos o en un pequeño número de ubicaciones distintas. Con ZFS, es perfectamente posible que los datos se distribuyan literalmente por todo el disco, sin que quede nada después de cualquiera de los comandos anteriores para indicar qué partes pertenecen a dónde. Para empeorar aún más las cosas, seguramente está buscando bloques de datos comprimidos y posiblemente también cosas como datos deduplicados. (La deduplicación no es probable en su escenario, pero ciertamente es una posibilidad en el caso general).

ÉlpodríaSerá posible contratar a algunos expertos de ZFS para recuperar sus datos, pero es poco probable que los servicios de recuperación de datos comunes puedan ayudarlo en este punto, y el software de recuperación de sistemas de archivos comúnmente disponible ni siquiera entiende ZFS. Suponiendo que pueda encontrar personas dispuestas a trabajar con usted, también serámuycaro; He visto menciones de precios.a partir deen el rango de dólares de cinco dígitos para escenarios similares.

Probablemente su mejor opción en este momento sea restaurar una copia de seguridad reciente de sus datos y seguir adelante con su vida.

Sinceramente, estoy un poco desconcertado por qué pudiste sobrescribir el grupo con un comando parecido al indicado en tu pregunta. En mi sistema, con ZFS en Linux 0.6.4, habiendo construido un escenario similar, zpoolrechaza la createoperación con un error de "especificación vdev no válida" que indica que el dispositivo de respaldo is part of exported pool '...'. Debería haber recibido un error similar, a menos que haya pasado explícitamente -fa zpool para forzar la operación, en cuyo caso le está diciendo a ZFS que sí, que en realidad realmentedesearpara hacer esto. Cualespecialmenteen el caso de ZFS suele sernoque quieres hacer.

información relacionada