Создание программного RAID массива в Ubuntu Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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_на_предприятии}}