Использование lvm в LInux

Конспект в доработке

    Общие сведения

    Logical Volume Manager (LVM) - система управления томами, позволяет создавать поверх физических разделов (или даже неразбитых винчестеров) логические тома, которые в самой системе будут видны как обычные разделы
    Одну группу логических томов можно создавать поверх любого количества физических разделов
    Размер логических томов можно легко менять прямо во время работы
    LVM поддерживает механизм снапшотов, копирование разделов «на лету» и зеркалирование, подобное RAID-1


    LVM работает на 3-х уровнях абстракции:
    PV - физический уровень (pvcreate)
    VG - группа томов (vgcreate)
    LV - логический том (lvcreate)

    #Установка необходимых пакетов apk add lvm2 #Покажет все команды lvm
    Создание физических томов

    LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/разделов должен быть создан физический том (physical volume).
    При попытке создать физический том на базе смонтированного раздела, команда pvcreate вернет ошибку: "Cannot use /dev/sda3: device has a signature"

    #Используем для lvm диск и раздел #Помечаем диск localhost:~# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. localhost:~# localhost:~# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created. #Просмотр информации о физическом томе pvdisplay pvdisplay --- Physical volume --- PV Name /dev/sdb VG Name vg1 PV Size 5.00 GiB / not usable 32.00 MiB Allocatable yes (but full) PE Size 32.00 MiB Total PE 159 Free PE 0 Allocated PE 159 PV UUID 70GuUd-uWOb-ym2I-yBU4-Wd1h-7gVa-0raN9M ... ..

    PV Name — имя диска
    VG Name — группа томов, в которую входит данный диск
    PV Size — размер диска
    Allocatable — распределение по группам. Если NO, то диск еще не задействован
    PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0. Total PE — количество физических экстентов
    Free PE — количество свободных физических экстентов
    Allocated PE — распределенные экстенты
    PV UUID — идентификатор физического раздела


    Объединение в группы

    #На базе этих физических томах создаем группу томов, которая будет называться vg1 localhost:~# vgcreate -s 32M vg1 /dev/sdb /dev/sdc1 Volume group "vg1" successfully created #Просмотр информации о группе томов vgdisplay vg1 --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size <9.94 GiB PE Size 32.00 MiB Total PE 318 Alloc PE / Size 0 / 0 Free PE / Size 318 / <9.94 GiB VG UUID npDFo5-f9yH-ve96-TacO-naG8-3pHF-eTpI69

    опция -s в команде vgcreate задает PE Size
    PE Size в LVM (Logical Volume Manager) — это размер физического экстента (Physical Extent), то есть небольшого блока, на который LVM делит физическое пространство внутри группы томов (Volume Group)
    Экстент (от англ. extent — «протяжённость») — это непрерывная область носителя информации (диска, памяти), выделенная для хранения данных.


    VG Name — имя группы
    Format — версия системы используемая для создания группы
    Metadata Areas — область размещения метаданных. Увеличивается на единицу после создания каждой группы
    VG Access — права доступа к группе томов
    VG Size — суммарный объем всех дисков входящих в группу
    PE Size — размер физического фрагмента (экстента)
    Total PE — количество физических экстентов
    Alloc PE / Size — распределенное пространство: колическтво экстентов / объем
    Free PE / Size — свободное пространство: колическтво экстентов / объем
    VG UUID — идентификатор группы

    Теперь в группе томов можно создать логические тома lv1 и lv2

    Создание логических томов

    При попытке создать том больше допустимого размера, получим ошибку:
    Volume group "vg1" has insufficient free space (158 extents): 192 required

    #создание логического раздела из группы томов #Создать логические тома lvcreate -n lv1 -L 5G vg1 Logical volume "lv1" created. lvcreate -n lv2 -L 4G vg1 Logical volume "lv2" created. #В выводе lsblk видно, что логический раздел lv1 хранится на диске sdb и на sdc1 localhost:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 100G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 4G 0 part [SWAP] └─sda3 8:3 0 95.7G 0 part / sdb 8:16 0 5G 0 disk └─vg1-lv1 253:0 0 5G 0 lvm sdc 8:32 0 5G 0 disk └─sdc1 8:33 0 5G 0 part ├─vg1-lv1 253:0 0 5G 0 lvm └─vg1-lv2 253:1 0 4G 0 lvm sdd 8:48 0 5G 0 disk sr0 11:0 1 1024M 1 rom

    Были созданы блочные устройства /dev/vg1/lv1 и /dev/vg1/lv2

    localhost:~# ls /dev/vg1/lv* /dev/vg1/lv1 /dev/vg1/lv2 #Просмотр информации о логическом томе localhost:~# lvdisplay --- Logical volume --- LV Path /dev/vg1/lv1 LV Name lv1 VG Name vg1 LV UUID 7bmL4k-H0WC-AsrA-ngM6-OwNo-2rzD-2y0foS LV Write Access read/write LV Creation host, time localhost, 2026-08-09 17:08:16 +0300 LV Status NOT available LV Size 5.00 GiB Current LE 160 Segments 2 Allocation inherit Read ahead sectors auto ... ..

    LV Path — путь к устройству логического тома
    LV Name — имя логического тома
    VG Name — имя группы томов
    LV UUID — идентификатор
    LV Write Access — права доступа
    LV Creation host, time — имя компьютера, дата создания тома
    LV Size — объем дискового пространства, доступный для использования
    Current LE — количество логических экстентов


    Создание файловой системы и монтирование тома

    Осталось создать на них файловую систему, как если бы это были обычные разделы

    localhost:~# mkfs.ext4 /dev/vg1/lv1 mke2fs 1.47.3 (8-Jul-2025) Creating filesystem with 1310720 4k blocks and 327680 inodes Filesystem UUID: 91bd4860-d82c-47ac-88bd-f4feb861c768 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done localhost:~# mkfs.ext4 /dev/vg1/lv2 ... .. #Монтирование mount /dev/vg1/lv2 /mnt
    Добавление физических томов

    Чтобы добавить новый диск или раздел в группу томов, необходимо создать на его основе физический том и добавить в него существующую группу томов

    #Создать физический том localhost:~# pvcreate /dev/sdd Physical volume "/dev/sdd" successfully created #Добавить группу в физический том localhost:~# vgextend vg1 /dev/sdd Volume group "vg1" successfully extended
    Удаление физических томов

    Для удаления логических томов или групп томов, необхдимо отмонтировать разделы, затем удалить логические тома, после этого можно удалить группы томов


    Прежде чем удалить диск из группы товом, необходимо перенести с него данные на другие диски
    После удаления из LVM для дальнейшего использования диск следует переформатировать и переразбить

    localhost:~# pvmove /dev/sdd No data to move for vg1. #удалим его из группы томов: localhost:~# vgreduce vg1 /dev/sdd Removed "/dev/sdd" from volume group "vg1" #Удалить физический том localhost:~# pvremove /dev/sdd Labels on physical volume "/dev/sdd" successfully wiped.
    Изменение размеров

    Физический или виртуальный раздел увеличивается путем добавления физических дисков или виртуального пространства


    LVM позволяет легко изменять размер логических томов. Для этого нужно сначала изменить сам логический том
    Изменять размер физического тома чаще всего не требуется. Правильнее и безопаснее удалить физический том, изменить размер раздела и создать том заново

    #Если увеличиваем существующий физический том в lvm, тогда используется команда: pvresize /dev/sda #Если необходимо создать новый физический том, тогда: #Создаем физический том #Или по другому, инициализируем новый диск localhost:~# pvcreate /dev/sdd Physical volume "/dev/sdd" successfully created.
    Добавление нового диска в группу томов
    #Добавляем диск в группу томов #Или по другому расширяем группу томов localhost:~# vgextend vg1 /dev/sdd Volume group "vg1" successfully extended #Увеличиваем логический том за счет доступного пространства на диске /dev/sdd localhost:~# lvresize -L 5G vg1/lv2 Size of logical volume vg1/lv2 changed from 4.00 GiB (128 extents) to 5.00 GiB (160 extents). Logical volume vg1/lv2 successfully resized. #Тоже самое можно сделать с помощью команды lvextend #выделяем все свободное пространство группы томов vg1 разделу lv2 lvextend -l +100%FREE /dev/vg1/lv2 #определенный объем: lvextend -L+30G /dev/vg1/lv2 #до нужного объема: lvextend -L300G /dev/vg1/lv2

    Команды lvextend и lvresize используются в системе LVM (Logical Volume Manager) для изменения размера логических томов (Logical Volume, LV), но между ними есть важные различия в функциональности. lvextend только увеличивает, lvresize поддерживает как увеличение, так и уменьшение размера LV

    #Проверяем результат localhost:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 100G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 4G 0 part [SWAP] └─sda3 8:3 0 95.7G 0 part / sdb 8:16 0 5G 0 disk └─vg1-lv1 253:0 0 5G 0 lvm sdc 8:32 0 5G 0 disk └─sdc1 8:33 0 5G 0 part ├─vg1-lv1 253:0 0 5G 0 lvm └─vg1-lv2 253:1 0 5G 0 lvm sdd 8:48 0 5G 0 disk └─vg1-lv2 253:1 0 5G 0 lvm sr0 11:0 1 1024M 1 rom #Для файловой системы выполняем команду localhost:~# resize2fs /dev/vg1/lv2 resize2fs 1.47.3 (8-Jul-2025) Resizing the filesystem on /dev/vg1/lv2 to 1310720 (4k) blocks. The filesystem on /dev/vg1/lv2 is now 1310720 (4k) blocks long.
    Дополнительные команды

    vgscan — это команда в Linux, которая сканирует все диски в системе, чтобы обнаружить группы томов (Volume Groups, VG) в рамках подсистемы Logical Volume Manager (LVM). Проще говоря, она помогает понять, какие пулы дискового пространства (собранные из физических томов) LVM сейчас активны и где они находятся

    # localhost:~# vgscan Found volume group "vg1" using metadata type lvm2

    Команда vgdisplay — это инструмент в Linux для отображения подробной информации о группах томов (Volume Groups, VG) в системе Logical Volume Manager (LVM).

    localhost:~# sudo vgdisplay vg1 --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size <14.91 GiB PE Size 32.00 MiB Total PE 477 Alloc PE / Size 320 / 10.00 GiB Free PE / Size 157 / <4.91 GiB VG UUID npDFo5-f9yH-ve96-TacO-naG8-3pHF-eTpI69

    vgchange — это команда в Linux для управления группами томов (Volume Groups, VG) в рамках системы LVM (Logical Volume Manager). Её основная задача — активировать или деактивировать группы томов, а также изменять их атрибуты

    #Активация конкретной группы томов sudo vgchange -a y vg1 #Получить информацию о дисках для LVM:
    localhost:~# pvs PV VG Fmt Attr PSize PFree /dev/sdb vg1 lvm2 a-- <4.97g 0 /dev/sdc1 vg1 lvm2 a-- <4.97g 0 /dev/sdd vg1 lvm2 a-- <4.97g <4.91g #Более подробный вариант pvdisplay #Посмотреть информацию о группах LVM localhost:~# vgs VG #PV #LV #SN Attr VSize VFree vg1 3 2 0 wz--n- <14.91g <4.91g #Или localhost:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv1 vg1 -wi------- 5.00g lv2 vg1 -wi------- 5.00g #Более подробный вариант vgdisplay
    #Создание логического тома размером 40% от дискового пространства группы vg01 lvcreate -l 40%VG vg01 #использовать все свободное пространство группы vg01 lvcreate -l 100%FREE -n lv01 vg01
    Создание зеркала

    Источники
    Последнее изменение: 18.08.2026 20:47


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