MD, parcialmente crecido de RAID1 a RAID5, pero fue interrumpido, los discos eliminados, y ahora el sistema de files es FUBAR

Sé que hice algunos movimientos estúpidos para entrar en esta situación, por favor no me lo recuerde, y no pregunte por qué: – /

Tengo esta Synology DS1515 +, con 2x6TB unidades en SHR, lo que significa MD RAID1, con LVM en la parte superior.

Después de iniciar una conversión RAID1 a RAID5, abortándola y jugueteando con disco, mi sistema de files ext4 no se puede montar.

¿Podría ser posible que el sistema haya sido simplemente "confundido" por los muchos reinicios y la eliminación de los discos, y ahora trata todo el espacio en disco como un volumen RAID5, a pesar de que la conversión de RAID1 a RAID5 sólo se completó un 10%? Si es así, ¿crees que tengo la oportunidad de arreglar el sistema de files, si agrego un tercer disco y dejo rebuild la matriz RAID? ¿O simplemente rebuld a un volumen lógico con los mismos datos exactamente como ahora, es decir un sistema de file dañado en él?

Estoy un poco curioso acerca de cómo el process de conversión real continúa, ya que MD y / o LVM deben saber qué partes de los dispositivos de bloque que deben tratarse como RAID5 o RAID1, hasta que todo el espacio se convierta a RAID5. ¿Alguien que sabe más sobre esto?

Gracias de antemano por cualquier ayuda 🙂

Esto es lo que hice. (Mis bashs de rescate hasta el momento, y las inputs de logging se enumeran a continuación)

  1. Hot-plugged un nuevo disco de 6 TB en el NAS.

  2. Le dije a la interfaz de usuario de Synology que agregara el disco a mi volumen existente y lo creciera a 12TB (convirtiéndolo en un RAID5 de 3x6TB)

  3. Apagar el NAS (apagar -P ahora) un par de los suyos en el process de crecimiento, y se eliminó la nueva unidad. El NAS arrancó bien, pero informó que mi volumen se degradó. Todavía informó de un sistema de files de 6 TB y todo aún era accesible.

  4. Hot-plugged disco 3 de nuevo, se limpió y hizo otro volumen de disco único en él.

  5. Apague el NAS, quite el disco 2 (esto fue un error!) Y lo encendió. Empezó a sonar y me dijo que mi volumen se estrelló.

  6. Cierre de nuevo el NAS y vuelva a insert el disco que falta2. Sin embargo, la Synology todavía informó el volumen como se estrelló, y no ofreció ninguna opción de reparación.

Por lo tanto, todos mis datos están disponibles!

Empecé a investigar el asunto. Parece que MD está ensamblando la matriz como debería:

State : clean, degraded Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K Name : DiskStation:2 (local to host DiskStation) UUID : 58290cba:75757ee2:86fe074c:ada2e6d2 Events : 31429 Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 1 8 21 1 active sync /dev/sdb5 2 0 0 2 removed 

Y los metadatos de los dos discos originales también se ven bien:

 Device Role : Active device 0 Array State : AA. ('A' == active, '.' == missing) Device Role : Active device 1 Array State : AA. ('A' == active, '.' == missing) 

LVM también reconoce el volumen RAID5 y expone su dispositivo:

 --- Logical volume --- LV Path /dev/vg1000/lv LV Name lv VG Name vg1000 

