Debian.pro

Блог для пользователей и администраторов Debian


Debian, KVM, финальные статьи. Подготавливаем дисковую подсистему. RAID1, mdadm.

Тем, кто знает как сделать raid (нужного вам уровня) — просто не читайте дальше. Вам нужно создать отдельный md (то есть НЕ корень). Неотформатированный. Как сделаете — переходите к следующей статье.

Наша задача получить 3 raid’a (софтверных). Если у вас есть аппаратный — то 3 раздела-зеркала. А точнее:
1) 20 GB, ext3/4 = /
2) 1xRAM/2xRAM = swap
3) всё остальное пространство (в raid1) — неотформатированное, не смонтированное по умолчанию.

Если вы строите другой тип raid’a — вам всё равно нужно получить 3 перечисленных раздела. У меня в итоге получилось так:
1) /dev/md0 (/dev/sda1+/dev/sdb1) = 20 GB = ext4 = /
2) /dev/md1 (/dev/sda2+/dev/sdb2) = 16 GB = swap
3) /dev/md2 (/dev/sda3+/dev/sdb3) = всё остальное пространство. Не смонтировано.

/dev/md2 я создаю уже после установки системы. Соответственно у хетзнеров мы НЕ указываем последний раздел с размером «ALL». Только / и swap с фиксированными размерами.

Как сделать нужную схему из инсталлятора. История в картинках. Только я не хочу портить пост, поэтому рассматриваем вот эту страничку. На всякий случай чуть ниже — текстовая версия последовательности действий.

Manual -> Guided Partitioning -> Выбираем первый диск -> на вопрос "Create new emty partition table?" отвечаем Yes -> Выбираем второй диск -> на вопрос "Create new emty partition table?" отвечаем Yes -> Выбираем "FREE SPACE" первого диска -> Create a new partition -> 20 GB -> Continue -> Primary -> Beginning -> в меню нового раздела указываем пункты Use as: physical volume for RAID -> Done setting up the partition -> аналогично создаём на первом диске раздел на 16 GB (тоже physical volume for RAID) -> создаём точно такие же 2 раздела на 2м диске (тоже оба physical volume for RAID) -> все разделы должны быть Primary -> после того как создадим 4 нужных раздела жмем "Configure Software RAID" -> Yes -> Create MD device -> RAID1 -> number of active devices = 2 -> continue -> Number of spare devices = 0 -> continue -> Выбираем стрелочками и отмечаем пробелом разделы /dev/sda1 и /dev/sdb1 -> continue -> Create MD device -> RAID1 -> number of active devices = 2 -> continue -> Number of spare devices = 0 -> continue -> Выбираем стрелочками и отмечаем пробелом разделы /dev/sda2 и /dev/sdb2 -> continue -> Finish -> под строкой "RAID device #0" выбираем #1 на 20 GB и жмем enter -> Use as: ext3 или ext4, mount point: / (корень), -> Done settings up the partition -> под строкой "RAID device #1" выбираем #1 на 16 GB и жмем enter -> Use as: swap area -> Done settings up the partition.

В итоге у вас должно получиться что то вроде такого
Жмем Finish partitioning and write changes to disk и дальше ставим систему как обычно.

После установки создаём остальные разделы. Я это делаю при помощи cfdisk:
root@debian-kvm:~# cfdisk /dev/sda
(картинки на всякий случай)
Выбираем стрелочками вверх/вниз последний free space -> стрелками вправо/влево выбираем «New» -> жмем enter -> выбираем Primary -> Size in MB — тут жмем enter, по дефолту указано всё свободное пространство -> после создания нового раздела выбираем стрелками вправо/влево пункт Type -> жмем enter -> пишем тип файловой системы FD -> выбираем стрелочками Write -> enter -> пишем yes -> и потом жмем Q на клавиатуре.
Теперь:
root@debian-kvm:~# cfdisk /dev/sdb
И повторяем тоже самое для второго диска.

Теперь сервер нужно перезагрузить.
root@debian-kvm:~# reboot

Вывод команды:
root@debian-kvm:~# ls /dev | grep sd
должен быть таким:
sda
sda1
sda2
sda3
sdb
sdb1
sdb2
sdb3

Если он отличается — значит вы сделали что-то неправильно или забыли перезагрузиться. Ну или просто не следовали мануалу.

Теперь собственно то, ради чего все мы тут собрались. Создаём RAID1, на котором в будущем будут размещаться стораджи виртуалок:
root@debian-kvm:~# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
На всякие глупые вопросы отвечаем «yes»
В конце увидим: mdadm: array /dev/md2 started.

Теперь очень важный момент, который почему-то все забывают. Вводим команду:
root@debian-kvm:~# mdadm --detail --scan
В ответ мы увидим 3 строки, например:
ARRAY /dev/md/0 metadata=1.2 name=debian:0 UUID=3707e59d:465902ef:28eadbf4:cf3129de
ARRAY /dev/md/1 metadata=1.2 name=debian:1 UUID=37948449:85916381:e529e2d8:b9c45d6d
ARRAY /dev/md2 metadata=1.2 name=debian:2 UUID=cd4d5494:3efce117:99d48839:8b83bbd2

Так вот. Все эти строчки должны быть прописаны в файле /etc/mdadm/mdadm.conf. Обязательно. Иначе после перезагрузки один из raid’ов не поднимется.
Для проверки ребутаемся. И смотрим, что устройство /dev/md2 есть в системе.

Нам не нужно форматировать, монтировать или делать ещё какие то глупости с /dev/md2. Мы разместим на нем LVM.
Переходим к настройке LVM.


Комментарии (10):

  1. pozadi :

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

  2. Да, само собой умышленно так пишу.
    К тому же вдруг кому пригодится для установки на другие дистры.
    Ну а главная причина для меня делать так — я использую некоторые опции для RAID’a, которые инсталлятор не поддерживает. Тот же —assume-clean.

  3. DarkAGeS :

    у меня вопрос — в чем смысл размещения свопа на зеркалированном рейде?.. может лучше страйп или вообще без рейда — по одному разделу на винте?

  4. Если диск отвалится на ходу — не повылетают приложения, которые хранили что-то в свопе.

  5. О боги! Зачем же 3 рейда их двух-то дисков делать? Если вылетит один диск, деградируют сразу все три рэйда. Можно обойтись одним рэйдом с тремя разделами или с LVM поверх него.

  6. Ну деградируют сразу 3 рейда. И что страшного ?

  7. Тогда какой смысл их создавать? Хватит и одного. Лишний overhead и, возможно, замедленная работа диска. Рекомендуется, по возможности, отдавать рейдам целиком диск, а не разделы.

  8. Кем рекомендуется?

    Я эту присказку черт-те сколько слышу. Но никто её подтвердить тестами или ещё чем-то не может. А вот проблема с созданием рейдов из целых дисков (и дальнейшего нарезания их на разделы) во многих инсталляторах есть. А если делать lvm — то оверхед от него будет сильно больше, чем от отдельных рейдов.

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

  9. uvei :

    Мне вот интересно что за 1Mb в начале диска?
    Или какой мануал почитать можно, чтоб понять, откуда он берется

  10. Если вкратце — оно для выравнивая разделов по секторам для SSD или около того. Точнее, к сожалению, навскидку не помню, а гугл молчит.

Написать комментарий