Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:программный_raid [2010/01/08 20:44] создано |
wiki:программный_raid [2014/12/03 16:42] (текущий) |
||
---|---|---|---|
Строка 50: | Строка 50: | ||
</file> | </file> | ||
- | Если вы хотите сразу же создать массив с отсутствующим диском (degrated), просто укажите вместо имени устройства слово ''missing''. Учтите, что в RAID-5 может быть не более одного отсутствующего диска, в RAID-6 - не более двух, а в RAID-1 должен быть хотя бы один рабочий. | + | Если вы хотите сразу же создать массив с отсутствующим диском (degraded), просто укажите вместо имени устройства слово ''missing''. Учтите, что в RAID-5 может быть не более одного отсутствующего диска, в RAID-6 - не более двух, а в RAID-1 должен быть хотя бы один рабочий. |
- | //To be continued...// | + | //To be continued...// FIXME |
+ | |||
+ | ===== Изменение конфигурационного файла ===== | ||
+ | |||
+ | Если вам вдруг потребуется после создания массива производить какие-нибудь операции с его блочным устройством, которые изменят 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'' безо всяких ошибок на дисках. При этом все диски помечаются как неактивные. Выглядит это примерно так: | ||
+ | |||
+ | <code> | ||
+ | $ cat /proc/mdstat | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : inactive sdd1[2](S) sdb1[1](S) sdc1[0](S) sde1[3](S) | ||
+ | 2930287616 blocks | ||
+ | |||
+ | unused devices: <none> | ||
+ | </code> | ||
+ | |||
+ | Ничего страшного в этом нет, вам надо всего лишь остановить массив командой | ||
+ | |||
+ | sudo mdadm --stop /dev/md0 | ||
+ | |||
+ | И затем пересобрать командой | ||
+ | |||
+ | sudo mdadm --assemble --scan --force | ||
+ | |||
+ | <note warning>Если имел место серьёзный сбой массива, например, "вылет" чрезмерного количества дисков, то массив тоже перейдёт в состояние ''inactive'', но в этом случае простой его пересборкой восстановить работоспособность не получится, мало того, она может даже навредить. Так что будьте внимательны и в случае возникновения проблем в первую очередь смотрите на состояние массива и всех его компонентов.</note> | ||
+ | |||
+ | Только потом не забудьте примонтировать файловую систему, при перезапуске массива это не будет сделано автоматически. Если у вас массив прописан в ''/etc/fstab'', то для его примонтирования обычно достаточно выполнить команду | ||
+ | |||
+ | 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 Администрирование Server Linux_на_предприятии}} |