*КУБ - повний комплекс хмарних послуг!

Налаштування та управління розділами LVM у Linux

Linux
Налаштування та управління розділами LVM у Linux

LVM (Logical Volume Manager) — це підсистема операційних систем Linux, яка дозволяє використовувати різні області жорсткого диска або різні жорсткі диски як один логічний том. LVM вбудований в ядро Linux і реалізований за допомогою пристрою маппера.

Основними перевагами LVM є високий рівень абстракції від жорстких дисків, гнучкість і масштабованість. Ви можете змінювати розмір логічного тому під час роботи, а також додавати (і видаляти) нові диски. Для томів LVM підтримуються дзеркальне відображення, знімки (постійні знімки) та смугове розміщення (розподіл даних між декількома дисками для підвищення продуктивності).

У цій статті ми розглянемо використання розділів LVM на прикладі Linux CentOS 8, покажемо процес об’єднання двох дисків в одну групу LVM, дізнаємося, як створювати групи, томи, монтувати, розширювати та зменшувати розмір розділів LVM. Подібні операції найчастіше виконуються на Linux VPS, де LVM використовується для гнучкого керування дисковим простором, масштабування сховища та спрощення адміністрування серверів.

Спочатку необхідно зрозуміти рівні абстракції диска LVM.
Фізичний том (PV) — фізичний рівень. Фізичні диски ініціалізуються для використання в LVM.
Група томів (VG) — рівень групи томів. Ініціалізовані диски об’єднуються в логічні групи з іменем.
Логічний том (LV) — логічний том створюється на групі томів, яка містить файлову систему та дані.

LVM

Встановлення утиліти lvm2

Щоб почати роботу з LVM, потрібно встановити утиліту lvm2. Виконаємо наступні команди:

apt-get install lvm2 – для Ubuntu, Mint, Debian

yum install lvm2 – для Centos, Red Hat, Fedora

Встановлення утиліти lvm2

У різних версіях Linux відрізняється лише спосіб встановлення утиліти lvm2 (встановлення за допомогою yum/ dnf або apt-get), подальші команди для роботи з LVM є однаковими.

Створення розділів LVM

Отже, ми маємо віртуальну машину KVM, до якої підключено два додаткові диски. Перевірте, чи вони доступні в системі, за допомогою команди:

fdisk -l

Створення розділів LVM

Як бачите, у мене є два доступні диски /dev/vdb та /dev/vdc .

Під час налаштування LVM на вашому віртуальному або фізичному сервері використовуйте мітки дисків.

Щоб диски були доступні для LVM, їх необхідно позначити (ініціалізувати) за допомогою утиліти pvcreate:

pvcreate /dev/vdb /dev/vdc

налаштування LVM

Тепер, щоб переконатися, що ці диски можна використовувати для LVM, виконайте команду pvdisplay:

диски можна використовувати для LVM

Як бачите, відображаються обидва диски. Проаналізуємо інформацію з виводу команди:

  • PV Name – назва диска або розділу
  • VG Name – група томів, до якої належить цей диск (ми ще не створили групу)
  • PV Size – розмір диска або розмір
  • Allocatable – розподіл за групами. У нашому випадку розподілу не було, тому вказано NO
  • PE Size – розмір фізичного фрагмента. Якщо диск не доданий до жодної групи, значення завжди буде 0
  • Total PE – кількість фізичних фрагментів
  • Free PE – кількість вільних фізичних фрагментів
  • Allocated PE – розподілені фрагменти

PV UUID – ідентифікатор розділу

За допомогою команди pvscan можна сканувати диски на наявність PV.

Наступним кроком є створення групи томів. Для створення груп томів використовується команда vgcreate. Щоб об’єднати раніше позначені диски, використовуйте команду:

# vgcreate test /dev/vdb /dev/vdc

Група томів «test» успішно створена

Щоб перевірити результат, введіть vgdisplay:

перевірити результат

Як бачите, диски об’єднані в групу test, а VG Size показує загальний розмір дисків.

Давайте проаналізуємо інформацію з виводу команди vgdisplay:

  • VG Name — група томів, до якої належить цей диск.
  • Format — версія підсистеми lvm, яка використовується для створення групи (у нашому випадку версія 2)
  • Metadata Areas — область метаданих
  • VG Access — рівень доступу до групи логічних томів
  • VG Size — загальний обсяг дисків, що входять до групи
  • PE Size — розмір фізичного фрагмента
  • Alloc PE / Size — виділений простір (кількість і обсяг фрагментів)
  • VG UUID – ідентифікатор групи

Після створення спільної групи для дисків ми можемо створити логічний том у цій групі. Для створення тому використовується команда lvcreate.

Щоб створити логічний том певного розміру та імені у вашій групі, використовуйте команду:

# lvcreate -L 5G test

Логічний том «lvol0» створено.

Як видно з виведення, у групі test створено логічний том з іменем lvol0 і розміром 5G.

Якщо ви хочете самостійно встановити ім’я, використовуйте прапор -n:

# lvcreate -L 5G -n test1 test

Логічний том «test1» створено

Деякі приклади створення логічних томів різного розміру:

lvcreate -l 40%VG test – 40% дискового простору групи test

lvcreate -l 100%FREE test – використання всього вільного простору групи test

Щоб відобразити інформацію про логічний том, використовуйте lvdisplay:

відобразити інформацію про логічний том

