Инструменты пользователя

Инструменты сайта


wiki:technical:mdadm

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:technical:mdadm [2022/04/04 13:43] Dimanwiki:technical:mdadm [2022/04/04 18:16] (текущий) – [Расширение массива] Diman
Строка 5: Строка 5:
 Управление программным RAID-массивом в Linux выполняется с помощью программы mdadm. Управление программным RAID-массивом в Linux выполняется с помощью программы mdadm.
 У программы mdadm есть несколько режимов работы. У программы mdadm есть несколько режимов работы.
-===Assemble=== (сборка)+ 
 +===Assemble(сборка)===
 Собрать компоненты ранее созданного массива в массив. Компоненты можно указывать явно, но можно и не указывать — тогда выполняется их поиск по суперблокам. Собрать компоненты ранее созданного массива в массив. Компоненты можно указывать явно, но можно и не указывать — тогда выполняется их поиск по суперблокам.
  
-===Build=== (построение)+===Build(построение)===
 Собрать массив из компонентов, у которых нет суперблоков. Не выполняются никакие проверки, создание и сборка массива в принципе ничем не отличаются. Собрать массив из компонентов, у которых нет суперблоков. Не выполняются никакие проверки, создание и сборка массива в принципе ничем не отличаются.
  
-**Create** (создание)+===Create(создание)===
 Создать новый массив на основе указанных устройств. Использовать суперблоки размещённые на каждом устройстве. Создать новый массив на основе указанных устройств. Использовать суперблоки размещённые на каждом устройстве.
  
-**Monitor** (наблюдение)+===Monitor(наблюдение)===
 Следить за изменением состояния устройств. Для RAID0 этот режим не имеет смысла. Следить за изменением состояния устройств. Для RAID0 этот режим не имеет смысла.
  
-**Grow** (расширение или уменьшение)+===Grow (расширение или уменьшение)===
 Расширение или уменьшение массива, включаются или удаляются новые диски. Расширение или уменьшение массива, включаются или удаляются новые диски.
  
-**Incremental Assembly** (инкрементальная сборка)+===Incremental Assembly (инкрементальная сборка)===
 Добавление диска в массив.  Добавление диска в массив. 
  
-**Manage** (управление)+===Manage (управление)===
 Разнообразные операции по управлению массивом, такие как замена диска и пометка как сбойного.  Разнообразные операции по управлению массивом, такие как замена диска и пометка как сбойного. 
  
-**Misc** (разное)+===Misc (разное)===
 Действия, которые не относятся ни к одному из перечисленных выше режимов работы.  Действия, которые не относятся ни к одному из перечисленных выше режимов работы. 
  
-**Auto-detect** (автоообнаружение)+===Auto-detect (автоообнаружение)===
 Активация автоматически обнаруживаемых массивов в ядре Linux.  Активация автоматически обнаруживаемых массивов в ядре Linux. 
  
  
-===Формат вызова===+====Формат вызова====
  
 mdadm [mode] [array] [options] mdadm [mode] [array] [options]
Строка 48: Строка 49:
  
  
-===Настройка программного RAID-массива===+====Настройка программного RAID-массива====
  
 Рассмотрим как выполнить настройку RAID-массива 10 уровня на четырёх дисковых разделах. Мы будем использовать разделы: Рассмотрим как выполнить настройку RAID-массива 10 уровня на четырёх дисковых разделах. Мы будем использовать разделы:
Строка 59: Строка 60:
 В том случае если разделы иные, не забудьте использовать соответствующие имена файлов. В том случае если разделы иные, не забудьте использовать соответствующие имена файлов.
  
-===Создание разделов===+====Создание разделов====
  
 Нужно определить на каких физических разделах будет создаваться RAID-массив. Если разделы уже есть, нужно найти свободные (fdisk -l). Если разделов ещё нет, но есть неразмеченное место, их можно создать с помощью программ fdisk или cfdisk. Нужно определить на каких физических разделах будет создаваться RAID-массив. Если разделы уже есть, нужно найти свободные (fdisk -l). Если разделов ещё нет, но есть неразмеченное место, их можно создать с помощью программ fdisk или cfdisk.