Pero el sistema de files en / dev / vg1000 / lv parece estar dañado, cuando bash montarlo de sólo lectura:

 mount: wrong fs type, bad option, bad superblock on /dev/vg1000/lv, missing codepage or helper program, or other error (for several filesystems (eg nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so. 

Por lo tanto, aquí estoy con un sistema de files roto, que creo que no es posible reparar (ver una list de mis bashs a continuación).

Aquí están los pasos que he probado hasta ahora:

Cloned / dev / vg1000 / lv a una partición en un disco duro vacío y corría e2fsck Tenía este process funcionando durante una semana, antes de interruppted. Encontró millones de inodos defectuosos y bloques con múltiples reclamaciones, etc. y con esa cantidad de errores del FS, creo que no devolverá ningún dato útil, aunque termine algún día.

Mover los dos discos duros con datos, en un muelle USB, y lo conectó a una máquina virtual de Ubuntu, e hizo que los dispositivos de superposition para capturar todas las escrituras (utilizando dmsetup)

En primer lugar, traté de volver a crear la matriz de raid. Comencé por encontrar el command que creó la matriz con los mismos parameters y mdadm -E ya me dio, y luego intenté swithing la order alnetworkingedor, para ver si los resultados diferían (es decir, sda, desaparecidos, sdb, sda, sdb, desaparecidos , ausente, sdb, sda). 4 de 6 combinaciones hicieron que LVM detectara el grupo de volumen, pero el sistema de files todavía estaba roto.

R-Studio usado para montar la matriz y search filesystems

Esto realmente dar algunos resultados – que era capaz de escanear y encontrar un sistema de files EXT4 en el volumen RAID que ensamblé, y yo podría navegar por los files, pero sólo un subset (como 10) de mis files reales se presentaron en el file espectador. He intentado cambiar con el order de los dispositivos, y mientras que 4 de las combinaciones hicieron que R-Studio detecte un sistema de files ext4 (igual que arriba), solo el ajuste original (sda, sdb, missing) hizo que R-studio pudiera descubrir cualquier file desde la raíz de la unidad.

Se probó el assembly con -o sb = XXXXX, apuntando a un superbloque alternativo

Esto me dio los mismos errores que no especificar la position del superbloque.

Depuradores probados

Esto me dio errores de IO cuando escribí "ls"

Estos son los posts de logging de las operaciones descritas anteriormente, que causaron los problemas.

Apagando el sistema, que se estaba ejecutando como un degradado RAID5, con un sistema de files sigue funcionando.

 2017-02-25T18:13:27+01:00 DiskStation umount: kill the process "synoreport" [pid = 15855] using /volume1/@appstore/StorageAnalyzer/usr/syno/synoreport/synoreport 2017-02-25T18:13:28+01:00 DiskStation umount: can't umount /volume1: Device or resource busy 2017-02-25T18:13:28+01:00 DiskStation umount: can't umount /volume1: Device or resource busy 2017-02-25T18:13:28+01:00 DiskStation umount: SYSTEM: Last message 'can't umount /volume' repeated 1 times, suppressed by syslog-ng on DiskStation 2017-02-25T18:13:28+01:00 DiskStation syno_poweroff_task: lvm_poweroff.c:49 Failed to /bin/umount -f -k /volume1 2017-02-25T18:13:29+01:00 DiskStation syno_poweroff_task: lvm_poweroff.c:58 Failed to /sbin/vgchange -an 2017-02-25T18:13:29+01:00 DiskStation syno_poweroff_task: raid_stop.c:28 Failed to mdadm stop '/dev/md2' 2017-02-25T18:13:29+01:00 DiskStation syno_poweroff_task: syno_poweroff_task.c:331 Failed to stop RAID [/dev/md2] 

Observación de la "no pudo detener RAID" – es que una posible causa de los problemas?

Primer arranque después de extraer disk2 (sdb)

 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.467975] set group disks wakeup number to 5, spinup time deno 1 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.500561] synobios: unload 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.572388] md: invalid raid superblock magic on sda5 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.578043] md: sda5 does not have a valid v0.90 superblock, not importing! 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.627381] md: invalid raid superblock magic on sdc5 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.633034] md: sdc5 does not have a valid v0.90 superblock, not importing! 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.663832] md: sda2 has different UUID to sda1 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.672513] md: sdc2 has different UUID to sda1 2017-02-25T18:15:27+01:00 DiskStation kernel: [ 10.784571] Got empty serial number. Generate serial number from product. 2017-02-25T18:15:41+01:00 DiskStation spacetool.shanetworking: raid_allow_rmw_check.c:48 fopen failed: /usr/syno/etc/.rmw.md3 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.339243] md/raid:md2: not enough operational devices (2/3 failed) 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.346371] md/raid:md2: raid level 5 active with 1 out of 3 devices, algorithm 2 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.355295] md: md2: set sda5 to auto_remap [1] 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.355299] md: reshape of RAID array md2 2017-02-25T18:15:41+01:00 DiskStation spacetool.shanetworking: spacetool.c:1223 Try to force assemble RAID [/dev/md2]. [0x2000 file_get_key_value.c:81] 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.414839] md: md2: reshape done. 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.433218] md: md2: set sda5 to auto_remap [0] 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.494964] md: md2: set sda5 to auto_remap [0] 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.549962] md/raid:md2: not enough operational devices (2/3 failed) 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.557093] md/raid:md2: raid level 5 active with 1 out of 3 devices, algorithm 2 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.566069] md: md2: set sda5 to auto_remap [1] 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.566073] md: reshape of RAID array md2 2017-02-25T18:15:41+01:00 DiskStation spacetool.shanetworking: raid_allow_rmw_check.c:48 fopen failed: /usr/syno/etc/.rmw.md2 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.633774] md: md2: reshape done. 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.645025] md: md2: change number of threads from 0 to 1 2017-02-25T18:15:41+01:00 DiskStation kernel: [ 31.645033] md: md2: set sda5 to auto_remap [0] 2017-02-25T18:15:41+01:00 DiskStation spacetool.shanetworking: spacetool.c:3023 [Info] Old vg path: [/dev/vg1000], New vg path: [/dev/vg1000], UUID: [Fund9t-vUVR-3yln-QYVk-8gtv-z8Wo-zz1bnF] 2017-02-25T18:15:41+01:00 DiskStation spacetool.shanetworking: spacetool.c:3023 [Info] Old vg path: [/dev/vg1001], New vg path: [/dev/vg1001], UUID: [FHbUVK-5Rxk-k6y9-4PId-cSMf-ztmU-DfXYoL] 2017-02-25T18:22:50+01:00 DiskStation umount: can't umount /volume2: Invalid argument 2017-02-25T18:22:50+01:00 DiskStation syno_poweroff_task: lvm_poweroff.c:49 Failed to /bin/umount -f -k /volume2 2017-02-25T18:22:50+01:00 DiskStation kernel: [ 460.374192] md: md2: set sda5 to auto_remap [0] 2017-02-25T18:22:50+01:00 DiskStation kernel: [ 460.404747] md: md3: set sdc5 to auto_remap [0] 2017-02-25T18:28:01+01:00 DiskStation umount: can't umount /initrd: Invalid argument 