Давайте подивимося на список цієї команди:

  • LV Path – шлях до пристрою логічного тому (диск або розділ)
  • LV Name – ім’я логічного тому
  • VG Name – ім’я групи томів
  • LV UUID – ідентифікатор логічного тому
  • LV Write Access – рівень доступу до логічного тому
  • LV Creation host, time – інформація про хост, дату створення логічного тому
  • LV Size – розмір диска, доступний для використання логічним томом
  • Current LE – кількість логічних фрагментів

LVM: створення файлової системи, монтування логічного тому

Щоб створити файлову систему на логічному томі, використовуйте утиліту mkfs:

Створіть файлову систему ext4 на томі LVM:

mkfs.ext4 /dev/test/test1

створення файлової системи

Файлова система була створена без помилок.
Тепер створимо тестовий каталог і підключимо логічний том до цього каталогу:

# mkdir /var/www/home
# mount /dev/test/test1 /var/www/home/

Тепер створимо тестовий каталог

Як бачите, все пройшло без помилок, і тепер каталог /var/www/home існує як окремий розділ.

Щоб логічний том монтувався при завантаженні системи, потрібно додати його до fstab і призначити каталог для монтування.

Відкриємо файл:

nano /etc/fstab

І додамо до нього наступну інформацію:

/dev/test/test1 /var/www/home ext4 defaults 1 2
додамо до нього

Після цього ви можете змонтувати том за допомогою команди mount -a:

# mount -a
# df -h

Filesystem Size Used Avail Use% Mounted on
devtmpfs 485M 0 485M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda2 20G 1.3G 19G 7% /
/dev/vda1 488M 100M 353M 23% /boot
tmpfs 100M 0 100M 0% /run/user/0
/dev/mapper/test-test1 4.8G 20M 4.6G 1% /var/www/home

Щоб перевірити загальну інформацію про диски, розділи та томи, введіть команду lsblk:

перевірити загальну інформацію

Як бачите, відображається створений нами том і вказується каталог, до якого він підключений.

Команда lvmdiskscan дозволяє сканувати доступні диски, показуючи їх розмір і приналежність до LVM.

Розширення логічного тому LVM

Щоб додати додатковий диск до групи томів, потрібно використовувати вже знайому схему:

pvcreate /dev/ourdisk – ініціалізація диска для lvm

vgextend test /dev/ourdisk – додавання диска до групи томів

Щоб розширити логічний том, використовуйте таку схему:

lvextend -L10G /dev/test/test1

Таким чином ви розширите розділ на 10 ГБ.

Розширення логічного тому LVM

Ще кілька прикладів включення розділу LVM:

lvextend -L+10G /dev/test/test1 – додати 10 ГБ до вашого тому

lvextend -l +100%FREE /dev/test/test1- розподілити весь нерозподілений простір у групі test

Залишається збільшити розділ файлової системи:

resize2fs /dev/test/test1 –для ext4

xfs_growfs /dev/test/test1 – для xfs

Зменшення обсягів LVM

LVM дозволяє зменшити розмір обсягу. Але для безпеки зменшення розміру розділу його необхідно вимкнути.

Знімемо обсяг з каталогу:

umount /var/www/home/

Перевіримо диск:

e2fsck -fy /dev/test/test1

Зменшення обсягів LVM

Зменшимо розділ файлової системи на 4 ГБ:

# resize2fs /dev/test/test1 4G

resize2fs 1.42.9 (28-Dec-2013)
Зміна розміру файлової системи на /dev/test/test1 до 1048576 (4k) блоків.
Файлова система на /dev/test/test1 тепер має розмір 1048576 блоків.

# lvreduce -L-4G /dev/test/test1

ПОПЕРЕДЖЕННЯ: Зменшення активного логічного тому до 6,00 Гб.
ЦЕ МОЖЕ ЗНИЩИТИ ВАШІ ДАНІ (файлову систему тощо).
Ви дійсно хочете зменшити test/test1? [y/n]: y
Розмір логічного тому test/test1 змінено з 10,00 Гб (2560 розширень) до 6,00 Гб (1536 розширень).
Логічний том test/test1 успішно змінено.

Тепер зменшимо розмір самого тому LVM:

lvreduce -L-4G /dev/test/test1

Після цього потрібно знову змонтувати том і перевірити його поточний розмір:

знову змонтувати том

Як бачите, розмір зменшився до 4 ГБ.

Видалення груп і томів LVM

Щоб видалити томи LVM, скористайтеся командою lvremove:

lvremove /dev/test/test1

Видалення груп і томів LVM

Щоб видалити логічну групу томів, скористайтеся командою:

# vgremove test

Група томів «test» успішно видалена

Видалення міток з дисків LVM:

# pvremove /dev/vdb /dev/vdc

Мітки на фізичному томі «/dev/vdb» успішно видалені.
Мітки на фізичному томі «/dev/vdc» успішно видалені.

Створення дзеркальних томів LVM

LVM дозволяє створювати дзеркальні томи для підвищення відмовостійкості системи зберігання даних. У дзеркалі LVM дані одночасно зберігаються на двох (або більше) фізичних дисках (аналогічно RAID-1). Процедура створення дзеркального тому в LVM.

  1. Ініціалізація дисків: pvcreate /dev/sd{b,c}
  2. Створення групи LVM: vgcreate mirror1 /dev/sd{b,c}
  3. Створення дзеркального тому LVM: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1

Інструменти LVM дуже прості у використанні, за їх допомогою ви можете легко керувати томами, розрізати їх на необхідні розміри та легко використовувати відповідно до своїх потреб. У цій статті я спробував охопити всі основні моменти роботи з LVM.

Menu