Строка 93: Строка 94:
    /dev/hda7              5336664    464228   4601344  10% /var    /dev/hda7              5336664    464228   4601344  10% /var
  
-===Размонтирование===+====Размонтирование====
  
 Если вы будете использовать созданные ранее разделы, обязательно размонтируйте их. RAID-массив нельзя создавать поверх разделов, на которых находятся смонтированные файловые системы. Если вы будете использовать созданные ранее разделы, обязательно размонтируйте их. RAID-массив нельзя создавать поверх разделов, на которых находятся смонтированные файловые системы.
Строка 102: Строка 103:
    %# umount /dev/sdd1    %# umount /dev/sdd1
  
-===Изменение типа разделов===+====Изменение типа разделов====
  
 Желательно (но не обязательно) изменить тип разделов, которые будут входить в RAID-массив и установить его равным FD (Linux RAID autodetect). Изменить тип раздела можно с помощью fdisk. Желательно (но не обязательно) изменить тип разделов, которые будут входить в RAID-массив и установить его равным FD (Linux RAID autodetect). Изменить тип раздела можно с помощью fdisk.
Строка 195: Строка 196:
  
  
-===Создание RAID-массива===+====Создание RAID-массива====
  
 Создание RAID-массива выполняется с помощью программы mdadm (ключ --create). Мы воспользуемся опцией --level, для того чтобы создать RAID-массив 10 уровня. С помощью ключа --raid-devices укажем устройства, из которых будет собираться RAID-массив. Создание RAID-массива выполняется с помощью программы mdadm (ключ --create). Мы воспользуемся опцией --level, для того чтобы создать RAID-массив 10 уровня. С помощью ключа --raid-devices укажем устройства, из которых будет собираться RAID-массив.
Строка 215: Строка 216:
 Если вы хотите сразу создать массив, где диска не хватает (degraded) просто укажите слово missing вместо имени устройства. Для RAID5 это может быть только один диск; для RAID6 — не более двух; для RAID1 — сколько угодно, но должен быть как минимум один рабочий. Если вы хотите сразу создать массив, где диска не хватает (degraded) просто укажите слово missing вместо имени устройства. Для RAID5 это может быть только один диск; для RAID6 — не более двух; для RAID1 — сколько угодно, но должен быть как минимум один рабочий.
  
-===Проверка правильности сборки===+====Проверка правильности сборки====
  
 Убедиться, что RAID-массив проинициализирован корректно можно просмотрев файл /proc/mdstat. В этом файле отражается текущее состояние RAID-массива. Убедиться, что RAID-массив проинициализирован корректно можно просмотрев файл /proc/mdstat. В этом файле отражается текущее состояние RAID-массива.
Строка 228: Строка 229:
  
 Обратите внимание на то, как называется новый RAID-массив. В нашем случае он называется /dev/md0. Мы будем обращаться к массиву по этому имени. Обратите внимание на то, как называется новый RAID-массив. В нашем случае он называется /dev/md0. Мы будем обращаться к массиву по этому имени.
-===Создание файловой системы поверх RAID-массива===+====Создание файловой системы поверх RAID-массива====
  
 Новый RAID-раздел нужно отформатировать, т.е. создать на нём файловую систему. Сделать это можно при помощи программы из семейства mkfs. Если мы будем создавать файловую систему ext3, воспользуемся программой mkfs.ext3. : Новый RAID-раздел нужно отформатировать, т.е. создать на нём файловую систему. Сделать это можно при помощи программы из семейства mkfs. Если мы будем создавать файловую систему ext3, воспользуемся программой mkfs.ext3. :
Строка 264: Строка 265:
       %# mkfs.xfs -d su=64k,sw=3 /dev/md0       %# mkfs.xfs -d su=64k,sw=3 /dev/md0
  
