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

UK

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

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

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

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

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

т lvm

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

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

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

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

 Installing-the-lvm2-utility

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

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

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

fdisk -l

fdisk-1

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

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

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

pvcreate /dev/vdb /dev/vdc

 pvcreate-initialisation

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

pvdisplay

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

  • 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:

pvdisplay

Як бачите, диски об’єднані в групу 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:

pvdisplay

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

  • 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

 fajlovaya

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

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

test-directory

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

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

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

nano /etc/fstab

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

/dev/test/test1 /var/www/home ext4 defaults 1 2

fstab-with-some-elements

Після цього ви можете змонтувати том за допомогою команди 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:

 lsblk command

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

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

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

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

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

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

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

lvextend -L10G /dev/test/test1

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

Current-LVM-extending

Ще кілька прикладів включення розділу 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

File system reduction

Зменшимо розділ файлової системи на 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

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

Size-decresing

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

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

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

lvremove /dev/test/test1

Remove-logical-group

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

# 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.

VPS Linux

VPS-хостинг з віртуалізацією KVM

Віддалений доступ/керування

Готове рішення

Віртуалізація KVM

Підтримка 24 години на добу