Arranque de nuevo, con el disk2 (sdb) presente nuevamente

 2017-02-25T18:28:17+01:00 DiskStation spacetool.shanetworking: raid_allow_rmw_check.c:48 fopen failed: /usr/syno/etc/.rmw.md3 2017-02-25T18:28:17+01:00 DiskStation kernel: [ 32.442352] md: kicking non-fresh sdb5 from array! 2017-02-25T18:28:17+01:00 DiskStation kernel: [ 32.478415] md/raid:md2: not enough operational devices (2/3 failed) 2017-02-25T18:28:17+01:00 DiskStation kernel: [ 32.485547] md/raid:md2: raid level 5 active with 1 out of 3 devices, algorithm 2 2017-02-25T18:28:17+01:00 DiskStation spacetool.shanetworking: spacetool.c:1223 Try to force assemble RAID [/dev/md2]. [0x2000 file_get_key_value.c:81] 2017-02-25T18:28:17+01:00 DiskStation kernel: [ 32.515567] md: md2: set sda5 to auto_remap [0] 2017-02-25T18:28:18+01:00 DiskStation kernel: [ 32.602256] md/raid:md2: raid level 5 active with 2 out of 3 devices, algorithm 2 2017-02-25T18:28:18+01:00 DiskStation spacetool.shanetworking: raid_allow_rmw_check.c:48 fopen failed: /usr/syno/etc/.rmw.md2 2017-02-25T18:28:18+01:00 DiskStation kernel: [ 32.654279] md: md2: change number of threads from 0 to 1 2017-02-25T18:28:18+01:00 DiskStation spacetool.shanetworking: spacetool.c:3023 [Info] Old vg path: [/dev/vg1000], New vg path: [/dev/vg1000], UUID: [Fund9t-vUVR-3yln-QYVk-8gtv-z8Wo-zz1bnF] 2017-02-25T18:28:18+01:00 DiskStation spacetool.shanetworking: spacetool.c:3023 [Info] Old vg path: [/dev/vg1001], New vg path: [/dev/vg1001], UUID: [FHbUVK-5Rxk-k6y9-4PId-cSMf-ztmU-DfXYoL] 2017-02-25T18:28:18+01:00 DiskStation spacetool.shanetworking: spacetool.c:3030 [Info] Activate all VG 2017-02-25T18:28:18+01:00 DiskStation synovspace: virtual_space_conf_check.c:78 [INFO] "PASS" checking configuration of virtual space [FCACHE], app: [1] 2017-02-25T18:28:18+01:00 DiskStation synovspace: virtual_space_conf_check.c:74 [INFO] No implementation, skip checking configuration of virtual space [HA] 2017-02-25T18:28:18+01:00 DiskStation synovspace: virtual_space_conf_check.c:74 [INFO] No implementation, skip checking configuration of virtual space [SNAPSHOT_ORG] 2017-02-25T18:28:18+01:00 DiskStation synovspace: vspace_wrapper_load_all.c:76 [INFO] No virtual layer above space: [/volume2] / [/dev/vg1001/lv] 2017-02-25T18:28:18+01:00 DiskStation synovspace: vspace_wrapper_load_all.c:76 [INFO] No virtual layer above space: [/volume1] / [/dev/vg1000/lv] 2017-02-25T18:28:19+01:00 DiskStation kernel: [ 33.792601] BTRFS: has skinny extents 2017-02-25T18:28:19+01:00 DiskStation kernel: [ 34.009184] JBD2: no valid journal superblock found 2017-02-25T18:28:19+01:00 DiskStation kernel: [ 34.014673] EXT4-fs (dm-0): error loading journal mount: wrong fs type, bad option, bad superblock on /dev/vg1000/lv, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. quotacheck: Mountpoint (or device) /volume1 not found or has no quota enabled. quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option. quotaon: Mountpoint (or device) /volume1 not found or has no quota enabled. 2017-02-25T18:28:19+01:00 DiskStation synocheckhotspare: synocheckhotspare.c:149 [INFO] No hotspare config, skip hotspare config check. [0x2000 virtual_space_layer_get.c:98] 2017-02-25T18:28:19+01:00 DiskStation synopkgctl: pkgtool.cpp:3035 package AudioStation is not installed or not operable 

