Назад | Перейти на главную страницу

Программное обеспечение для восстановления RAID Linux

Я вижу несоответствие между выводом mdadm --detail и mdadm --examine, и я не понимаю, почему.

Этот вывод

mdadm --detail /dev/md2
/dev/md2:
        Version : 0.90
  Creation Time : Wed Mar 14 18:20:52 2012
     Raid Level : raid10
     Array Size : 3662760640 (3493.08 GiB 3750.67 GB)
  Used Dev Size : 1465104256 (1397.23 GiB 1500.27 GB)
   Raid Devices : 5
  Total Devices : 5
Preferred Minor : 2
    Persistence : Superblock is persistent

Кажется, это противоречит этому. (то же самое для каждого диска в массиве)

mdadm --examine /dev/sdc2
/dev/sdc2:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 1f54d708:60227dd6:163c2a05:89fa2e07 (local to host)
  Creation Time : Wed Mar 14 18:20:52 2012
     Raid Level : raid10
  Used Dev Size : 1465104320 (1397.23 GiB 1500.27 GB)
     Array Size : 2930208640 (2794.46 GiB 3000.53 GB)
   Raid Devices : 5
  Total Devices : 5
Preferred Minor : 2

Массив создавался вот так.

mdadm -v --create  /dev/md2 \
  --level=raid10 --layout=o2 --raid-devices=5 \
  --chunk=64 --metadata=0.90 \
 /dev/sdg2 /dev/sdf2 /dev/sde2 /dev/sdd2 /dev/sdc2 

У каждого из 5 отдельных дисков есть такие разделы.

Disk /dev/sdc: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00057754

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048       34815       16384   83  Linux
/dev/sdc2           34816  2930243583  1465104384   fd  Linux raid autodetect

Предыстория

Итак, контроллер SATA вышел из строя в коробке, которую я поддерживаю. Сбой был ужасным, поэтому отдельные диски постепенно выпадали из массива. Хотя есть резервные копии, на самом деле мы делаем их не так часто, как нам действительно нужно. Есть некоторые данные, которые я пытаюсь восстановить, если смогу.

Я получил дополнительное оборудование и снова смог получить доступ к дискам. С дисками все в порядке, и я могу активировать и смонтировать массив и файловую систему (в режиме только для чтения). Я могу получить доступ к некоторым данным в файловой системе и копировал их, но я вижу много ошибок, когда пытаюсь скопировать самые последние данные.

Когда я пытаюсь получить доступ к этим самым последним данным, я получаю такие ошибки, как показано ниже, что заставляет меня думать, что несоответствие размера массива может быть проблемой.

Mar 14 18:26:04 server kernel: [351588.196299] dm-7: rw=0, want=6619839616, limit=6442450944
Mar 14 18:26:04 server kernel: [351588.196309] attempt to access beyond end of device
Mar 14 18:26:04 server kernel: [351588.196313] dm-7: rw=0, want=6619839616, limit=6442450944
Mar 14 18:26:04 server kernel: [351588.199260] attempt to access beyond end of device
Mar 14 18:26:04 server kernel: [351588.199264] dm-7: rw=0, want=20647626304, limit=6442450944
Mar 14 18:26:04 server kernel: [351588.202446] attempt to access beyond end of device
Mar 14 18:26:04 server kernel: [351588.202450] dm-7: rw=0, want=19973212288, limit=6442450944
Mar 14 18:26:04 server kernel: [351588.205516] attempt to access beyond end of device
Mar 14 18:26:04 server kernel: [351588.205520] dm-7: rw=0, want=8009695096, limit=6442450944

Если вы можете клонировать диски с помощью dd, я бы это сделал. Сохраняйте оригинальные диски как можно более нетронутыми.

Тогда это полный выстрел от бедра, но это то, что я бы попробовал, будь я в такой ситуации. С клонированными дисками в системе я бы стер все метаданные RAID, используя.
mdadm --zero-superblock /dev/sdx#
на каждом из задействованных дисков.

Затем используйте команду для воссоздания массива.
mdadm -v --create /dev/md2 \
--level=raid10 --layout=o2 --raid-devices=5 \
--chunk=64 --metadata=0.90 --assume-clean \
/dev/sdg2 /dev/sdf2 /dev/sde2 /dev/sdd2 /dev/sdc2

Это должно избавить от всех проблем с уровнем рейда. Оттуда вы можете попробовать перемонтировать файловые системы и посмотреть, что осталось. А если это не сработает, повторно клонируйте диски и попробуйте что-нибудь еще :)

Вы уверены в своей командной строке для создания массива? Я предполагаю, что это был "стандартный" массив raid10 из 4 дисков с диском горячего резерва, что объясняет результат / dev / sdc2

Можете ли вы рассказать нам результат:

cat /proc/mdstat
cat /etc/mdadm.conf
mdadm --examine /dev/sdx2 ( each drive )

С его помощью вы сможете угадать, какой из дисков был горячим резервом, и таким образом сможете правильно восстановить массив. Конечно, как заявляет 3dinfluence, вам следует продублировать данные, прежде чем пытаться перенастроить массив.

Изменить: также, вероятно, это не пустая трата времени для запуска: smartctl -a /dev/sdx на каждом диске (проверьте в конце вывода, были ли сообщения об ошибках), а затем smartcl -t long /dev/sdx и через 3 или 4 часа снова smartctl -a, чтобы проверить, что 5 дисков действительно хорошо. Если один диск сообщает об ошибках, возможно, он был обнаружен mdadm как неисправный, и поэтому mdadm включил запасной диск (всегда предположение)

Редактировать 2: если vgs сообщает: vgdisplay показывает Alloc PE / Size 3.00 TiB, Free PE / Size 421.08 Это означает, что ваш PV загадочным образом вырос до 421G .. Я верю в свой случай: "загадочный" рост - это неправильная конфигурация вашего массива . Реальный размер вашего массива - 3Т. Вы неправильно его собрали, поэтому он поврежден. Чтобы правильно собрать его, вам нужно получить исходную конфигурацию и какой из дисков был запасным. Удачи.