LVM¶
Что это?¶
LVM - это дополнительный слой абстракции от железа, позволяющий собрать физически диски в один и уже этот один логический разбивать так, как нам захочется.
У LVM есть три уровня абстракции: 1. Physical Volume (PV) - физические тома 2. Volume Group - группа из PV 3. Logical Volume - логический раздел нашего LVM диска.
Кейсы¶
Важно
Не забывайте бекапить данные! Описанные ниже операции вносят изменения.
Создаем новый LVM диск¶
Задача:
- Есть полностью пустой и инициализированный диск /dev/sdc
- Хотим файловую систему XFS
Делаем:
-
Создаем PV:
-
Создаем VG
-
Создаем LV
-
Создаем ФС XFS:
-
Создаем каталог, куда будет монтироваться наш диск:
-
Добавляем запись в /etc/fstab для монтирования диска:
-
Монтируем:
Расширяем LVM диск с использованием parted¶
Важно
Если есть возможность установить пакеты - используйте growpart. Он позволяет в 1 команду проделать все эти операции.
Задача:
- Входные данные: есть следующая структура разделов
> lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 70G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 69G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 69G 0 lvm / > pvs PV VG Fmt Attr PSize PFree /dev/sda3 ubuntu-vg lvm2 a-- <69.00g 0 > lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert ubuntu-lv ubuntu-vg -wi-ao---- <69.00g > vgs VG #PV #LV #SN Attr VSize VFree ubuntu-vg 1 1 0 wz--n- <69.00g 0
- Хотим расширить диск. Сам диск расширяется на виртуализации.
Решение:
- Расширяем диск на виртуализации на сколько нам надо
- Перечитываем диски:
- Расширяем через fdisk:
> fdisk /dev/sda
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
GPT PMBR size mismatch (146800639 != 314580991) will be corrected by write.
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Command (m for help): p
Disk /dev/sda: 150 GiB, 161065467904 bytes, 314580992 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0BAA2E06-9745-4BB0-9687-CABC8EF827A5
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2101247 2097152 1G Linux filesystem
/dev/sda3 2101248 146800606 144699359 69G Linux filesystem
Нам нужно удалять раздел /dev/sda3 и создать его заново с новым размером. Данные останутся нетронотыми, если руки прямые. Выполняем следующее:
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 has been deleted.
Command (m for help): n
Partition number (3-128, default 3): 3
First sector (2101248-314580958, default 2101248):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2101248-314580958, default 314580958):
Created a new partition 3 of type 'Linux filesystem' and of size 149 GiB.
Partition #3 contains a LVM2_member signature.
Do you want to remove the signature? [Y]es/[N]o: n
Command (m for help): w
The partition table has been altered.
Syncing disks.
Важно
Внимательно смотрите, чтобы размер который был совпадал с началом нового раздела (2101248).
Часто бывает, что пытаются расширять раздел который находится не в конце, как у меня в примере, а посередине. Такой раздел расширить таким образом не получится без удаления разделов после него. В этом случае создают новый раздел и добавляют его в VG.
- Расширяем PV:
- Расширяем LV на 100%:
> lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <69.00 GiB (17663 extents) to 149.00 GiB (38144 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
- Ресайзим раздел: