Как сделать RAID-1 массив на Ubuntu

Иногда нужно просто взять два диска и сказать: «вы теперь зеркала». Вот так — без поэзии. Потому что безопасность данных важнее романтики, особенно если ты уже пару раз терял важное. Поэтому сегодня без пафоса — собираем RAID 1 на Ubuntu. Честно, это не так сложно, как кажется. Но нюансы есть, и не всё гладко, как в мануалах. Поэтому поехали по-человечески — шаг за шагом, с пояснениями, где надо.

Ubuntu
Ubuntu

Что такое RAID 1, если по-простому?

Это когда у тебя два (или больше) жёстких диска, и они содержат одну и ту же информацию. Один ломается — второй продолжает работать, как ни в чём не бывало. Это не про увеличение скорости, не про экономию, а про надёжность.

Работает это примерно как автосохранение в редакторе: ты что-то делаешь, а оно сохраняет. Только тут вместо Ctrl+S — второй диск.

Что нужно?

  • Два диска, лучше одинакового объема. Хотя можно и с разными, но тогда используется размер меньшего.
  • Ubuntu (желательно с обновлениями — это вообще всегда хороший тон).
  • Прямые руки и немного времени.

Шаг 1. Установка mdadm

Без этой утилиты вся магия не работает. Поэтому сначала ставим её:

sudo apt-get install mdadm

Во время установки может вылезти что-то про postfix — не пугайтесь, просто выберите «без настройки», если не знаете, зачем это нужно.

Шаг 2. Проверяем, что у нас есть

Нужно увидеть список дисков, чтобы понимать, с чем вообще работаем:

sudo fdisk -l

Допустим, у вас есть два диска — /dev/sdb и /dev/sdc. Создайте на них разделы (если их ещё нет) с помощью fdisk или parted. Можно и вручную, но тут не будем в дебри лезть.

И вот теперь — пора собирать зеркала.

Шаг 3. Создание массива RAID 1

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Что тут происходит?

  • --create — мы создаём новый массив.
  • /dev/md0 — это его имя, можно любое, но по привычке md0.
  • --level=1 — зеркалирование.
  • --raid-devices=2 — два устройства.
  • /dev/sdb1 /dev/sdc1 — собственно, сами разделы.

Если всё прошло успешно — появится сообщение вроде:

mdadm: array /dev/md0 started.

Шаг 4. Смотрим, как идёт синхронизация

cat /proc/mdstat

Там будет что-то типа:

[==>...............] resync = 10.3% (540416/5237056)

Это значит, что диски ещё «договариваются» между собой. Подождите — это важный момент.

Шаг 5. Форматируем массив

Когда синхронизация закончится, пора создавать файловую систему:

sudo mkfs.ext4 /dev/md0

Теперь это полноценный диск. Только зеркальный.

Шаг 6. Автосборка после перезагрузки

Чтобы всё не улетело в никуда после ребута, надо чуть-чуть дописать конфиги.

Сначала создаём (или обновляем) конфигурацию:

echo "DEVICE partitions" | sudo tee /etc/mdadm/mdadm.conf

sudo mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' | sudo tee -a /etc/mdadm/mdadm.conf

Если хочется — можно вручную, просто скопируйте вывод mdadm --detail --scan --verbose и вставьте в /etc/mdadm/mdadm.conf.

Потом редактируем /etc/fstab, чтобы массив монтировался сам:

/dev/md0    /usr/data    ext4    defaults    1 2

Не забудьте создать папку /usr/data, если её ещё нет:

sudo mkdir -p /usr/data

Шаг 7. Перезагрузка и проверка

Теперь можно перезагрузиться и убедиться, что всё работает:

cat /proc/mdstat

Если видите [UU] — значит, оба диска в строю.

Шаг 8. Мониторинг (опционально, но желательно)

Чтобы не жить в неведении, добавьте в /etc/mdadm/mdadm.conf строчку:

MAILADDR ваш@адрес.ru

И поставьте хоть какой-нибудь почтовик. Например, sendmail:

sudo apt-get install sendmail

Теперь при сбоях RAID пришлёт вам письмо. Если, конечно, у вас не стоит SPF/DKIM-ад, и почта вообще работает. Но это уже другая история.

Итог

RAID 1 — не панацея, но надёжный способ защитить себя от банального «ой, диск умер». Делается за час, а спасает иногда всё. Главное — не забыть, что это не бэкап. Это просто зеркало. Для настоящей безопасности — делайте ещё и резервные копии. Но хотя бы так вы уже не потеряете всё сразу.

И да, в реальности всегда всплывают мелочи. Файловые конфликты, несовпадающие UUID, проблемы с GRUB. Но основа — вот она. Живи RAID, пока тебя не заменит ZFS.

Nazario

Я — Nazario, тот самый человек, который больше десяти лет ковыряется в Linux и Windows системах не ради хобби, а потому что это — работа и жизнь. Всё, что вы читаете на Setiwik.ru, — это не пересказ справки из мануала, а результат десятков реальных кейсов, выстраданных конфигов и ночных перезагрузок.

Я не претендую на истину в последней инстанции. Но если мой опыт может кому-то упростить работу — значит, всё это не зря. Здесь нет «магии», только практика: от настроек сервера до неожиданных багов, которые не гуглятся с первого раза.

Setiwik.ru — это место, где IT становится чуть менее хаотичным. Заходите почаще — будем разбираться вместе.

Добавить комментарий