# Практическая работа. Реализация управления логическими томами. **Цель работы** * изучить принципы работы утилиты lvm2 **Немного теории** LVM (Logical Volume Manager) – подсистема операционных систем Linux, позволяющая использовать разные области физического жесткого диска или разных жестких дисков как один логический том. Главные преимущества LVM – высокий уровень абстракции от физических дисков, гибкость и масштабируемость. Вы можете на лету изменять размер логического тома, добавлять (и удалять) новые диски. ![](https://i.imgur.com/nThXIkL.png) **Уровни дисковых абстракций LVM** Physical Volume (PV) – физический уровень. Физические диски инициализируются для использования в LVM. Volume Group (VG) – уровень группы томов. Инициализированные диски объединяются в логические группы с именем. Logical Volume (LV) — создается логический том на группе томов, на котором размещается файловая система и данные. --- ## I. Создание LVM разделов #### 1.1 Установка утилиты lvm2. `sudo apt-get install lvm2` ![](https://i.imgur.com/t4OnNDI.png) > Перед установкой следует обновить репозитории пакетного менеджера последовательным выполнением команд `sudo apt update` и `sudo apt upgrade`. #### 1.2 Проверка подключения двух дополнительных дисков и их доступности в системе. `sudo fdisk -l` ![](https://i.imgur.com/bVnI5Qa.png) > Команда `fdisk` с опцией `-l` выводит таблицу разделов устройств, указанных в файле `/proc/partitions`. #### 1.3 Инициализация дисков утилитой `pvcreate` для дальнейшего использования LVM. `sudo pvcreate /dev/sdb /dev/sdc` ![](https://i.imgur.com/fLttDHd.png) > Команда `pvcreate` позволяет "отметить" том как физический диск/раздел, который может быть включенным в Volume Group. Синтаксис команды представляет собой перебор разделов диска, которые должны быть включены в будущую группу томов (VG). Пример команды: `sudo pvcreate /dev/sdb1` `sudo pvcreate /dev/sdb1 /dev/sdb2` `sudo pvcreate /dev/sdb{1,2}` #### 1.4 Проверка, что данные диски могут использоваться LVM с помощью команды `pvdisplay`. `sudo pvdisplay` ![](https://i.imgur.com/6rrNLB8.png) > Команда `pvdisplay` выводит подробную информацию о физических томах: название, принадлежность к группе томов, размер, фиксированный размер блока данных (PE), их количество и UUID физического тома. #### 1.5 Создание группы томов через объединение ранее помеченных дисков через команду `vgcreate` `sudo vgcreate test /dev/sdb /dev/sdc` ![](https://i.imgur.com/MDZfb8t.png) > Команда `vgcreate` создает группу томов из существующих физических. Синтаксис: `vgcreate название_группы_томов том1 том2` Пример команды: `sudo vgcreate test /dev/sdb /dev/sdc /dev/sdd` `sudo vgcreate test /dev/sd{b,c,d}` #### 1.6 Проверка результата командой `vgdisplay` `sudo vgdisplay` ![](https://i.imgur.com/ULIxcLx.png) > Команда `vgdisplay` подобно `pvdisplay` выводит информацию, только не о физических томах, а об их объединениях в виде групп томов (VG). #### 1.7 Создание логичесого тома определенного размера. `sudo lvcreate -L 4G test` ![](https://i.imgur.com/Vp8xnio.png) > Команда `lvcreate` создает логический том, а благодаря указанным аргументам `-L 4G test` создаваемый логический том будет указанного размера (4 GiB) и на основе группы томов `test`. Полный синтаксис команды выглядит следующим образом `lvcreate [опции] <имя группы томов>`. Помимо размера тома можно дополнительно указать и другие параметры: -L - размер создаваемого тома (дефолтно, в байтах, но можно указать единицу измерения - k,K,m,M,g,G,t,T,p,P) -n - имя для нового логического тома (дефолтно, lvol#, где # - номер LV) -s - создать снапшот для использования логического раздела в качестве бэкапа #### 1.8 Вывод информации о логических томах. `sudo lvdisplay` ![](https://i.imgur.com/ZoIFJlx.png) > Команда `lvdisplay` подобно `pvdisplay` выводит информацию, только не о физических томах, а о логических (LV). --- ## II. Создание файловой системы и монтирование логического тома LVM #### 2.1 Создание файловой системы на логическом томе. `sudo mkfs.ext4 /dev/test/lvol0` ![](https://i.imgur.com/JlzszQn.png) > Команда `mkfs.ext4` определяет тип файловой системы, которая будет использована на логическом томе. #### 2.2 Создание тестовой директории и монтирование к ней логического тома. `sudo mkdir /var/alku` `sudo mount /dev/test/lvol0 /var/alku` ![](https://i.imgur.com/23QLQAT.png) > Команда `mkdir` создает директорию '/alku', а команда `mount` монтирует логический том к разделу на основном диске. #### 2.3 Добавление монтирования логического тома в процесс загрузки системы. `sudo nano /etc/fstab` `/dev/test/lvol0 /var/alku ext4 defaults 1 2` ![](https://i.imgur.com/oBT2DXc.png) #### 2.4 Проверка монтирования логического тома. `sudo mount -a` `df -h` ![](https://i.imgur.com/wfaoxwU.png) > Команда `mount` с опцией `-a` пытается примонтировать все файловые системы, указанные в файле/etc/fstab. Команда `df` с опцией `-h` выводит информацию об используемом пространстве на файловых системах. #### 2.5 Просмотр общей информации по дискам и томам. `sudo lsblk` ![](https://i.imgur.com/JXyG3dF.png) > Команда `lsblk` выводит информацию о дисках и созданных на них разделах, их размерах, точке монтирования. --- ## III. Увеличение логического тома LVM #### 3.1 Инициализация диска для LVM. `sudo pvcreate /dev/sdd` ![](https://i.imgur.com/lGqo7Lj.png) #### 3.2 Добавление диска в группу томов. `sudo vgextend test /dev/sdd` ![](https://i.imgur.com/jwGDwkX.png) > Команда `vgextend` позволяет добавить в существующую группу томов дополнительные физические тома. #### 3.3 Расширение раздела до 8 ГиБ. `sudo lvextend -L8G /dev/test/lvol0` ![](https://i.imgur.com/uRQ74cp.png) > Команда `lvextend` позволяет расширить логический том до определенных размеров. Основные флаги, используемые для указания размера итогового логического тома: -L.. - увеличение размера тома до указанного числа (если единицы измерения не указаны, то это MiB) -L+.. - увеличение размера тома на указанное число (если единицы измерения не указаны, то это MiB) #### 3.4 Просмотр изменившейся информации о логическом томе. `sudo lvdisplay` ![](https://i.imgur.com/Pf5NiI6.png) #### 3.5 Увеличение размера файловой системы логического тома. `sudo resize2fs /dev/test/lvol0` > Команда `resize2fs` позволяет увеличить размер файловой системы. ![](https://i.imgur.com/BYGD22z.png) --- ## IV. Уменьшение логического тома LVM #### 4.1 Отмонтирование тома. `sudo umount /var/alku` ![](https://i.imgur.com/ga9JNlC.png) > Команда `umount` снимает точку монтирования с директории 'alku', тем самым разделив файловую систему основного диска от логического тома. #### 4.2 Проверка диска. `sudo e2fsck -fy /dev/test/lvol0` > Команда `e2fsck` проверяет файловую систему на логическом диске. Синтаксис `e2fsck [опции] устройство`. Основные ключи, используемые для проверки системы: -p - автоматическое восстановление файловой системы -f - проверка системы, даже если она "пустая" -y - отключение интерактивного режима работы программы ![](https://i.imgur.com/kS5bnio.png) #### 4.3 Уменьшение файловой системы на 4 ГиБ. `sudo resize2fs /dev/test/lvol0 4G` ![](https://i.imgur.com/hlvgQYO.png) > Команда `resize2fs` сжимает размер файловой системы на указанный объем памяти. #### 4.4 Уменьшение логического тома на 4 ГиБ. `sudo lvreduce -L-4G /dev/test/lvol0` ![](https://i.imgur.com/gPdSBVX.png) > Команда `lvreduce` позволяет сжать логический том до определенных размеров. #### 4.5 Вывод информации о логических томах. `sudo lvdisplay` ![](https://i.imgur.com/5kBirlO.png) #### 4.6 Монтирование логического тома к исходной файловой системе. `sudo mount -a` ![](https://i.imgur.com/Q1HlBqm.png) #### 4.7 Проверка текущего состояния томов. `df -h` ![](https://i.imgur.com/sf1H3Yn.png) ## V. Удаление LVM групп и томов #### 5.1 Отмонтирование тома. `sudo umount /var/alku` ![](https://i.imgur.com/q9xUeOe.png) #### 5.2 Удаление логического тома. `sudo lvremove /dev/test/lvol0` ![](https://i.imgur.com/B4GpCNz.png) > Команда `lvremove` удаляет логические тома. #### 5.3 Удаление группы логических томов. `sudo lgremove test` ![](https://i.imgur.com/BpQoJev.png) > Команда `lgremove` удаляет группу томов. #### 5.4 Снятие меток LVM с дисков. `sudo pvremove /dev/sdb /dev/sdc /dev/sdd` > Команда `pvremove` снимает метки PV с томов. ![](https://i.imgur.com/FXxxf5T.png) *P.s: не забыть очистить внесенные изменения в /etc/fstab*