Джастин Эллингвуд, Конг Янг. Как управлять массивами RAID с помощью mdadm в Ubuntu 22.04

Это перевод статьи Justin Ellingwood, Kong Yang. How To Manage RAID Arrays with mdadm on Ubuntu 22.04.

Содержание

Введение

Массивы RAID, комбинируя определённым обрзом отдельные накопители в виртуальные устройства хранения, позволяют достичь более высокой производительности и избыточности. В Linux для создания и управления программными массивами RAID предназначена утилита mdadm.

В предыдущем руководстве было рассмотрено создание массивов RAID с помощью mdadm в Ubuntu 22.04. В этом руководтсве будет рассмотрено управление массивами RAID на сервере Ubuntu 22.04.

Предварительные требования

Для использования этого руководства потребуется непривилегированный пользователь с привилегиями sudo. Для настройки подходящего пользователя можно воспользоваться руководством по начальной настройке сервера Ubuntu 22.04 - Ubuntu 22.04 initial server setup guide.

Как было отмечено выше, в этом руководстве рассматриваются вопросы управления массивами RAID. Прежде чем перейти к этому руководству, воспользуйтесь руководством по созданию массивов RAID с помощью mdadm в Ubuntu 22.04, чтобы создать один или несколько массивов. В этом руководстве предполагается наличие одного или нескольких массивов для работы с ними.

Информация: Из-за неэффективности RAID на виртуальных приватных серверах не рекомендутся настраивать RAID средствами DigitalOcean. Из-за эффективной репликации накопителей в центре обработки данных преимущества RAID, по сравнению с настройкой на реальном оборудовании, незначительны. Это руководство задумано как справочник по настройке обычных конфигураций RAID.

Получение информации об устройствах RAID

Для правильного управления важно иметь возможность найти информацию о состоянии массива, его структуре и входящих в него устройствах.

Для получения подробной информации об устройстве RAID укажите устройство утилите mdadm после опции -D или --detail:

$ sudo mdadm -D /dev/md0

Будет показана следующая важная информация о массиве:

    /dev/md0:
               Version : 1.2
         Creation Time : Thu Sep 29 17:07:10 2022
            Raid Level : raid10
            Array Size : 209582080 (199.87 GiB 214.61 GB)
         Used Dev Size : 104791040 (99.94 GiB 107.31 GB)
          Raid Devices : 4
         Total Devices : 4
           Persistence : Superblock is persistent

           Update Time : Thu Sep 29 17:08:24 2022
                 State : clean, resyncing
        Active Devices : 4
       Working Devices : 4
        Failed Devices : 0
         Spare Devices : 0

                Layout : near=2
            Chunk Size : 512K

    Consistency Policy : resync

                  Name : raid2:0 (local to host raid2)
                  UUID : 8069bcc7:72e7b49f:fba1c780:560a85e0
                Events : 35

        Number   Major   Minor   RaidDevice State
           0       8        0        0      active sync set-A   /dev/sda
           1       8       16        1      active sync set-B   /dev/sdb
           2       8       32        2      active sync set-A   /dev/sdc
           3       8       48        3      active sync set-B   /dev/sdd

Перевод:

    /dev/md0:
                                Версия : 1.2
                        Время создания : вторник 29 сентября 2022 17:07:10
                          Уровень RAID : raid10
                        Размер массива : 209582080 (199.87 ГиБ 214.61 ГБ)
        Используемый размер устройства : 104791040 (99.94 ГиБ 107.31 ГБ)
                        Устройств RAID : 4
                       Всего устройств : 4
                           Постоянство : Постоянный суперблок

                      Время обновления : вторник 29 сентября 2022 17:08:24
                             Состояние : исправен, синхронизируется
                    Актвиных устройств : 4
                   Исправных устройств : 4
                 Неисправных устройств : 0
                    Запасных устройств : 0

                             Раскладка : ближняя=2
                          Размер блока : 512К

                  Политика целостности : синхронизируется

                                   Имя : raid2:0 (локальное для узла raid2)
Универсальный уникальный идентификатор : 8069bcc7:72e7b49f:fba1c780:560a85e0
                               Событий : 35

        Номер    Старший Младший УстройствоRAID Состояние
           0       8        0        0          активно синхронизируется множество-A /dev/sda
           1       8       16        1          активно синхронизируется множество-B /dev/sdb
           2       8       32        2          активно синхронизируется множество-A /dev/sdc
           3       8       48        3          активно синхронизируется множество-B /dev/sdd

Из приведённого выше вывода можно узнать уровень RAID, размер и универсальный уникальный идентификатор массива, список компонентов, их роли и состояние.

Сокращённую информацию о массиве, подходящую для добавления в файл /dev/mdadm/mdadm.conf, можно узнать той же комадой, добавив к ней флаг --brief или -b:

$ sudo mdadm -Db /dev/md0

Вывод:

ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=8069bcc7:72e7b49f:fba1c780:560a85e0

Перевод:

МАССИВ /dev/md0 метаданные=1.2 имя=mdadmwrite:0 УниверсальныйУникальныйИДентификатор=8069bcc7:72e7b49f:fba1c780:560a85e0

Для получения короткой удобной для чтения справки об устройстве RAID воспользуйтесь опцией -Q:

$ sudo mdadm -Q /dev/md0

Вывод:

/dev/md0: 199.88GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.

Перевод:

/dev/md0: 199.88ГиБ raid10 4 устройства, 0 запасных. Воспользуйтесь mdadm --detail, чтобы узнать подробности.

Этого достаточно для получения ключевой информации об устройстве RAID при беглом ознакомлении.

Получение информации о компонентах массива

Для получения информации об отдельных компонентах массива можно воспользоваться mdadm.

Опция -Q при указании компонента массива выведет информацию о том, частью какого массива он является и какова его роль:

$ sudo mdadm -Q /dev/sdc

Вывод:

/dev/sdc: is not an md array
/dev/sdc: device 2 in 4 device active raid10 /dev/md0. Use mdadm --examine for more detail.

Перевод:

/dev/sdc: не массив md
/dev/sdc: устройство 2 из 4 активно raid10 /dev/md0. Воспользуйтесь mdadm --examine, чтобы узнать подробности.

Более подробную информацию можно узнать с помощью опции -E или --examine:

$ sudo mdadm -E /dev/sdc

Вывод:

/dev/sdc:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8069bcc7:72e7b49f:fba1c780:560a85e0
           Name : RAID2204:0 (local to host RAID2204)
  Creation Time : Wed Oct 5 15:56:03 2022
     Raid Level : raid10
   Raid Devices : 4

 Avail Dev Size : 209582080 sectors (99.94 GiB 107.31 GB)
     Array Size : 209582080 KiB (199.87 GiB 214.61 GB)
    Data Offset : 133120 sectors
   Super Offset : 8 sectors
   Unused Space : before=132968 sectors, after=0 sectors
          State : clean
    Device UUID : 027f74c5:6d488509:64844c7a:add75d88

    Update Time : Wed Oct 5 16:13:57 2022
  Bad Block Log : 512 entries available at offset 136 sectors
       Checksum : 98edf3ae - correct
         Events : 35

         Layout : near=2
     Chunk Size : 512K

    Device Role : Active device 2
    Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

Перевод:

/dev/sdc:
                                        Сигнатура : a92b4efc
                                           Версия : 1.2
                               Карта возможностей : 0x0
  Универсальный уникальный индентификатор массива : 8069bcc7:72e7b49f:fba1c780:560a85e0
                                              Имя : RAID2204:0 (локальный для узла RAID2204)
                                   Время создания : среда 5 октября 2022 15:56:03
                                     Уровень RAID : raid10
                                   Устройств RAID : 4

                      Доступный размер устройства : 209582080 секторов (99.94 ГиБ 107.31 ГБ)
                                   Размер массива : 209582080 КиБ (199.87 ГиБ 214.61 ГБ)
                                  Смещение данных : 133120 секторов
                                 Главное смещение : 8 секторов
                      Неиспользуемое пространство : до=132968 секторов, после=0 секторов
                                        Состояние : исправен
