Перейти к основному содержанию

mdadm — конвертация RAID1 в RAID10

Linux

У меня есть сервер с двумя дисками, собранными с помощью mdadm в RAID1. В какой-то момент времени места стало не хватать и были куплены ещё два диска, чтобы расширить массив в виде RAID10.

Забавно, но mdadm не позволяет просто сконвертировать RAID1 в RAID10. Но если пойти непростым путём, то сделать это можно. Идея простая. Конвертируем в два этапа: RAID1 → RAID0 → RAID10. Всё на лету.

Настоятельно не рекомендую этот способ на боевых системах по двум причинам:

  1. RAID10 у меня потом рассыпался через неделю. Это, возможно, из-за того, что первоначальный массив был собран в RAID1 с помощью программного RAID-контроллера PERC S140. А может и просто такая конвертация содержит логические ошибки. Или случайность.
  2. Chunk Size у RAID0 равен 8K, после конвертации в RAID10 значение останется таким же, что нежелательно для больших массивов.

Лучше всё разобрать и создать RAID10 с нуля. Это, конечно, потребует простоя сервиса, резервного копирования и восстановления данных.

Итак, мы имеем массив /dev/md127. Посмотрим детали:

mdadm --detail /dev/md127

raid

Уровень массива RAID1. В массиве два диска:

  • /dev/nvme2n1
  • /dev/nvme3n1

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

  • /dev/nvme0n1
  • /dev/nvme1n1

Конвертируем массив в RAID0:

mdadm --grow /dev/md127 --level=0 --raid-devices=2

mdadm

mdadm: level of /dev/md127 changed to raid0

Посмотрим детали:

mdadm --detail /dev/md127

mdadm

Несмотря на опцию --raid-devices=2 в массиве остался только один диск. Это ожидаемо, потому как превратить RAID1 в RAID0 можно просто откинув один диск, что мы и видим в результате. У нас и получился RAID0 из одного диска /dev/nvme2n1.

Конвертируем массив в RAID10, добавляя недостающие три диска:

mdadm --grow /dev/md127 --level=10 --raid-devices=4 --add /dev/nvme3n1 /dev/nvme0n1 /dev/nvme1n1

mdadm

mdadm: level of /dev/md127 changed to raid10

Вторая надпись мне непонятна:

raid_disks for /dev/md127 set to 5

Почему пять-то? Непонятно. В любом случае, массив сконвертировался. Посмотрим детали:

mdadm --detail /dev/md127

mdadm

Уровень массива теперь RAID10, три диска были добавлены как SPARE, один из них перестраивается. Дожидаемся окончания процесса перестроения.

mdadm

Массив перестроился. Замечу, размер массива всё ещё такой же, как у RAID1. Пришло время его увеличить:

mdadm --grow /dev/md127 --level=10 --raid-devices=4
mdadm --detail /dev/md127

mdadm

Теперь SPARE дисков нет, идёт перестроение.

mdadm

После перестроения размер массива увеличился. Можно расширять файловую систему, но это уже мелочи.

Послесловие

Снова повторюсь, что через неделю массив рассыпался, стал тормозить и отображаться как RAID0, при этом один диск из массива выпал. Не знаю с чем это связано, с такой сложной конвертацией или с чем-то ещё, но на боевых системах больше так конвертировать массивы не буду.

Разобрал всё и снова собрал сразу как RAID10, работает.

Теги

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Реклама ИП «Скоромнов Дмитрий Анатольевич» ИНН 331403723315

 

Похожие материалы

Установка VMware Tools на Ubuntu

VMware Tools - бесплатный набор утилит для улучшения взаимодействия виртуальной машины и платформы VMware. В Интернете пишут про то, что от установки VMware Tools улучшается производительность виртуальной машины. В качестве примера указывают на то, что только в этом наборе утилит есть драйвера для сетевой карты vmxnet3. Не согласен, драйвера можно и отдельно поставить. В linux так и без этих драйверов сетевая карта работает нормально. А вот если у вас Windows Server - рекомендую vmxnet3, меньше глюков.

Создать символическую ссылку в linux

Содержит адрес нужного файла или директории в файловой системе. При клике открывается файл или директория, на которую ссылается ссылка. Если удалить файл, то ссылка останется, но будет указывать в никуда.

Теги