Observación cómo dice primero que 1 de 3 dispositivos están presentes, pero después la fuerza la ensambla, así que el arsenal del RAID se ensambla, e intenta entonces montarlo pero consiga los errores de assembly EXT4.

Intentó reiniciar después de esta experiencia, no ayudó

 2017-02-25T18:36:45+01:00 DiskStation spacetool.shanetworking: raid_allow_rmw_check.c:48 fopen failed: /usr/syno/etc/.rmw.md3 2017-02-25T18:36:45+01:00 DiskStation kernel: [ 29.579136] md/raid:md2: raid level 5 active with 2 out of 3 devices, algorithm 2 2017-02-25T18:36:45+01:00 DiskStation spacetool.shanetworking: raid_allow_rmw_check.c:48 fopen failed: /usr/syno/etc/.rmw.md2 2017-02-25T18:36:45+01:00 DiskStation kernel: [ 29.629837] md: md2: change number of threads from 0 to 1 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3023 [Info] Old vg path: [/dev/vg1000], New vg path: [/dev/vg1000], UUID: [Fund9t-vUVR-3yln-QYVk-8gtv-z8Wo-zz1bnF] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3023 [Info] Old vg path: [/dev/vg1001], New vg path: [/dev/vg1001], UUID: [FHbUVK-5Rxk-k6y9-4PId-cSMf-ztmU-DfXYoL] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3030 [Info] Activate all VG 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3041 Activate LVM [/dev/vg1000] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3041 Activate LVM [/dev/vg1001] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3084 space: [/dev/vg1000] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3084 space: [/dev/vg1001] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3110 space: [/dev/vg1000], ndisk: [2] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: spacetool.c:3110 space: [/dev/vg1001], ndisk: [1] 2017-02-25T18:36:46+01:00 DiskStation spacetool.shanetworking: hotspare_repair_config_set.c:36 Failed to hup synostoraged 2017-02-25T18:36:46+01:00 DiskStation synovspace: virtual_space_conf_check.c:78 [INFO] "PASS" checking configuration of virtual space [FCACHE], app: [1] 2017-02-25T18:36:46+01:00 DiskStation synovspace: virtual_space_conf_check.c:74 [INFO] No implementation, skip checking configuration of virtual space [HA] 2017-02-25T18:36:46+01:00 DiskStation synovspace: virtual_space_conf_check.c:74 [INFO] No implementation, skip checking configuration of virtual space [SNAPSHOT_ORG] 2017-02-25T18:36:46+01:00 DiskStation synovspace: vspace_wrapper_load_all.c:76 [INFO] No virtual layer above space: [/volume2] / [/dev/vg1001/lv] 2017-02-25T18:36:46+01:00 DiskStation synovspace: vspace_wrapper_load_all.c:76 [INFO] No virtual layer above space: [/volume1] / [/dev/vg1000/lv] 2017-02-25T18:36:47+01:00 DiskStation kernel: [ 30.799110] BTRFS: has skinny extents 2017-02-25T18:36:47+01:00 DiskStation kernel: [ 30.956115] JBD2: no valid journal superblock found 2017-02-25T18:36:47+01:00 DiskStation kernel: [ 30.961585] EXT4-fs (dm-0): error loading journal mount: wrong fs type, bad option, bad superblock on /dev/vg1000/lv, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. quotacheck: Mountpoint (or device) /volume1 not found or has no quota enabled. quo 

  • ¿Puede mdadm convertir un RAID5 a un RAID1?
  • ¿Es mi tostada de server?
  • La eliminación de todos los discos de RAID5 y la adición de nuevo disco para la destrucción de acceso / datos - RAID se conservará?
  • Proceso de recuperación de Raid 5
  • Dell 2950 con 6 discos, es 2 x 3 arreglos RAID 5 posibles?
  • Proliant DL360 Raid5 unidad de intercambio en caliente
  • 2 discos RAID5 set de software Linux
  • Cómo identificar qué hdd se replaceá en RAID
  • One Solution collect form web for “MD, parcialmente crecido de RAID1 a RAID5, pero fue interrumpido, los discos eliminados, y ahora el sistema de files es FUBAR”

    Cómo guardé mis datos, después de romper completamente un creciente RAID5!

    Tengo una matriz RAID5 de 3 discos, con el número de dispositivo 3 que falta, y los datos que parece estar dañado.

    / dev / sdd5: (5,45 TiB) 6 TB, dispositivo 1 de la matriz

    / dev / sdd5: (5,45 TiB) 6 TB, dispositivo 2 de la matriz

    El arreglo tiene en el progreso de una conversión de RAID1 a RAID5, cuando la operación fue interrumpida y el dispositivo 3 fue quitado. El arreglo todavía estaba funcionando, hasta que el dispositivo 2 también fue quitado. Cuando el dispositivo 2 fue puesto de nuevo, el sistema de files no pudo ser montado. El dispositivo / dev / md2 fue clonado, y un fsck se ejecutó en la partición clonada, encontrando millones de errores.

    MD era obviamente no manejar los datos RAID correctamente después de la conversión interrumpida y la eliminación de los discos. Fui a investigar lo que había sucedido:

    En primer lugar, eché un vistazo a /var/log/space_operation_error.log y me dijo exactamente lo que había sucedido. El RAID cambió su estado a roto, tan pronto como se eliminó el Disco 2, ya que un RAID5 de 3 discos no puede ejecutarse con 1 disco. Pero eso también hizo que el RAID olvidara que está en process de remodelación de RAID1 a RAID5.

    Por lo tanto, pensé que la corrupción de los datos podría ser causada por MD tratar todos los datos como RAID5-codificado, mientras que una parte de él todavía estaba en su estado original.

    Examinar los datos RAID de los dispositivos, no me ayudó, todo parecía bien:

     # cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md124 : active raid5 sda5[0] sdb5[1] 11711575296 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_] # mdadm -E /dev/sda5 Magic : a92b4efc Version : 1.2 Feature Map : 0x0 Array UUID : 58290cba:75757ee2:86fe074c:ada2e6d2 Name : DiskStation:2 Creation Time : Thu Nov 27 11:35:34 2014 Raid Level : raid5 Raid Devices : 3 Avail Dev Size : 11711575680 (5584.51 GiB 5996.33 GB) Array Size : 23423150592 (11169.03 GiB 11992.65 GB) Used Dev Size : 11711575296 (5584.51 GiB 5996.33 GB) Data Offset : 2048 sectors Super Offset : 8 sectors State : clean Device UUID : 1a222812:ac39920b:4cec73c4:81aa9b63 Update Time : Fri Mar 17 23:14:25 2017 Checksum : cb34324c - correct Events : 31468 Layout : left-symmetric Chunk Size : 64K Device Role : Active device 0 Array State : AA. ('A' == active, '.' == missing) 

    Pero pensé que DEBE tener algún tipo de contador, para realizar un seguimiento de su progreso, mientras que la remodelación. He estudiado el formatting del superbloque MD, descrito aquí: https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

    Tomé una copy de los primeros 10 MiB de una de las particiones RAID (mdadm -E no funcionó en copys más pequeñas):

     # dd if=/dev/sda5 of=/volume1/homes/sda5_10M.img bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.0622844 s, 168 MB/s 

    Lo abrí en un editor HEX y cambié los datos en el byte 4104 de 0x00 a 0x04, para indicar que la remodelación estaba en curso.

    Cambiar estado

    También noté el valor de los 8 bytes a partir de 4200. Se leyó 3856372992.

    Reformular la posición

    Después de save el cambio, examiné la copy:

     # mdadm -E /volume1/homes/sda5_10M.img /volume1/homes/sda5_10M.img: Magic : a92b4efc Version : 1.2 Feature Map : 0x4 Array UUID : 58290cba:75757ee2:86fe074c:ada2e6d2 Name : DiskStation:2 Creation Time : Thu Nov 27 11:35:34 2014 Raid Level : raid5 Raid Devices : 3 Avail Dev Size : 11711575680 (5584.51 GiB 5996.33 GB) Array Size : 23423150592 (11169.03 GiB 11992.65 GB) Used Dev Size : 11711575296 (5584.51 GiB 5996.33 GB) Data Offset : 2048 sectors Super Offset : 8 sectors State : clean Device UUID : 1a222812:ac39920b:4cec73c4:81aa9b63 Reshape pos'n : 1928186496 (1838.86 GiB 1974.46 GB) Delta Devices : 1 (2->3) Update Time : Fri Mar 17 23:14:25 2017 Checksum : cb34324c - expected cb343250 Events : 31468 Layout : left-symmetric Chunk Size : 64K Device Role : Active device 0 Array State : AA. ('A' == active, '.' == missing) 

    Como puede ver, informó la position exacta del progreso de la remodelación, lo que también me dice que el número que obtuve antes era el número de sectores de 512 bytes.

    Ahora sabiendo que el primer 1838.86 GiB fue sobrescrito durante la remodelación, asumí que el rest de las particiones estaban intactas.

    Por lo tanto, decidí montar un dispositivo de bloque, desde la nueva parte RAID5 y la parte intacta, cortado en la position de respape reportada (lea las notas a continuación sobre asumir la position). Como el offset de datos es de 2048 sectores, necesito añadir 1024KiB al tamaño, para get el desplazamiento de la parte de partición sin procesar:

     #losetup -f --show /dev/md124 --sizelimit=1928186496K /dev/loop0 #losetup -f --show /dev/sda5 --offset=1928187520K /dev/loop1 

    Para montar las piezas, he creado un dispositivo JBOD sin metadatos:

     # mdadm --build --raid-devices=2 --level=linear /dev/md9 /dev/loop0 /dev/loop1 mdadm: array /dev/md9 built and started. 

    Entonces comprobé el contenido del nuevo dispositivo / dev / md9

     # file -s /dev/md9 /dev/md9: LVM2 PV (Linux Logical Volume Manager), UUID: xmhBdx-uED6-hN53-HOeU-ONy1-29Yc-VfIDQt, size: 5996326551552 

    Dado que el RAID contenía un volumen LVM, necesitaba omitir el primer 576KiB para llegar al sistema de files ext4:

     # losetup -f --show /dev/md9 --offset=576K /dev/loop2 # file -s /dev/loop2 /dev/loop2: Linux rev 1.0 ext4 filesystem data, UUID=8e240e88-4d2b-4de8-bcaa-0836f9b70bb5, volume name "1.42.6-5004" (errors) (extents) (64bit) (large files) (huge files) 

    Ahora monté el sistema de files a una carpeta compartida en mi NAS:

     # mount -o ro,noload /dev/loop2 /volume1/homes/fixraid/ 

    Y mis files eran accesibles!

    Antes de que decidiera el tamaño de la position / offsets usado arriba, probé varios valores. Mi primera idea fue que desde 1838.86 GiB de cada dispositivo fueron reformados, la parte RAID5 contendría ~ 3.6 TiB de datos válidos, y usé una position que eran el doble de la position de remodelación. Montó muy bien, pero algunos de mis files parecían contener datos no válidos, algunos files daban errores de E / S al leer y algunas carpetas estaban ausentes.

    Como tenía muchas fotos RAW en formatting NEF (Nikon), decidí probar algunas de ellas, usando la herramienta de file.

    Resultado Esperado:

     # file DSC_7421.NEF DSC_7421.NEF: TIFF image data, little-endian, direntries=28, height=120, bps=352, compression=none, PhotometricIntepretation=RGB, manufacturer=NIKON CORPORATION, model=NIKON D750, orientation=upper-left, width=160 

    Resultado cuando los datos estaban dañados:

     # file DSC_9974.NEF DSC_9974.NEF: data 

    También tuve un par de errores de IO cuando escribí ls en ciertas carpetas.

    Decidí ir a algunas de mis grandes collections de fotos y probar su integridad, primero enumerando los files y contando el número de líneas en la salida. Cualquier error de lectura debe escribirse en la pantalla. A continuación, al comprobar si alguno de los files NEF no se reconoce, la indicación de datos dañados. Filtré la salida del file y conté las líneas filtradas.

     # ls *.NEF -1 | wc -l 3641 # file *.NEF | grep "NEF: data" | wc -l 0 

    Hice esto para muchas de mis carpetas de fotos, para asegurar que todos los files fueran legibles y que su contenido fuera reconocido.

    Usando el 3856372992K tamaño y 3856374016K offset, tengo un montón de datos no válidos y faltan files / carpetas, y probé un par de otros valores.

    Me pareció que el desplazamiento y el tamaño mencionado anteriormente, parecía pasar mis pequeñas testings.!

    Como se ha visto anteriormente, el sistema de files informa de algunos errores. Como no quiero escribir ningún dato a mis dispositivos antes de que todo se recupere, decidí hacer una superposition de grabación de instantánea, por lo que todas las escrituras hechas por fsck.ext4 se escribirían en este file.

    Hacer un file de 50GiB escaso

     # truncate /volume1/overlay.img -s50G 

    Hacer un dispositivo virtual

     #losetup -f --show /volume1/overlay.img /dev/loop3 

    Obtener el tamaño del dispositivo con los datos:

     # blockdev --getsz /dev/loop2 11711574528 

    Crear el dispositivo de superposition (antes de esto, he desmontado el sistema de files en / dev / loop2)

     # dmsetup create overlay --table "0 11711574528 snapshot /dev/loop2 /dev/loop3 P 8" 

    Y el dispositivo estaba disponible en /dev/mapper/overlay

    Finalmente podría comprobar y corregir los errores:

     # fsck.ext4 -y -C 0 /dev/mapper/overlay 

    Tenga en count que las correcciones sólo se escriben en el file de superposition y deben ser asignadas a los discos físicos, si deben ser permanentes.

    El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.