Универсальный уникальный идентификатор устройства : 027f74c5:6d488509:64844c7a:add75d88

                                 Время обновления : среда 5 октября 2022 16:13:57
                        Журнал неисправных блоков : доступно 512 записей по смещению 136 секторов
                                Контрольная сумма : 98edf3ae - совпадает
                                          Событий : 35

                                        Раскладка : ближняя=2
                                     Размер блока : 512К

                                  Роль устройства : активное устройство 2
                                Состояние массива : AAAA ('A' == активно, '.' == отсутствует, 'R' == заменяется)

Эта информация похожа на ту, которая отображается опцией -D при указании массива, но относится к компоненту массива.

Чтение информации из /proc/mdstat

За подробной информацией о каждом собранном массиве на сервере можно обратиться к файлу /proc/mdstat. Зачастую это лучший способ получения информации о текущем состоянии активных массивов в системе:

$ cat /proc/mdstat

Вывод:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
      209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>

Перевод:

Поддерживается: [линейный] [многопутёвый] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : активен raid10 sdd[3] sdc[2] sdb[1] sda[0]
      209584128 блоков суперблок версии 1.2 512K фрагментов 2 ближних копии [4/4] [UUUU]

Вывод очень плотный, содержит много информации в небольшом объёме:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
...

Перевод:

Поддерживается: [линейный] [многопутёвый] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
...

Строка Personalities отображает различные уровни RAID и конфигурации, поддерживаемые ядром в настоящее время.

В строке, начинающейся md0, описывается устройство RAID:

...
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
...

Перевод:

...
md0 : автивен raid10 sdd[3] sdc[2] sdb[1] sda[0]
...

Первое слово описания говорит о том, что массив активен, исправен и настроен как RAID 10. Затем перечисляются компоненты массива, из которых он состоит. Числа в квадратных скобках описывают текущую роль устройства в массиве. Роли влияют на то, какие копии данных размещаются на устройстве.

В следующей строке из приведённого примера указано количество блоков, предоставляемых виртуальным устройством, версия метаданных (в приведённом примере это 1.2) и размер фрагмента массива. Поскольку это массив RAID 10, здесь также есть информация о раскладке массива. В приведённом примере было настроено хранение двух копий каждого фрагмента данных в ближней раскладке:

...
      209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
...

Перевод:

...
      209584128 блоков суперблок версии 1.2 512K фрагментов 2 ближних копии [4/4] [UUUU]
...

Последний элемент в квадратных скобках одновременно указывает на количество доступных устройств и их исправность. Первое число в квадратных скобках указывает на размер исправного массива, а второе указвает количество доступных устройств. Во вторых скобках приводится визуальное представление исправности массива, где U соответствует исправным устройствам, а _ соответствует неисправным устройствам.

Если массив в настоящее время собирается или восстанавливается, может появиться строчка, изображающая степень завершённости:

...
[>....................] resync = 0.9% (2032768/209584128) finish=15.3min speed=225863K/sec
...

Перевод:

...
[>....................] синхронизация = 0.9% (2032768/209584128) осталось=15.3мин скорость=225863К/сек
...

Она описывает выполняемое действие и текущую степень завершённости несколькими способами. Также в ней приводятся текущая скорость и расчётное время до завершения.

После получения хорошего представления о настроенных в системе массивах можно выполнить над ними одно из несколько возможных действий.

Остановка массива

Для остановки массива прежде всего его нужно размонтировать.

Выйдем за пределы смонтированного каталога с помощью команды cd ~:

$ cd ~

Теперь размонтируем устройство:

$ sudo umount /mnt/md0

Сразу все активные массивы можно остановить с помощью команды:

$ sudo mdadm --stop --scan

Для остановки какого-то определённого массива укажите его команде mdadm --stop:

$ sudo mdadm --stop /dev/md0

Массив будет остановлен. Чтобы снова получить к нему доступ, его нужно будет снова собрать.

Запуск массива

Для запуска всех массивов, определённых в файле конфигурации или в /proc/mdstat, выполните следующую команду:

$ sudo mdadm --assemble --scan

Для запуска какого-то определённого массива укажите его команде mdadm --assemble:

$ sudo mdadm --assemble /dev/md0

Это сработает, если массив определён в файле конфигурации.

Если в файле конфигурации нет определения массива, массив всё ещё можно запустить, указав его компоненты:

$ sudo mdadm --assemble /dev/md0 /dev/sda /dev/sdb /dev/sdc /dev/sdd

После сборки массив можно смонтировать, как обычно:

$ sudo mount /dev/md0 /mnt/md0

Теперь массив доступен через точку монитрования.

Добавление запасного устройства в массив

Запасное устройство можно добавить к любому массиву с избыточностью - к RAID 1, 5, 6 или 10. Запас не будет использоваться массивом до тех пор, пока не выйдет из строя одно из активных устройств. Когда это случится, данные на запасном устройстве будут синхронизированы с данными массива для восстановления полной исправности массива. Запасные устройства нельзя добавить к массивам без избыточности (RAID 0), потому что при неисправности накопителя такой массив сразу полностью выходит из строя.

Для добавления запаса укажите команде mdadm --add массив и новое устройство:

$ sudo mdadm /dev/md0 --add /dev/sde

Если массив не находится в деградированном состоянии, новое устройство добавится как запасное. Если массив в настоящее время находится в деградированном состоянии, немедленно начнётся процесс синхронизации с использованием запасного накопителя для замены неисправного.

После добавления запаса обновите файл конфигурации, чтобы в нём была информация о запасе:

$ sudo nano /etc/mdadm/mdadm.conf

Удалите или закомментируйте текущую строку, соответствующую определению массива:

# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=d81c843b:4d96d9fc:5f3f499c:6ee99294

Затем добавьте текущую конфигурацию:

$ sudo mdadm --detail --brief /dev/md0 | sudo tee -a /etc/mdadm/mdadm.conf

Новая информация будет использоваться утилитой mdadm для сборки массива.

Увеличение количества активных устройств в массиве

Можно вырастить массив, увеличив количество активных устройств. Конкретные действия зависят от уровня массива RAID.

RAID 1 или 10

Начнём с добавления нового устройства в качестве запасного, как было показано в предыдущем разделе:

$ sudo mdadm /dev/md0 --add /dev/sde

Найдём текущее количество устройств в массиве:

$ sudo mdadm --detail /dev/md0

Вывод:

/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug 10 15:29:26 2016
     Raid Level : raid1
     Array Size : 104792064 (99.94 GiB 107.31 GB)
  Used Dev Size : 104792064 (99.94 GiB 107.31 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

Перевод:

/dev/md0:
                        Версия : 1.2
                Время создания : среда 10 августа 2016 15:29:26
                  Уровень RAID : raid1
                Размер массива : 104792064 (99.94 ГиБ 107.31 ГБ)
Используемый размер устройства : 104792064 (99.94 ГиБ 107.31 ГБ)
                Устройств RAID : 2
               Всего устройств : 3
                   Постоянство : Постоянный суперблок

В приведённом примере массив настроен на активное использование двух накопителей. Но общее количество устройств в массиве - три, потому что есть запасное.

Теперь реконфигурируем массив для добавления дополнительного активного устройства. Запасное устройство будет использоваться для удовлетворения требований в дополнительном устройстве. Не забудьте заменить целевое количество накопителей в этой команде. Здесь мы увеличиваем RAID 1 из двух устройств до трёх. В случае RAID 10 из четырёх устройств и дополнительного устройства укажите в команде 5:

$ sudo mdadm --grow --raid-devices=3 /dev/md0

Массив начнёт реконфигурироваться с использованием дополнительного активного накопителя. Для просмотра степени завершённости переконфигурирования воспользуйтесь командой:

$ cat /proc/mdstat

Можно продолжать пользоваться устройством во время переконфигурирования.

После завершения переконфигурирования нужно расширить файловую систему для использования дополнительного места в массиве:

$ sudo resize2fs /dev/md0

Теперь размер файловой системы соответствует размеру массива.

RAID 5 или 6

Начнём с добавления нового устройства как запасного, как было показано в предыдущем разделе:

$ sudo mdadm /dev/md0 --add /dev/sde

Найдём текущее количество устройств в массиве RAID:

$ sudo mdadm --detail /dev/md0

Вывод:

/dev/md0:
        Version : 1.2
  Creation Time : Wed Oct 5 18:38:51 2022
     Raid Level : raid5
     Array Size : 209584128 (199.88 GiB 214.61 GB)
  Used Dev Size : 104792064 (99.94 GiB 107.31 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent
...

/dev/md0:
                        Версия : 1.2
                Время создания : среда 5 октября 2022 18:38:51
                  Уровень RAID : raid5
                Размер массива : 209584128 (199.88 ГиБ 214.61 ГБ)
Используемый размер устройства : 104792064 (99.94 ГиБ 107.31 ГБ)
                Устройств RAID : 3
               Всего устройств : 4
                   Постоянство : Постоянный суперблок
...

В приведённом примере массив настроен на активное использование трёх устройств, а общее количество доступных устройств в массиве после добавления запасного устройства стало равно четырём.

Теперь перенастроим массив для добавления дополнительного активного устройства. Запасное устройство будет использоваться для удовлетворения требований в дополнительном устройстве. При выращивании массива RAID 5 до RAID 6 важно указать дополнительную опцию --backup-file. Эта опция укажет положение файла резервной копии вне массива, в котором будет содержаться критически важная информация:

Примечание: Файл резервной копии используется тольно на очень короткое, но критичное, время, после чего он автоматически удаляется. Он нужен совсем ненадолго, поэтому его появление на диске наверняка останется незамеченным. Но если что-то пойдёт не так, он понадобится для перестроения массива. Если интересны подробности, то их можно узнать из этой статьи.

$ sudo mdadm --grow --raid-devices=4 --backup-file=/root/md0_grow.bak /dev/md0

В приведённом ниже выводе можно увидеть, что на критическом этапе была сделана резервная копия:

Вывод:

mdadm: Need to backup 3072K of critical section..

Перевод:

mdadm: Нужно сохранить 3072К критических данных..

Массив начнёт переконфигурироваться с использованием дополнительного активного диска. Для наблюдения степени завершения воспользуйтесь командой:

$ cat /proc/mdstat

Можно продолжать пользоваться устройством во время переконфигурирования.

После завершения переконфигурирования нужно расширить файловую систему для использования дополнительного места в массиве:

$ sudo resize2fs /dev/md0

Теперь размер файловой системы соответствует размеру массива.

RAID 0

В массивах RAID 0 не может быть запасных дисков, поскольку невозможно заменить неисправный диск из массива RAID 0. Поэтому новый диск можно добавить только для увеличения размера массива.

Сначала узнаем текущее количество устройств в массиве RAID:

$ sudo mdadm --detail /dev/md0

Вывод:

/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug 10 19:17:14 2020
     Raid Level : raid0
     Array Size : 209584128 (199.88 GiB 214.61 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
...

Перевод:

/dev/md0:
         Версия : 1.2
 Время создания : среда 10 августа 2020 19:17:14
   Уровень RAID : raid0
 Размер массива : 209584128 (199.88 ГиБ 214.61 ГБ)
 Устройств RAID : 2
Всего устройств : 2
    Постоянство : Постоянный суперблок
...

Теперь можно увеличить количество устройств в RAID, выполнив операцию добавления нового диска:

$ sudo mdadm --grow /dev/md0 --raid-devices=3 --add /dev/sdc

Из вывода будет видно, что уровень массива поменялся на RAID 4:

Вывод:

mdadm: level of /dev/md0 changed to raid4
mdadm: added /dev/sdc

Перевод:

mdadm: уровень /dev/md0 изменился на raid4
mdadm: добавлен /dev/sdc

Это нормально и ожидаемо. Массив снова перейдёт на уровень RAID 0, когда данные распределятся по всем имеющимся накопителям.

Для наблюдения за степенью завершённости воспользуйтесь командой:

$ cat /proc/mdstat

После завершения синхронизации нужно расширить файловую систему для использования дополнительного места в массиве:

$ sudo resize2fs /dev/md0

Теперь размер файловой системы соответствует размеру массива.

Удаление устройства из массива

Если накопитель вышел из строя или если его нужно заменить, то может понадобиться удалить устройство из массива RAID.

Чтобы удалить устройство, нужно сначала пометить его в массиве как неисправное. Проверить наличие неисправных устройств можно с помощью команды mdadm --detail:

$ sudo mdadm --detail /dev/md0

Вывод:

/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug 10 21:42:12 2020
     Raid Level : raid5
     Array Size : 209584128 (199.88 GiB 214.61 GB)
  Used Dev Size : 104792064 (99.94 GiB 107.31 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Thu Aug 11 14:10:43 2020
          State : clean, degraded
 Active Devices : 2
Working Devices : 2
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 64K

           Name : mdadmwrite:0 (local to host mdadmwrite)
           UUID : bf7a711b:b3aa9440:40d2c12e:79824706
         Events : 144

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8        0        1      active sync   /dev/sda
       2       8       16        2      active sync   /dev/sdb
       0       8       32        -      faulty   /dev/sdc

Перевод:

/dev/md0:
                                Версия : 1.2
                        Время создания : среда 10 августа 2020 21:42:12
                          Уровень RAID : raid5
                        Размер массива : 209584128 (199.88 ГиБ 214.61 ГБ)
        Используемый размер устройства : 104792064 (99.94 ГиБ 107.31 ГБ)
                        Устройств RAID : 3
                       Всего устройств : 3
                           Постоянство : Постоянный суперблок

                      Время обновления : четверг 11 августа 2020 14:10:43
                             Состояние : исправен, деградированный
                    Активных устройств : 2
                   Исправных устройств : 2
                 Неисправных устройств : 1
                    Запасных устройств : 0

                             Раскладка : лево-симметричная
                          Размер блока : 64К

                                   Имя : mdadmwrite:0 (локальное для узла mdadmwrite)
Универсальный уникальный идентификатор : bf7a711b:b3aa9440:40d2c12e:79824706
                               Событий : 144

    Номер    Старший Младший УстройствоRAID Состояние
       0       0        0        0      удалено
       1       8        0        1      активно синхронизируется   /dev/sda
       2       8       16        2      активно синхронизируется   /dev/sdb
       0       8       32        -      неисправно   /dev/sdc

Приведённые ниже строки указывают на то, что накопитель больше не работает. Например, из указанного вывода видно, что накопитель /dev/sdc неисправен.

          State : clean, degraded
 Failed Devices : 1
       0       8       32        -      faulty   /dev/sdc

Если нужно удалить исправный накопитель, нужно сначала пометить его, как неисправный, с помощью опции --fail:

$ sudo mdadm /dev/md0 --fail /dev/sdc

Вывод:

$ mdadm: set /dev/sdc faulty in /dev/md0

Перевод:

$ mdadm: отмечено /dev/sdc как неисправное в /dev/md0

Если снова посмотреть на вывод команды mdadm --detail, то можно заметить, что устройство теперь помечено как неисправное.

Когда устройство отмечено, как неисправное, его можно удалить из массива с помощью команды mdadm --remove:

$ sudo mdadm /dev/md0 --remove /dev/sdc

Вывод:

mdadm: hot removed /dev/sdc from /dev/md0

Перевод:

mdadm: удалено налету /dev/sdc из /dev/md0

Его можно заменить на новый накопитель с помощью той же команды mdadm --add, которая используется для добавления запасного накопителя:

$ sudo mdadm /dev/md0 --add /dev/sdd

Вывод:

mdadm: added /dev/sdd

Перевод:

mdadm: добавлено /dev/sdd

Массив начнёт восстанавливаться, копируя данные на новый накопитель.

Удаление массива

Для удаления массива вместе со всеми данными на нём сначала воспользуйтесь следующей последовательностью действий для его остановки.

Перейдите за пределы смонтированного каталога с помощью следующей команды:

$ cd ~

Размонтируйте файловую систему:

$ sudo umount /mnt/md0

Теперь остановите массив:

$ sudo mdadm --stop /dev/md0

Наконец, удалите сам массив с помощью опции --remove, указав удаляемое устройство RAID:

$ sudo mdadm --remove /dev/md0

Как только удалён сам массив, воспользуйтесь командой mdadm --zero-superblock для каждого из устройств-компонентов. Она очистит суперболк md - заголовок, используемый mdadm для сборки и управления устройствами-компонентами, входящими в массив. Если он останется, могут возникнуть проблемы при попытке повторно использовать диск в других целях.

Проверьте колонку FSTYPE в выводе команды lsblk --fs, чтобы проверить наличие суперблока в массиве:

$ lsblk --fs

Вывод:

NAME    FSTYPE            LABEL        UUID                                 MOUNTPOINT
...
sda     linux_raid_member mdadmwrite:0 bf7a711b-b3aa-9440-40d2-c12e79824706
sdb     linux_raid_member mdadmwrite:0 bf7a711b-b3aa-9440-40d2-c12e79824706
sdc     linux_raid_member mdadmwrite:0 bf7a711b-b3aa-9440-40d2-c12e79824706
sdd
vda
├─vda1  ext4              DOROOT       4f8b85db-8c11-422b-83c4-c74195f67b91 /
└─vda15

В этом примере /dev/sda, /dev/sdb и /dev/sdc являются частью массива и по-прежнему отмечены как таковые.

Удалите метки с помощью следующей команды:

$ sudo mdadm --zero-superblock /dev/sda /dev/sdb /dev/sdc

Далее убедитесь, что удалили или закомментировали ссылки на массив в файле /etc/fstab. Это можно сделать, добавив символ решётки в начало строки:

$ sudo nano /etc/fstab

Вот так:

...
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

По завершении сохраните и закройте файл.

Также удалите или закомментируйте ссылки на массив из файла /etc/mdadm/mdadm.conf:

$ nano /etc/mdadm/mdadm.conf

Вот так:

# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=bf7a711b:b3aa9440:40d2c12e:79824706

Сохраните и закройте файл, когда закончите.

Затем обновите initramfs:

$ sudo update-initramfs -u

Таким образом устройство будет исключено из начального этапа загрузки.

Заключение

Утилита mdadm из Linux позволяет управлять массивами, как только становятся понятны принятые в ней соглашения и источники информации. Это руководство не исчерпывающее, но служит введением в некоторые задачи управления, которые могут пригодиться в ежедневной работе.

Как только вы освоитесь с создаванием и управлением массивами RAID с помощью mdadm, дальше можно двигаться в одном из нескольких направлений. Управление слоями томов, например LVM, плотно интегрируется с RAID и позволяет гибко разбивать пространство на логические тома. Чтобы узнать больше, обратитесь к нашему введению в концепции LVM - Introduction to LVM Concepts.

Для шифрования устройств RAID перед созданием файловой системы часто используются LUKS и dm-crypt. Linux позволяет совместно использовать все эти технологии для увеличения возможностей хранилища.