Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
wiki:программный_raid [2010/01/31 13:32] |
wiki:программный_raid [2013/08/22 16:03] |
||
---|---|---|---|
Строка 52: | Строка 52: | ||
Если вы хотите сразу же создать массив с отсутствующим диском (degrated), просто укажите вместо имени устройства слово ''missing''. Учтите, что в RAID-5 может быть не более одного отсутствующего диска, в RAID-6 - не более двух, а в RAID-1 должен быть хотя бы один рабочий. | Если вы хотите сразу же создать массив с отсутствующим диском (degrated), просто укажите вместо имени устройства слово ''missing''. Учтите, что в RAID-5 может быть не более одного отсутствующего диска, в RAID-6 - не более двух, а в RAID-1 должен быть хотя бы один рабочий. | ||
- | //To be continued...// | + | //To be continued...// FIXME |
- | ===== Устранение возникающих проблем ===== | + | ===== Изменение конфигурационного файла ===== |
- | ===== Массив внезапно перешёл в состояние inactive ===== | + | Если вам вдруг потребуется после создания массива производить какие-нибудь операции с его блочным устройством, которые изменят UUID, то обязательно необходимо изменить конфигурационный файл ''/etc/mdadm/mdadm.conf''. |
+ | |||
+ | Например такими операциями может быть форматирование или создание группы томов LVM поверх массива. В любом случае когда вы вносите какие-нибудь правки на уровне разметки в массив лучше проверьте, что конфигурационный файл соответствует реальной конфигурации. | ||
+ | |||
+ | Для получения текущей работающей конфигурации выполните | ||
+ | |||
+ | sudo mdadm --detail --scan | ||
+ | |||
+ | Эта команда выведет по строчке конфигурации для каждого массива. Именно такие строчки должны быть записаны в файле ''/etc/mdadm/mdadm.conf'' за исключением того, что в строчках в файле не должно быть параметра ''metadata''. | ||
+ | |||
+ | Если реальная конфигурация не совпадает с той, которая записана в ''/etc/mdadm/mdadm.conf'', то обязательно приведите этот файл в соответствие с реальной конфигурацией до перезагрузки, иначе в следующий раз массив не запустится. | ||
+ | |||
+ | ===== Работа с программным RAID с LiveCD ===== | ||
+ | |||
+ | LiveCD диски Ubuntu по умолчанию не включают в себя утилиту mdadm, поэтому чтобы работать с RAID массивами с LiveCD вам необходимо сначала её установить: | ||
+ | |||
+ | sudo apt-get install mdadm | ||
+ | |||
+ | После этого нужно запустить все ваши массивы, сделать это можно командой | ||
+ | |||
+ | sudo mdadm --assemble --scan | ||
+ | |||
+ | Проверить статус массивов можно как всегда с помощью файла ''/proc/mdstat'': | ||
+ | |||
+ | cat /proc/mdstat | ||
+ | |||
+ | ===== Устранение возникающих проблем и восстановление массивов ===== | ||
+ | |||
+ | ==== Массив внезапно перешёл в состояние inactive ==== | ||
Иногда из-за каких-то сбоев оборудования массив переходит в состояние ''inactive'' безо всяких ошибок на дисках. При этом все диски помечаются как неактивные. Выглядит это примерно так: | Иногда из-за каких-то сбоев оборудования массив переходит в состояние ''inactive'' безо всяких ошибок на дисках. При этом все диски помечаются как неактивные. Выглядит это примерно так: | ||
Строка 82: | Строка 110: | ||
sudo mount -a | sudo mount -a | ||
+ | |||
+ | ==== Критическая фатальная ошибка при полной работоспособности винчестеров ==== | ||
+ | |||
+ | Как бы мы не надеялись на технологию RAID, 100% гарантии она, увы, не даёт. Иногда случаются критические невосстановимые сбои. Например, когда //одновременно// вылетают 2 винчестера из RAID-5 массива. Это приводит к полной неработоспособности массива и с первого взгляда к невозможности его восстановить. | ||
+ | |||
+ | Если случилась такая беда, то: | ||
+ | |||
+ | -- В первую очередь посмотрите состояние **всех** компонент массива командой | ||
+ | .. <code>sudo mdadm -E /dev/sdc1</code> | ||
+ | .. Вместо ''sdc1'' нужно поочерёдно поставить все компоненты. Обратите особое внимание на последний блок каждого вывода, вот, например, как выглядел один из выводов у меня: | ||
+ | .. <file> | ||
+ | # mdadm -E /dev/sdc1 | ||
+ | /dev/sdc1: | ||
+ | Magic : a92b4efc | ||
+ | Version : 00.90.00 | ||
+ | UUID : 22de433d:78efb608:be909337:4a7ae5f9 (local to host malamut-desktop) | ||
+ | Creation Time : Tue Jan 5 21:26:49 2010 | ||
+ | Raid Level : raid5 | ||
+ | Used Dev Size : 732571904 (698.64 GiB 750.15 GB) | ||
+ | Array Size : 2197715712 (2095.91 GiB 2250.46 GB) | ||
+ | Raid Devices : 4 | ||
+ | Total Devices : 4 | ||
+ | Preferred Minor : 0 | ||
+ | |||
+ | Update Time : Mon May 17 23:07:51 2010 | ||
+ | State : clean | ||
+ | Active Devices : 4 | ||
+ | Working Devices : 4 | ||
+ | Failed Devices : 0 | ||
+ | Spare Devices : 0 | ||
+ | Checksum : 10e9baf9 - correct | ||
+ | Events : 154438 | ||
+ | |||
+ | Layout : left-symmetric | ||
+ | Chunk Size : 64K | ||
+ | |||
+ | Number Major Minor RaidDevice State | ||
+ | this 0 8 33 0 active sync /dev/sdc1 | ||
+ | |||
+ | 0 0 8 33 0 active sync /dev/sdc1 | ||
+ | 1 1 8 17 1 active sync /dev/sdb1 | ||
+ | 2 2 8 49 2 active sync /dev/sdd1 | ||
+ | 3 3 8 65 3 active sync /dev/sde1 | ||
+ | </file> | ||
+ | .. Тут вроде всё нормально, а вот тут уже нет: | ||
+ | .. <file> | ||
+ | # mdadm -E /dev/sde1 | ||
+ | /dev/sde1: | ||
+ | Magic : a92b4efc | ||
+ | Version : 00.90.00 | ||
+ | UUID : 22de433d:78efb608:be909337:4a7ae5f9 (local to host malamut-desktop) | ||
+ | Creation Time : Tue Jan 5 21:26:49 2010 | ||
+ | Raid Level : raid5 | ||
+ | Used Dev Size : 732571904 (698.64 GiB 750.15 GB) | ||
+ | Array Size : 2197715712 (2095.91 GiB 2250.46 GB) | ||
+ | Raid Devices : 4 | ||
+ | Total Devices : 4 | ||
+ | Preferred Minor : 0 | ||
+ | |||
+ | Update Time : Mon May 17 23:26:35 2010 | ||
+ | State : clean | ||
+ | Active Devices : 2 | ||
+ | Working Devices : 2 | ||
+ | Failed Devices : 1 | ||
+ | Spare Devices : 0 | ||
+ | Checksum : 10e9bfab - correct | ||
+ | Events : 154447 | ||
+ | |||
+ | Layout : left-symmetric | ||
+ | Chunk Size : 64K | ||
+ | |||
+ | Number Major Minor RaidDevice State | ||
+ | this 3 8 65 3 active sync /dev/sde1 | ||
+ | |||
+ | 0 0 0 0 0 removed | ||
+ | 1 1 8 17 1 active sync /dev/sdb1 | ||
+ | 2 2 0 0 2 faulty removed | ||
+ | 3 3 8 65 3 active sync /dev/sde1 | ||
+ | </file> | ||
+ | .. Собственно тут вас должен интересовать порядок следования компонент. В моём случае его можно "выцепить" из первого вывода и он выглядит так: | ||
+ | .. <code>sdc1 sdb1 sdd1 sde1</code> | ||
+ | - Во вторую проверьте состояние SMART винчестеров и прогоните тесты поверхности. Важно убедиться, что физически винчестеры живы и нет никаких ошибок чтения. Если это не так, то дело дрянь. Протестировать винчестеры можно с помощью Дисковой утилиты, доступной в Ubuntu. | ||
+ | -- Теперь попробуйте собрать массив как описано в предыдущем параграфе. У меня не получилось: | ||
+ | .. <file> | ||
+ | # mdadm --assemble --scan | ||
+ | mdadm: /dev/md0 assembled from 2 drives - not enough to start the array | ||
+ | </file> | ||
+ | .. Как видно, у меня mdadm считал, что есть только 2 рабочих компоненты массива, а изначально их было 4. И для работы необходимо иметь 3, поскольку у меня был RAID-5. | ||
+ | |||
+ | Итак, вы убедились, что возникла непоправимая ошибка mdadm, что при этом диски в порядке и в автоматическом режиме массив обратно не собрать. Что дальше? | ||
+ | |||
+ | Дальше - действовать на свой страх и риск! Собственно всё, что остаётся сделать - это заново создать массив поверх старого. | ||
+ | |||
+ | <note warning>Важно не перепутать никаких опций и не изменять порядок дисков!</note> | ||
+ | |||
+ | Самое главное - указать диски в той же последовательности, что и при первичном создании массива. Я эту последовательность выцепил из вывода команды | ||
+ | |||
+ | mdadm -E /dev/sdc1 | ||
+ | |||
+ | Итак, пересоздаём массив: | ||
+ | |||
+ | <file> | ||
+ | # mdadm --create --verbose /dev/md0 --assume-clean --level=raid5 --raid-devices=4 --spare-devices=0 /dev/sdc1 /dev/sdb1 /dev/sdd1 /dev/sde1 | ||
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: chunk size defaults to 64K | ||
+ | mdadm: /dev/sdc1 appears to contain an ext2fs file system | ||
+ | size=-2097251584K mtime=Mon May 17 19:33:06 2010 | ||
+ | mdadm: /dev/sdc1 appears to be part of a raid array: | ||
+ | level=raid5 devices=4 ctime=Tue Jan 5 21:26:49 2010 | ||
+ | mdadm: /dev/sdb1 appears to be part of a raid array: | ||
+ | level=raid5 devices=4 ctime=Tue Jan 5 21:26:49 2010 | ||
+ | mdadm: /dev/sdd1 appears to be part of a raid array: | ||
+ | level=raid5 devices=4 ctime=Tue Jan 5 21:26:49 2010 | ||
+ | mdadm: /dev/sde1 appears to contain an ext2fs file system | ||
+ | size=-1828816128K mtime=Mon May 17 19:33:03 2010 | ||
+ | mdadm: /dev/sde1 appears to be part of a raid array: | ||
+ | level=raid5 devices=4 ctime=Tue Jan 5 21:26:49 2010 | ||
+ | mdadm: size set to 732571904K | ||
+ | Continue creating array? | ||
+ | Continue creating array? (y/n) y | ||
+ | mdadm: array /dev/md0 started. | ||
+ | </file> | ||
+ | |||
+ | Если всё прошло успешно - ваш массив безо всяких ошибок запустится и вам останется только смонтировать его содержимое. Если не успешно - то увы, придётся вам нести диски в фирму восстановления данных. | ||
+ | |||
+ | |||
+ | ==== Смотрите также ==== | ||
+ | |||
+ | * [[migrate-to-raid|Перевод системного раздела на RAID.]] | ||
+ | |||
- | {{tag>FIXME mdadm RAID HOWTO}} | + | {{tag>FIXME mdadm RAID HOWTO Администрирование Server Linux_на_предприятии}} |