Cómo recuperar datos de un disco BtrFS o una matriz RAID
En nuestro artículo, aprenderá a recuperar los datos de un btrfs Raid en Linux. Cómo crear uno, reemplazar un disco defectuoso y recuperar los datos perdidos de una matriz dañada.
- Sistema de archivos btrfs
- Creación de un punto de montaje
- Cómo crear RAID5
- Cómo montar un disco RAID
- Cómo sustituir o añadir una unidad
- Cómo reparar un volumen dañado
- Recuperación de datos con btrfs RAID5
- Características del sistema de archivos btrfs
- Conclusión
- Preguntas y respuestas
- Comentarios
Frecuentemente para la creación de una matriz RAID en el sistema operativo Linux se utilizan mdadm y lvm, Puede obtener más información sobre estos sistemas en uno de nuestros videotutoriales.
Además de estas herramientas explicadas en el vídeo, el sistema de archivos Btrfs tiene soporte incorporado para RAID. Esto tiene sus propias herramientas para construir y manipular matrices de discos, así que vamos a echar un vistazo más de cerca a lo que este sistema puede hacer.
Sistema de archivos btrfs
Btrfs – es un nuevo sistema de archivos con soporte de Copia en Escritura con soporte RAID incorporado. La esencia de esta gran función es no sobrescribir los datos antiguos al copiar. Esto es una gran ventaja y hace que sea mucho más fácil recuperar los archivos borrados después de los fallos. Dado que cualquier fallo o error durante el proceso de copia no afectará al estado anterior de los archivos.
Característica | Descripción |
---|---|
Tipo de sistema de archivos | Copiar al escribir (COW) |
Soporte de snapshots | Capacidad para crear snapshots para una rápida recuperación de datos |
Soporte RAID | Soporte integrado para configuraciones RAID (RAID 0, 1, 5, 6, 10) |
Compresión de datos | Admite compresión de datos transparente para ahorrar espacio |
Integridad de los datos | Verificación de la integridad de los datos mediante hash y recuperación automática |
Desfragmentación | Desfragmentación automática y manual de datos |
Ampliabilidad | Expansión dinámica del tamaño del sistema de archivos sin desmontar |
Clonación de archivos | Capacidad para clonar archivos rápidamente sin duplicar datos |
El sistema de archivos almacena los metadatos por separado de los datos del sistema de archivos, y puede utilizar diferentes capas de RAID para esta información simultáneamente, esta es su principal ventaja. Además, el objetivo de este sistema es proporcionar una mejor gestión del almacenamiento y una mayor seguridad para la integridad de los datos de Linux.
Antes de empezar a utilizar btrfs, tendremos que instalar las herramientas de gestión de SA necesarias ejecutando el siguiente comando:
sudo apt install btrfs-tools
Creación de un punto de montaje
Y antes de construir RAID debes crear el directorio del punto de montaje.
Crear un directorio:
Sudo mkdir –v /data
Donde «data» – эes su nombre.
Ahora vamos a empezar a crear el array.
Cómo crear RAID5
Al crear un array no es necesario particionar la unidad, el sistema de archivos no lo requiere. Puedes combinar las unidades en un array como un todo o como particiones separadas, incluso fusionar unidades con particiones existentes. En mi ejemplo mostraré cómo crear RAID 5 de cinco discos.
Para evitar tener que teclear tu contraseña de root todos los comandos se ejecutarán como administrador.
Para construir una matriz, escriba el siguiente comando en el terminal:
sudo mkfs.btrfs -L data -m raid5 -d raid5 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
Donde:
L - es una etiqueta o nombre del sistema de archivos
Parámetro:
d - establecemos el tipo RAID5 para los datos.
m - establecemos el tip RAID5 para metadatos.
f - sirve para forzar la creación de btrfs incluso si alguna de las unidades está formateada en un sistema de archivos diferente.
Ahora, se puede montar utilizando cualquiera de las unidades que están incluidas.
Cómo montar un disco RAID
He utilizado 5 unidades para crear RAID: sdb, sdc, sdd, sde y sdf. Así puedo montar los datos del sistema de archivos en el directorio data con ayuda del disco sdb. Abrimos la gestión de discos y montamos nuestra unidad que estará disponible después de todo eso.
Alternativamente, puede montar el disco en el terminal.
sudo mount /dev/sdb1 /data
Para comprobarlo, introduzca sudo df -h
sudo df -h
Como puedes ver, nuestro array está montado en un directorio /data
Y para ver la información sobre el espacio ocupado y libre de la matriz, introduzca:
sudo btrfs filesystem usage /data
Y para desmontar un array, basta con introducir:
sudo umount /data
Cómo sustituir o añadir una unidad
Para reemplazar una unidad debe escribir btrfs replace en el terminal. Se ejecuta de forma asíncrona, es decir, se ejecuta gradualmente:
- start - para iniciar,
- cancel - para parar,
- status - para ver el estado.
Lo primero que hay que hacer es determinar el número de la unidad dañada:
sudo btrfs filesystem show
Luego se debe cambiar por una nueva:
btrfs replace start <dispositivo a eliminar o su ID> < dispositivo a añadir> <la ruta donde se monta el dispositivo btrfs>
En mi caso, introducimos:
btrfs replace start 3 /dev/sdg
donde: 3 – es el número de la unidad que falta, y sdg es el código de la nueva unidad.
Cómo reparar un volumen dañado
Para restaurar una matriz Btrfs, debemos utilizar la opción de montaje incorporada - recovery:
sudo mount -o recovery /dev/sdb /mnt
Luego comenzamos el proceso de recuperación.
Recuperación de datos con btrfs RAID5
Incluso el sistema más robusto y tolerante a los fallos puede fallar. Un fallo del sistema, un fallo de la unidad, un fallo del hardware, la corrupción de los metadatos, un borrado accidental y una configuración incorrecta pueden provocar un fallo de RAID y la pérdida de datos importantes. Si se encuentra con esto, utilice el programa Hetman RAID Recovery. El mismo es capaz de recuperar cualquier información de las matrices que no funcionan o de los medios que formaban parte de la matriz. La utilidad reconstruirá el RAID destruido leyendo toda la información conocida paso a paso, luego podrá copiar todos los datos encontrados.
Conecte la unidad a un PC con Windows instalado, utilice una máquina virtual o instálela como un segundo sistema.
El programa escaneará automáticamente el espacio del disco, y mostrará toda la información posible sobre la matriz.
Como puedes ver, en nuestro caso con btrfs RAID,el programa no ensambla las inidades en un array, esto se debe a la naturaleza de su construcción, y toda la información se almacena según el tipo de RAID.
Para comenzar el proceso de recuperación, abra el administrador de discos, haga clic con el botón derecho en cualquiera de los discos que componen el conjunto y ejecute «Escaneo rápido».
Al escanear cualquiera de los discos, el resultado será idéntico ya que todos forman parte del mismo array.
Una vez completado el análisis, el programa mostrará los archivos encontrados, existiendo una vista previa de los mismos, lo que facilita encontrar las imágenes o vídeos que se buscan.
Seleccione los archivos que desea restaurar y haga clic en «Restaurar», especifique la ruta para guardarlos y haga clic de nuevo en «Restaurar». Al terminar, todos los archivos se ubicarán en la carpeta especificada.
Si el análisis rápido no encuentra los archivos que necesitamos, ejecute el "Análisis completo". Este tipo de análisis llevará más tiempo, pero encontrará toda la información que queda en el disco, incluso la que se borró del mismo hace tiempo.
Al tratarse del quinto RAID toda la información permanece intacta en ausencia de una unidad, pero si fallan dos unidades, parte de la información se dañará.
Características del sistema de archivos btrfs
Btrfs soporta la compresión de datos. Es decir, toda la información disponible en el soporte se comprimirá automáticamente. Y cuando se accede a los datos, cada archivo específico se descomprime automáticamente.
Esta función ahorra mucho espacio de almacenamiento, así como tiempo en la búsqueda de software de compresión de datos de terceros. El sistema de archivos soporta 3 métodos principales de compresión de archivos - estos son zlib, lzo y zstd. Su principal diferencia es el grado así como la tasa de compresión.
Nuestro programa permite recuperar archivos comprimidos por cualquiera de estos tres métodos. En la interfaz del programa los volúmenes y archivos comprimidos se muestran de la siguiente manera, como puede ver están resaltados en un color diferente.
Otra gran ventaja es la creación de subvolúmenes. En pocas palabras, se pueden crear 3 discos diferentes (subvolúmenes) en una unidad. Estos subvolúmenes son capaces de autoexpandirse en el espacio libre de otro volumen. Esta función permite ampliar una unidad a expensas de otra unidad sin comprimir y transferir datos si es necesario. Estos subvolúmenes se muestran en el programa de la siguiente manera, son los discos dentro de la unidad primaria.
Las carpetas con snap-shots se muestran de la misma manera.
Para crear subvolúmenes, utilice el comando:
btrfs subvolume create /mnt/btrfs/my-subvolume
Y para ver una lista de subvolúmenes en esta unidad, ejecute:
btrfs subvolume list /mnt/btrfs
Para montar un subvolumen:
mount -o subvol=my-subvolume /dev/sdd2 /mnt/btrfs2
donde sdb1 - es el código del disco.
Conclusión
Existe un pequeño número de herramientas de recuperación de datos que pueden leer btrfs RAID. A la hora de elegir uno, debe tener en cuenta que la información puede perderse en el proceso, así que asegúrese de que tiene la opción de crear una imagen de la matriz y escanear a partir de la imagen. Aun así, la mejor solución para protegerse de la pérdida de datos importantes es hacer copias de seguridad regularmente.
Puede verificar si este es el caso con el comando: # btrfs subvolume list -a /mountpoint
Para eliminar un subvolumen, deberá ejecutar el comando: # btrfs subvolume delete emptydir
Primero, actualice el kernel a la última versión disponible e intente montarlo nuevamente. Si tiene un kernel en un sistema de archivos btrfs, probablemente necesitará encontrar un disco de recuperación con el kernel más reciente.
En segundo lugar, intente montar con -o recovery o -o ro o -o recovery,ro (usando un nuevo kernel). Uno de ellos puede funcionar con éxito.
Finalmente, cuando hay algo como esto en los registros del núcleo,? replay_one_dir_item+0xb5/0xb5 [btrfs]
? walk_log_tree+0x9c/0x19d [btrfs]
? btrfs_read_fs_root_no_radix+0x169/0x1a1 [btrfs]
? btrfs_recover_log_trees+0x195/0x29c [btrfs]
? replay_one_dir_item+0xb5/0xb5 [btrfs]
? btree_read_extent_buffer_pages+0x76/0xbc [btrfs]
? open_ctree+0xff6/0x132c [btrfs]
entonces deberías intentar usar btrfs rescure zero-log