понедельник, 9 апреля 2018 г.

RHCSA Lab / Создание LVM партиции

Очередная шутейка за 300...
В прошлом посте писал, что собираюсь описать только подготовку окружения, сама RHCSA лаба довольно скучна и ничего особо интересного из себя не представляет. Возможно, буду публиковать заметки по каким-то отдельным темам, как уже сделал с permission management.

Итак, у меня есть свежий CentOS сервер, который имеет следующие параметры
  • GUI ( да-да, я в курсе, что это не канон)
  • 30Gb жесткий диск разбитый на 
    • 1Gb SWAP 
    • 10Gb подмонтировано в корень
    • 500Mb /boot
В общем-то, я изначально разбивал диск не очень удобно, так что теперь придется его немного "переразбить". Сегодня займемся новой партицией, которая по задумке, будет выполнять роль репозитория и директории для автоустановки новых серверов.
Итак, по плану у нас

1. Create the new partition for autoinstall
    a. Create the new 5Gb LVM partition
    b. Create new PV - LV
    c. Make an ext4 filesystem
    d. Test mount to /dvd
    e. Configure mount via fstab
    f. Verify mount after reboot
   
Начнем с просмотра того, что у нас есть. Fstab показывает, что у нас есть диск на 30Гб. Мы используем старый добрый MBR вместо прогрессивного GPT. Часть диска отведена под boot директорию. Далее замечаем, что мы имеем LVM. Заметьте также, что конец этого раздела не совпадает с концом диска, значит у нас еще есть место. Чуть ниже видим 10 "гиговую" root партицию и swap на 1Гб.


Такую же картину дает lsblk и lvm команды. Вывод команды lsblk в целом поудобнее.



Касаемо pv, vg и lv. Это основные структурные блоки LVM. На картинке выше видно
  • Один Physical Volume (PV) на 10Гб
  • Одна Virtual Group (VG) с названием centos, созданная поверх Physical Volume
  • Две Logical Volume (LV) (root на 9Гб и swap на 1Гб), которые накручены поверх Logical Group.
По началу, мне все это очень не нравилось, но потом я понял силу такой абстракции. Помимо дополнительных фишек LVM есть одна основная, которая позволяет очень гибко добавлять место к группам, перераспределять свободное место, добавлять физические диски и прочее такое. Например, для расширения партиции, можно просто добавить новый диск и из его части сделать PV. На этом PV развернуть VG, который потом просто добавить к LV. В следующий раз я собираюсь провернуть это с root.

fdisk

Наша цель - сделать новую партицию. Здесь нам поможет старый добрый fdisk. 
  1. Натравливаем его на нужный диск /dev/sda. 
  2. Создаем (n) новую партицию.
  3. Делаем её primary
  4. Даем ей третий номер. 
  5. Указываем, что мы хотим добавить 5Гб от точки начала партиции.
  6. Далее нужно указать, что будущая партиция будет иметь LVM (тип 8e).  
  7. Проверяем (p), что все хорошо, находим новую партицию sda3.
  8. Пишем изменения на диск (w). 
Далее, получаем типичную ошибку о занятости диска. Нужен ребут. 


partprobe

Но, перед тем как уходить в перезагрузку, давайте проверим что про новую партицию знает ядро. Смотрим в файл /proc/partitions и видим, вернее не видим там sda3. Дело в том, что после получения ошибки о занятости диска fstab закончил работать и не записал данные в ядро. Придется сделать это руками с помощью partprobe. Проверяем, теперь все в порядке.


vgcreate/lvcreate/mkfs

После ребута приступаем к созданию всего LVM бутерброда. Создаем новую логическую группу и включаем в неё всю sda3 партицию. Далее, поверх группы создаем логический диск на  100% от группы (читай от партиции sda3). Форматируем в ext4.


Я не могу запомнить эти команды... Поэтому я запомнил где найти их в мане. )

Теперь наша новая партиция видна в системе, но никуда не примонтирована.


fstab

Создаем директорию /dvd и добавляем одну строчку в fstab. Пробуем подмонтировать все что находится в fstab командой mount -a. После чего, новый раздел появляется в системе.


К слову, я тут думал, а зачем использовать fstab, если сейчас везде используется великий и ужасны systemd. Можно же монтировать через него, выглядит это довольно неплохо, к слову. Создаешь unit-файл, описываешь в нем что и куда и добавляешь в автозагрузку. Пошел к коллегам "юниксоидам", которые открыли мне страшную тайну.

Systemd парсит fsatab и создает юниты для монтирования (.mount) и автомонтировнания партиций (.automount). Так что, даже когда вы думаете, что монтируете по-старинке через fstab это не совсем правда. )

На картинке ниже те самые unit-файлы, которые были созданы для моей строчки в fstab. Помимо них, видны и другие юниты, например, -.mount, который монтирует корень.


Но, в мануале по systemd.mount четко написано, что монтировать все еще стоит через fstab.

Комментариев нет:

Отправить комментарий