Es el caso de un Servidor Dell Power Vault MD1200 en RAID 5 que llegó para análisis y recuperación de datos a nuestras instalaciones, el cual se encontraba reconstruido con paridad sobreescrita y con la falta de 3 unidades previo a la llegada al laboratorio.
A la llegada de los discos detectamos algo que a la vista se podía notar, que no todos los discos eran iguales, pues 9 de ellos pertenecían a la Marca Seagate, mientras que el resto eran discos Toshiba, al comenzar los procesos de imagen, para evitar trabajar con las unidades pacientes se hace un volcado sector por sector de cada unidad a archivo a lo que se le conoce como hacer una ” imagen ” , en dicho proceso encontramos que las 3 unidades Toshiba prácticamente se encontraban vacías , puesto que casi el 90% de sectores estaba en 00 ´s como se muestra en la pantalla.
Al notificar esto al usuario , que era muy importante tener las unidades correctas pues un arreglo RAID se comporta como un ” rompecabezas” donde se requiere tener todas las piezas del rompecabezas para poder armar correctamente la figura , y si faltan ” piezas” era prácticamente imposible poder recuperar la información , sin embargo después de bastante tiempo de tratar de localizar dichas unidades no fué posible el contar con ellas por lo cual tras la notificación del cliente de los resultados , puesto que un RAID 5 , solo soporta trabajar sin una unidad, al faltar tres unidades era prácticamente imposible poder hacer algo; sin embargo tras al aceptación del cliente de los posibles resultados decidimos adentrarnos en el caso.
Durante los procesos de intento de reconstrucción del arreglo notamos más problemas , la ” metadata” se encontraba sobreescrita por los intentos anteriores de recuperación ; es decir, en un arreglo RAID la controladora guarda información específica del arreglo, esta información se guarda tanto en la controladora del Servidor así como en ciertos sectores de los discos estos se encontraban sobreescritos con otra información, además en el intento anterior habían sobreescrito la paridad del arreglo .
En un RAID 5 de 4 unidades por ejemplo solo en 3 de ellas se escribe información y en el último disco se escribe información de Paridad, esta información se utiliza para reconstruir el arreglo usando el algoritmo XOR en caso de que falle una unidad que es el máximo soporte que tiene un arreglo RAID 5
En el ejemplo anterior si el Disco 4 falla, se puede recuperar la información corriendo un algoritmo XOR entre el Disco 1 XOR Disco 2 XOR Disco 3 XOR , el resultado sería el Disco 4
Con los sectores de paridad sobreescritos , era virtualmente imposible recuperar la información pues esa información de paridad es la que se requiere para poder reconstruir la información, aunado al hecho de que 3 unidades faltaban este caso de entrada ya estaba perdido; sin embargo no nos rendimos y decidimos indagar un poco más en el tema , gracias a nuestro equipo I*D mundial se decidió crear un arreglo ficticio con unidades ficticas para poder engañar al sistema e intentar la reconstrucción del arreglo sin las 3 unidades así como se crearon ciertos scripts especiales para poder tratar de solventar un poco el problema , los primeros resultados fueron archivos en bruto WAV, ese era el tipo de información que se deseaba recuperar , con archivos buenos y dañados, tras mostrarle al cliente los resultados nos comentó que era necesario tener los nombres originales pues archivos en bruto no le servían pues la información contenida era cerca de 6 TB de información es decir asi 90 Millones de archivos wav
Para lo cual con el apoyo de nuestro equipo I*D mundial ,se desarrolló ciertos scripts para poder tener diferentes resultados
1.- Archivos WAV con nombres originales indexados.
2.- Archivos WAV con cabeceras ( Headers ) corregidos.
3.- Archivos WAV con espacios en la grabación .
4.- Archivos WAV sin dato ( debido a la falta de las 3 unidades )
Gracias a la ayuda de nuestro equipo I+D Global se desarrolló programación y ciertos scripts que nos permitiera correr estos procesos automáticamente e en todos los archivos recuperados, pues realizar estas tareas manualmente era algo prácticamente imposible
Para ello fué necesario desarrollar y correr estos scritps bajo un sistema Linux que nos permitiera ejecutar múltiples procesos a la vez.
Pudiendo recuperar cerca de 60 millones de archivos aprox 3.4 TB de información