Настройка RAID и разделов в Rescue Hetzner

    При аренде выделенного сервера в Hetzner вы можете столкнуться с ситуацией, когда система загружается в Rescue-режим, а стандартная разбивка дисков не устраивает. Особенно часто проблемы возникают с RAID-массивами и разделом подкачки (SWAP). В этой статье мы разберём, как вручную создать партиции и RAID-массивы через Rescue, а затем установить на них операционную систему.

    Почему стандартная разбивка не подходит?

    По умолчанию утилита installimage создаёт все разделы в RAID1, включая SWAP. Это приводит к неэффективному использованию дискового пространства, так как SWAP в зеркале избыточен. Кроме того, после установки изменить разметку сложно - попытки пересобрать SWAP-массив часто заканчиваются тем, что сервер перестаёт загружаться. Выход - использовать Rescue-режим для ручного создания нужной конфигурации.

    Пошаговая инструкция: создание RAID и разделов в Rescue Hetzner

    1. Загрузка в Rescue-режим

    Войдите в панель управления Hetzner Robot, выберите сервер и активируйте Rescue-режим. После перезагрузки подключитесь по SSH к Rescue-системе. Вы увидите командную строку с правами root.

    2. Очистка дисков

    Перед созданием новых массивов необходимо очистить старую разметку. Выполните для каждого диска (например, /dev/sda и /dev/sdb):

    wipefs -a /dev/sda
    wipefs -a /dev/sdb

    Это удалит все существующие таблицы разделов и метаданные RAID.

    3. Создание RAID-массивов

    Используйте утилиту mdadm для создания массивов. Пример конфигурации:

    • /dev/md0 - /boot, 1 ГБ, RAID1
    • /dev/md1 - /, 20 ГБ, RAID1
    • /dev/md2 - /var, 30 ГБ, RAID1
    • /dev/md3 - SWAP, 32 ГБ, RAID0 (без зеркала)
    • /dev/md4 - LVM, оставшееся место, RAID1

    Команды для создания:

    mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
    mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
    mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
    mdadm --create /dev/md3 --level=0 --raid-devices=2 /dev/sda4 /dev/sdb4
    mdadm --create /dev/md4 --level=1 --raid-devices=2 /dev/sda5 /dev/sdb5

    Важно: перед созданием массивов необходимо разбить диски на разделы с помощью fdisk или parted. Убедитесь, что номера разделов совпадают на обоих дисках.

    4. Создание файловых систем и LVM

    После создания массивов отформатируйте разделы:

    mkfs.ext4 /dev/md0
    mkfs.ext4 /dev/md1
    mkfs.ext4 /dev/md2
    mkswap /dev/md3

    Для /dev/md4 создайте физический том LVM, группу томов и логические тома:

    pvcreate /dev/md4
    vgcreate vg0 /dev/md4
    lvcreate -L 10G -n root_lv vg0
    lvcreate -L 5G -n var_lv vg0
    lvcreate -l 100%FREE -n home_lv vg0

    Отформатируйте логические тома: mkfs.ext4 /dev/vg0/root_lv и т.д.

    5. Монтирование разделов и установка системы

    Смонтируйте корневой раздел в /mnt, создайте каталоги /mnt/boot, /mnt/var и смонтируйте соответствующие разделы. Затем установите базовую систему с помощью debootstrap (для Debian) или pacstrap (для Arch). После установки настройте /etc/fstab, указав UUID массивов, и установите загрузчик GRUB на оба диска.

    FAQ: Часто задаваемые вопросы

    Как избежать ошибок при пересборке SWAP?

    Не пытайтесь пересобрать SWAP в установленной системе - это часто приводит к неработоспособности. Сразу создавайте SWAP-раздел в RAID0 через Rescue, как описано выше. После установки не забудьте добавить его в /etc/fstab и активировать командой swapon -a.

    Можно ли использовать installimage с кастомной конфигурацией RAID?

    Да, вы можете передать параметры разметки через файл конфигурации installimage. Укажите в нём свои размеры и уровни RAID для каждого раздела. Однако если нужна нестандартная конфигурация (например, SWAP на RAID0), проще сделать всё вручную.

    Что делать, если после перезагрузки сервер не поднимается?

    Проверьте корректность записей в /etc/fstab и правильность установки GRUB. Загрузитесь снова в Rescue, смонтируйте разделы и выполните grub-install /dev/sda и grub-install /dev/sdb. Убедитесь, что в /boot/grub/grub.cfg указаны правильные UUID массивов.

    Как проверить состояние RAID после установки?

    Используйте команду cat /proc/mdstat - она покажет статус всех массивов. Для детальной информации по каждому массиву выполните mdadm --detail /dev/md0. Убедитесь, что все диски активны и нет ошибок.

    Зачем делать SWAP на RAID0?

    SWAP не требует избыточности: если сервер перезагружается, содержимое SWAP теряется. RAID0 даёт прирост производительности и экономит место, так как не дублирует данные. Для критичных систем можно оставить SWAP на отдельном SSD без RAID.

    Часто задаваемые вопросы