-===Создание конфигурационного файла mdadm.conf===+====Создание конфигурационного файла mdadm.conf====
  
 Система сама не запоминает какие RAID-массивы ей нужно создать и какие компоненты в них входят. Эта информация находится в файле mdadm.conf. Система сама не запоминает какие RAID-массивы ей нужно создать и какие компоненты в них входят. Эта информация находится в файле mdadm.conf.
Строка 284: Строка 285:
     %# mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf     %# mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
  
-===Создание точки монтирования для RAID-массива===+====Создание точки монтирования для RAID-массива====
  
 Поскольку мы создали новую файловую систему, вероятно, нам понадобится и новая точка монтирования. Назовём её /raid. Поскольку мы создали новую файловую систему, вероятно, нам понадобится и новая точка монтирования. Назовём её /raid.
Строка 290: Строка 291:
     %# mkdir /raid     %# mkdir /raid
  
-===Изменение /etc/fstab===+====Изменение /etc/fstab====
  
 Для того чтобы файловая система, созданная на новом RAID-массиве, автоматически монтировалась при загрузке, добавим соответствующую запись в файл /etc/fstab хранящий список автоматически монтируемых при загрузке файловых систем. Для того чтобы файловая система, созданная на новом RAID-массиве, автоматически монтировалась при загрузке, добавим соответствующую запись в файл /etc/fstab хранящий список автоматически монтируемых при загрузке файловых систем.
Строка 302: Строка 303:
     #/dev/hdg1       /data3        ext3    defaults        1 2     #/dev/hdg1       /data3        ext3    defaults        1 2
  
-===Монтирование файловой системы нового RAID-массива===+====Монтирование файловой системы нового RAID-массива====
  
 Для того чтобы получить доступ к файловой системе, расположенной на новом RAID-массиве, её нужно смонтировать. Монтирование выполняется с помощью команды mount. Для того чтобы получить доступ к файловой системе, расположенной на новом RAID-массиве, её нужно смонтировать. Монтирование выполняется с помощью команды mount.
Строка 318: Строка 319:
    %# mount /dev/md0 /raid    %# mount /dev/md0 /raid
  
-===Проверка состояния RAID-массива===+====Проверка состояния RAID-массива====
  
 Информация о состоянии RAID-массива находится в файле /proc/mdstat. Информация о состоянии RAID-массива находится в файле /proc/mdstat.
Строка 345: Строка 346:
 cat /sys/block/md0/md/mismatch_cnt cat /sys/block/md0/md/mismatch_cnt
  
-===Проблема загрузки на многодисковых системах===+====Проблема загрузки на многодисковых системах====
  
 В некоторых руководствах по mdadm после первоначальной сборки массивов рекомендуется добавлять в файл /etc/mdadm/mdadm.conf вывод команды "mdadm --detail --scan --verbose": В некоторых руководствах по mdadm после первоначальной сборки массивов рекомендуется добавлять в файл /etc/mdadm/mdadm.conf вывод команды "mdadm --detail --scan --verbose":
Строка 424: Строка 425:
     %# mdadm /dev/md0 -a    /dev/hde1     %# mdadm /dev/md0 -a    /dev/hde1
  
- +====Сборка существующего массива====
-[править] Сборка существующего массива+
  
 Собрать существующий массив можно с помощью mdadm --assemble. Как дополнительный аргумент указывается, нужно ли выполнять сканирование устройств, и если нет, то какие устройства нужно собирать. Собрать существующий массив можно с помощью mdadm --assemble. Как дополнительный аргумент указывается, нужно ли выполнять сканирование устройств, и если нет, то какие устройства нужно собирать.
Строка 432: Строка 432:
     %# mdadm --assemble --scan     %# mdadm --assemble --scan
  
-[править] Расширение массива+====Расширение массива====
  
 Расширить массив можно с помощью ключа --grow (-G). Сначала добавляется диск, а потом массив расширяется: Расширить массив можно с помощью ключа --grow (-G). Сначала добавляется диск, а потом массив расширяется:
Строка 451: Строка 451:
 Рекомендуется задать файл бэкапа на случай прерывания перестроения массива, например добавить: Рекомендуется задать файл бэкапа на случай прерывания перестроения массива, например добавить:
  
---backup-file=/var/backup+  --backup-file=/var/backup
  
 При необходимости можно регулировать скорость процесса расширения массива, указав нужное значение в файлах При необходимости можно регулировать скорость процесса расширения массива, указав нужное значение в файлах
Строка 467: Строка 467:
     %# vi /etc/mdadm/mdadm.conf     %# vi /etc/mdadm/mdadm.conf
  
-[править] Возобновление отложенной синхронизации+====Возобновление отложенной синхронизации====
  
 Отложенная синхронизация: Отложенная синхронизация:
  
-Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] +  Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
-md0 : active(auto-read-only) raid1 sda1[0] sdb1[1]+  md0 : active(auto-read-only) raid1 sda1[0] sdb1[1]
       78148096 blocks [2/2] [UU]       78148096 blocks [2/2] [UU]
         resync=PENDING         resync=PENDING
Строка 478: Строка 478:
 Возобновить: Возобновить:
  
-echo idle > /sys/block/md0/md/sync_action+  echo idle > /sys/block/md0/md/sync_action
  
 P.S.: Если вы увидели «active (auto-read-only)» в файле /proc/mdstat, то возможно вы просто ничего не записывали в этот массив. К примеру, после монтирования раздела и любых изменений в примонтированном каталоге, статус автоматически меняется: P.S.: Если вы увидели «active (auto-read-only)» в файле /proc/mdstat, то возможно вы просто ничего не записывали в этот массив. К примеру, после монтирования раздела и любых изменений в примонтированном каталоге, статус автоматически меняется:
  
-md0 : active raid1 sdc[0] sdd[1]+  md0 : active raid1 sdc[0] sdd[1]
  
-[править] Переименование массива+====Переименование массива====
  
 Для начала отмонтируйте и остановите массив: Для начала отмонтируйте и остановите массив:
Строка 499: Строка 499:
     %# mdadm --assemble /dev/md5 /dev/sd[abcdefghijk]1 --update=super-minor     %# mdadm --assemble /dev/md5 /dev/sd[abcdefghijk]1 --update=super-minor
  
-[править] Удаление массива+====Удаление массива====
  
 Для начала отмонтируйте и остановите массив: Для начала отмонтируйте и остановите массив:
Строка 516: Строка 516:
     %# dd if=/dev/zero of=/dev/hdf2 bs=512 count=1     %# dd if=/dev/zero of=/dev/hdf2 bs=512 count=1
  
-[править] Создание пустого массива без сихронизации данных+====Создание пустого массива без сихронизации данных====
  
 Не каноничный метод, применять на дисках без данных! Не каноничный метод, применять на дисках без данных!
Строка 552: Строка 552:
     %# cat /proc/mdstat     %# cat /proc/mdstat
  
-[править] Дополнительная информация+====Дополнительная информация====
  
     man mdadm (англ.)     man mdadm (англ.)
Строка 564: Строка 564:
     Недокументированные фишки программного RAID в Linux (рус.)      Недокументированные фишки программного RAID в Linux (рус.) 
  
-[править] Производительность программных RAID-массивов+====Производительность программных RAID-массивов====
  
     Adventures With Linux RAID: Part 1, Part 2 (англ.)     Adventures With Linux RAID: Part 1, Part 2 (англ.)
     Параметры, влияющие на производительность программного RAID (рус.)      Параметры, влияющие на производительность программного RAID (рус.) 
  
-[править] Разные заметки, имеющие отношение к RAID+====Разные заметки, имеющие отношение к RAID====
  
     BIO_RW_BARRIER - what it means for devices, filesystems, and dm/md. (англ.)      BIO_RW_BARRIER - what it means for devices, filesystems, and dm/md. (англ.) 
wiki/technical/mdadm.1649069000.txt.gz · Последнее изменение: 2022/04/04 13:43 — Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki