Восстановление программного обеспечения Linux RAID
Я вижу расхождение между выводом 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
2 ответа
Если вы можете клонировать диски с помощью 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
Это должно избавить от всех проблем уровня рейда. Оттуда вы можете попробовать перемонтировать файловые системы и посмотреть, что осталось. И если это не сработает, тогда клонируйте ваши диски и попробуйте что-нибудь еще:)
Вы уверены в своей командной строке для создания массива? Я предполагаю, что это был "стандартный" 4-х дисковый массив raid10 с горячим резервным диском, который объяснял бы результат /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/ размер 3,00 ТБ, свободный PE / размер 421,08 Это означает, что ваш PV таинственным образом вырос до 421G . Я придерживаюсь моего мнения: рост "таинственный" является неправильной конфигурацией вашего массива, Реальный размер вашего массива - 3T. Вы неправильно собрали его, поэтому он поврежден. Чтобы правильно собрать его, вам нужно восстановить исходную конфигурацию и указать, какой из дисков был запасным. Удачи.