Навчальний посібник з диспетчера логічних томів Linux (LVM)
Диспетчер логічних томів (LVM) використовується в Linux для керування жорсткими дисками та іншими пристроями для зберігання даних. Як випливає з назви, він може сортувати необроблене сховище за логічними томами, що спрощує налаштування та використання.
У цьому посібнику ви дізнаєтесь, як LVM працює в системах Linux. Немає кращого способу дізнатися про LVM, ніж просто переглянути приклад, що ми зробимо в наступних кроках. LVM працює однаково в будь-якому дистрибутиві Linux, тому ви можете використовувати будь-яку з наведених нижче команд у системі.
Дотримуйтесь нас, оскільки ми використовуємо LVM для створення розділів, фізичних томів, віртуальної групи, логічних томів та файлових систем на жорсткому диску. Ми також покажемо, як монтувати, розширювати та видаляти новостворені логічні томи. До кінця цього посібника ви отримаєте повне уявлення про те, як використовувати LVM та застосовувати свої власні конфігурації.
У цьому уроці ви дізнаєтесь:
Диспетчер логічних томів – Навчальний сценарій
Встановіть LVM в основних дистрибутивах Linux.
Можливо, у вашій системі Linux вже встановлено LVM, але він не встановлений за умовчанням у кожному дистрибутиві. Використовуйте відповідну команду нижче, щоб встановити LVM за допомогою менеджера пакетів вашої системи.
Щоб встановити LVM в Ubuntu, Debian та Linux Mint:
$ sudo apt install lvm2
Щоб встановити LVM у CentOS, Fedora, AlmaLinux та Red Hat:
$ sudo dnf install lvm2
Щоб встановити LVM в Arch Linux та Manjaro:
$ sudo pacman -S lvm2
Створення розділів
Перше, що ми зробимо, це створимо розділи на диску. Це зроблено для полегшення створення фізичних томів у наступному розділі, які можуть бути створені на нерозмічених блокових пристроях, або на окремих розділах.У рамках цього уроку ми працюватимемо над останнім.
У цьому прикладі ми будемо працювати з диском /dev/sdb , який є жорстким диском ємністю 5 ГБ (і в даний час нерозмічений). Зверніться до схеми на початку цього посібника, щоб візуалізувати конфігурацію, яку ми будемо налаштовувати.
Ми можемо побачити наш диск /dev/sdb та відповідні деталі за допомогою наступної команди.
Використовуйте команду fdisk, щоб побачити жорсткий диск, з яким ми будемо працювати.
Далі давайте розіб'ємо диск за допомогою cfdisk.
У консолі відкриється інтерфейс, який досить інтуїтивно зрозумілий у використанні. Ми створили такі два розділи, як показано на нашій схемі на початку.
Запишіть зміни на диск, щоб завершити таблицю розділів.
Завершіть зміни, вибравши «записати», а потім вийдіть із утиліти, коли закінчите. Тепер ми можемо побачити наш розділ у списку, коли виконаємо fdisk -l .
Використовуйте команду fdisk, щоб побачити два створені розділи.
Створення фізичних томів
Тепер ми можемо створювати фізичні томи в нових розділах за допомогою команди pvcreate .
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" успішно створений. # pvcreate /dev/sdb2 Physical volume "/dev/sdb2" успішно створений.
Використовуйте pvdisplay , щоб переглянути інформацію про всі фізичні томи у вашій системі, або вкажіть конкретний том, інформацію про який ви хочете переглянути.
# pvdisplay OR # pvdisplay /dev/sdb1
Використовуйте pvdisplay, щоб переглянути список фізичних томів.
Створити віртуальну групу
На цьому етапі нам потрібно створити віртуальну групу, яка буде контейнером для наших фізичних томів. У цьому прикладі ми назвемо нашу віртуальну групу «mynew_vg», яка включатиме розділ /dev/sdb1 за допомогою наступної команди Linux:
# vgcreate mynew_vg /dev/sdb1
Або, щоб включити обидва розділи одночасно:
# vgcreate mynew_vg /dev/sdb1 /dev/sdb2
Використовуйте наступну команду для відображення інформації про віртуальні групи.
Створення віртуальної групи та подальший перегляд її відомостей
Ми можемо додати до групи додаткові фізичні томи за допомогою команди vgextend.
# vgextend mynew_vg /dev/sdb2 Volume group "mynew_vg" successfully extended
Створення логічних томів
Тепер ми можемо перейти до створення логічних томів. Можливо, буде корисно уявити нашу віртуальну групу як "великий пиріг", з якого ми можемо відрізати "шматки" (логічні томи), які розглядатимуться як розділи в нашій системі Linux.
Наступна команда створить логічний том із ім'ям vol01 розміром 400 МБ.
# lvcreate -L 400 -n vol01 mynew_vg
Потім ми створимо ще один том із ім'ям vol02 розміром 1 ГБ. Знову ж таки, зверніться до діаграми вище, щоб візуалізувати конфігурацію.
# lvcreate -L 1000 -n vol02 mynew_vg
Нарешті, ми можемо використовувати команду lvdisplay , щоб переглянути щойно створені логічні томи.
Використання lvdisplay для перегляду інформації про два нові логічні томи.
Як ви можете бачити на скріншоті нижче, vgdisplay показує нам, що ми все ще є 3,6 ГБ вільного місця у віртуальній групі mynew_vg .
vgdisplay показує, що ми ще маємо 3,6 ГБ вільного місця.
Створіть файлову систему на логічних томах
Логічний том майже готовий до використання. Все, що нам потрібно зробити, це створити файлову систему за допомогою команди mkfs .
# mkfs.ext4 -m 0 /dev/mynew_vg/vol01
Опція -m визначає відсоток, зарезервований суперкористувача. Ми можемо встановити значення 0, щоб використовувати весь доступний простір (за замовчуванням – 5%).
Створення файлової системи ext4 на логічному томі
Відредагуйте fstab для автоматичного монтування розділів.
Щоб файлова система автоматично монтувалася, слід додати запис про неї у файл /etc/fstab . Це дозволить нам змонтувати розділи під час завантаження комп'ютера в майбутньому.
Запис, що додається, повинен виглядати приблизно так, як показано на знімку екрана нижче.
Додати рядок до fstab
Монтувати логічні томи
Щоб використати наші нові томи, нам потрібно їх змонтувати. Не забудьте спочатку створити точку монтування.
# mkdir /foobar # mount -a
Ми маємо 360 МБ вільного місця на змонтованому розділі.
Розширення логічного тому
Найбільшою перевагою логічного тому є те, що його можна розширити будь-якої миті, коли нам не вистачає місця. Наприклад, щоб збільшити розмір логічного тому та додати ще 800 МБ простору, ми можемо запустити цю команду:
# lvextend -L +800 /dev/mynew_vg/vol01
Зверніть увагу на скріншоті нижче, що команда не збільшує розмір файлової системи, а тільки розмір логічного тома.
Ми розширили логічний том, але у файловій системі залишився колишній простір.
Щоб файлова система зростала та використовувала доданий простір, нам потрібно змінити розмір файлової системи за допомогою наступної команди.
# resize2fs /dev/mynew_vg/vol01
Зміна розміру файлової системи дає нам корисний простір.
У деяких системах, особливо старих, вам може знадобитися відключити том і запустити e2fck , перш ніж ви зможете його розширити.
# umount /foobar # e2fck -f /dev/mynew_vg/vol01 # resize2fs /dev/mynew_vg/vol01
Видалення логічного тому
Команду Lvremove можна використовувати для видалення логічних томів. Ми маємо переконатися, що на логічному томі немає цінних даних, перш ніж намагатися його видалити. Більше того, ми маємо переконатися, що тому не змонтовано.
# lvremove /dev/mynew_vg/vol02
Видалення логічного тома в LVM
Заключні думки
У цьому посібнику ми надали вам покрокові інструкції щодо створення двох фізичних розділів в одній групі томів за допомогою LVM. Ми також побачили, як додати файлову систему, змонтувати розділи та розширити логічні томи. Це має дати вам гарне уявлення про те, як працює LVM та як його використовувати для застосування власних конфігурацій сховища.
Статті з цієї тематики:
- Основи Linux - Навчальний посібник з LVM (Диспетчер логічних томів)
- Посібник з диспетчера логічних томів Linux (LVM)
- Як змінити розмір розділів LVM у Linux
- Використовуйте моментальний знімок LVM для резервного копіювання ваших даних у Linux
- Перемістити групу томів LVM на інший комп'ютер
- Використовуйте Ansible для автоматизації диспетчера логічних томів (LVM)
- Що таке LVM і як його налаштувати в Ubuntu
- Встановіть Linux за допомогою LVM
- Додати сховище за допомогою LVM
- Створіть логічний том LVM та змонтуйте його за допомогою Ansible
- Ефективне керування блоковими пристроями за допомогою LVM
- Посібник для початківців по LVM у Linux
- Як встановити Void Linux з LVM на шифруванні LUKS
- Введення в тонке забезпечення LVM
- Модуль RHCSA 2 — Керування журналами, розділами диска та керування LVM
Усі права захищені. © Linux-Console.net • 2019-2024
Налаштування та керування LVM розділами в Linux
LVM (Logical Volume Manager) – підсистема операційних систем Linux дозволяє використовувати різні області фізичного жорсткого диска або різних жорстких дисків як один логічний том. LVM вбудована в ядро Linux та реалізується на базі device mapper.
Головні переваги LVM – високий рівень абстракції від фізичних дисків, гнучкість та масштабованість. Ви можете змінювати розмір логічного тому на льоту, додавати (і видаляти) нові диски.Для томів LVM підтримується зекалювання, снапшоти (persistent snapshot) і striping (розшарування даних між кількома дисками з метою збільшення продуктивності).
У цій статті ми розглянемо використання розділів LVM на прикладі Linux CentOS 8 , покажемо процес об'єднання двох дисків в одну групу LVM, подивимося як створювати групи, томи, монтувати, розширювати і зменшувати розмір розділів LVM.
Насамперед потрібно розібратися з рівнями дискових абстракцій LVM.
- Physical Volume (PV) – фізичний рівень. Фізичні диски ініціалізуються для використання в LVM.
- Volume Group (VG) – рівень групи томів. Ініціалізовані диски поєднуються в логічні групи з ім'ям.
- Logical Volume (LV) - створюється логічний том на групі томів, на якому розміщується файлова система та дані.
Установка утиліти lvm2
Щоб почати роботу з LVM , потрібно встановити утиліту lvm2 . Виконаємо такі команди:
apt-get install lvm2 — для Ubuntu, Mint, Debian
yum install lvm2 – для Centos, Red-Hat, Fedora
У різних версіях Linux відрізняється лише спосіб встановлення утиліти lvm2 (установка через yum /dnf або apt-get), подальші команди для роботи з LVM , однакові.
Створення розділів LVM
Отже, у нас є віртуальна машина KVM, до якої підключено два додаткові диски. Перевіримо, що вони доступні в системі за допомогою команди:
Як ви бачите, у мене є два диски /dev/vdb і /dev/vdc .
При налаштуванні LVM на своєму віртуальному або фізичному сервері, використовуйте маркування дисків.
Щоб диски були доступні для LVM , їх потрібно позначити (ініціалізувати) утилітою pvcreate:
pvcreate /dev/vdb /dev/vdc
Тепер, щоб переконатися, що ці диски можна використовувати для LVM , введіть команду 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
Volume group "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
Logical volume "lvol0" створений.
Як бачимо з лістингу, у групі test було створено логічний том з ім'ям lvol0 та розміром 5G.
Якщо ви бажаєте самі задати ім'я, використовуйте прапор -n :
# lvcreate -L 5G -n test1 test
Logical volume "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:
Файлова система була створена без помилок.
Тепер створимо тестову директорію та примонтуємо логічний том до даної директорії:
# 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 :
Filesystem Size Use Avail Use% Mounted on_x000D_devtmpfs 485M 0 485M 0% /dev_x000D_tmpfs 496M 0 496M 0% /dev/shm_x000D_tmpfs 496M /run_x000D_tmpfs 496M 0 496M 0% /sys/fs/cgroup_x000D_/dev/vda2 20G 1.3G 19G 7% /_x000D_/dev/vda1 488M 100M 353M 100M 0 100M 0% /run/user/0_x000D_/dev/mapper/test-test1 4.8G 20M 4.6G 1% /var/www/home_x000D_
Щоб перевірити загальну інформацію про диски, розділи та томи, введіть команду lsblk :
Як бачимо, наш створений том відображається, і вказано директорію, до якої він примонтований.
Команда lvmdiskscan дозволяє просканувати доступні диски, показує їх розмір та належність до LVM.
Збільшення логічного тому LVM
Щоб додати додатковий диск до групи томів, потрібно скористатися знайомою схемою:
pvcreate /dev/нашдиск - ініціалізація диска для lvm
vgextend test /dev/нашдиск — додавання диска до групи томів
Щоб розширити логічний том, скористайтеся такою схемою:
lvextend -L10G /dev/test/test1
У такий спосіб ви розширите розділ на 10 Гб.
Ще кілька прикладів розширення 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 дозволяють зменшувати розмір тома. Але для безпеки зменшення розміру розділу його потрібно вимкнути.
Відмонтуємо том від директорії:
Виконаємо перевірку диска:
e2fsck -fy /dev/test/test1
Зменшимо розділ файлової системи на 4 Гб:
# resize2fs /dev/test/test1 4G
resize2fs 1.42.9 (28-Dec-2013)_x000D_Resizing filesystem на /dev/test/test1 to 1048576 (4k) blocks._x000D_The filesystem on /dev/test/test1 is now 1048
# lvreduce -L-4G /dev/test/test1
WARNING: Зменшення активного логічного обсягу до 6.00 Гіб. [y/n]: y_x000D_Size of logical volume test/test1 змінюється від 10.00 Гіб (2560 додатків) до 6.00 Гіб (1536 додатків).
Тепер зменшимо розмір самого LVM тому:
lvreduce -L-4G /dev/test/test1
Після цього, потрібно примонтувати том назад і перевірити поточний розмір:
Як бачимо, розмір зменшився до 4 Гб.
Видалення LVM груп та томів
Для видалення томів LVM, використовується команда lvremove :
Щоб видалити групу логічних томів, використовуйте:
Volume group "test" успішно вилучено
Прибрати мітки з LVM дисків:
# pvremove /dev/vdb /dev/vdc
Labels on physical volume "/dev/vdb" успішно wiped._x000D_Labels on physical volume "/dev/vdc" успішно wiped._x000D_
Створення дзеркальних томів LVM
LVM дозволяє створити дзеркальні томи підвищення відмовостійкості зберігання даних. У дзеркалі LVM дані одночасно зберігаються на двох (або більше) фізичних дисках (подібність RAID-1). Процедура створення дзеркального тома LVM.
- Ініціалізація дисків: pvcreate /dev/sd
- Створюємо LVM групу: vgcreate mirror1 /dev/sd
- Створимо дзеркальний LVM том: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1
Інструменти LVM дуже зручні для роботи, за допомогою них можна легко керувати томами, нарізати їх на потрібні розміри і з легкістю використовувати під свої потреби. У цій статті я постарався торкнутися всіх основних моментів у роботі з LVM .
Logical Volume Manager (LVM)
Logical Volume Manager (LVM) – це дуже потужна система управління томами з даними для Linux. Вона дозволяє створювати поверх фізичних розділів (або навіть нерозбитих вінчестерів) логічні томи, які в самій системі буде видно як звичайні блокові пристрої з даними (тобто як звичайні розділи). Основні переваги LVM у тому, що по-перше одну групу логічних томів можна створювати поверх будь-якої кількості фізичних розділів, а по-друге, розмір логічних томів можна легко змінювати прямо під час роботи. Крім того, LVM підтримує механізм снапшотів, копіювання розділів «на льоту» та дзеркалювання, подібне до RAID -1.
Якщо плануються великі роботи з LVM, можна запустити спеціальну «оболонку» командою sudo lvm . Команда help покаже список команд.
Створення та видалення
Як зазначалося, LVM будується з урахуванням розділів жорсткого диска і/або цілих жорстких дисків. На кожному з дисків/розділів має бути створено фізичний том (physical volume). Наприклад, ми використовуємо для LVM диск sda та розділ sdb2:
pvcreate /dev/sda pvcreate /dev/sdb2
На цих фізичних томах створюємо групу томів, яка буде називатися, скажімо, vg1:
vgcreate -s 32M vg1 /dev/sda /dev/sdb2
Подивимося інформацію про нашу групу томів:
Груп можна створити кілька, кожна зі своїм набором томів. Але зазвичай це не потрібно.
Тепер у групі томів можна створити логічні томи
lv1 і lv2 розміром 20 Гбайт та 30 Гбайт відповідно:
lvcreate -n lv1 -L 20G vg1 lvcreate -n lv2 -L 30G vg1
Тепер у нас є блокові пристрої /dev/vg1/lv1 і /dev/vg1/lv2.
Залишилося створити ними файлову систему. Тут відмінностей із звичайними розділами немає:
mkfs.ext4 /dev/vg1/lv1 mkfs.reiserfs /dev/vg1/lv2
Видалення LVM (або окремих його частин, наприклад, логічних томів або груп томів) відбувається у зворотному порядку - спочатку потрібно відмонтувати розділи, потім видалити логічні томи (lvremove), після цього можна видалити групи томів (vgremove) і непотрібні фізичні томи (pvremove) .
Додавання фізичних томів
Щоб додати новий вінчестер sdc у групу томів, створимо фізичний том:
І додамо його до нашої групи:
vgextend vg1 /dev/sdc
Тепер можна створити ще один логічний диск (lvcreate) або збільшити розмір існуючого (lvresize).
Видалення фізичних томів
Щоб прибрати з працюючої групи томів вінчестер sda спочатку перенесемо всі дані з нього на інші диски:
Потім видалимо його із групи томів:
vgreduce vg1 /dev/sda
І, нарешті, видалимо фізичний том:
Взагалі-то, остання команда просто прибирає відмітку про те, що диск є членом lvm, і особливої користі не приносить.
Зміна розмірів
LVM дозволяє легко змінювати розмір логічних томів.
lvresize -L 40G vg1/lv2
а потім файлову систему на ньому:
resize2fs /dev/vg1/lv2 resize_reiserfs /dev/vg1/lv2
Зміна розмірів фізичного тому - завдання дуже складне і зазвичай не застосовується.
Як просто спробувати
Якщо LVM встановлюється не для подальшого використання, а диски і розділи можна замінити файлами. Не знадобляться ні додаткові диски, ні віртуальні машини. , але можна створити іншу кількість більшого або меншого розміру, як вам хочеться. пристрої:
mkdir /mnt/sdc1/lvm cd /mnt/sdc1/lvm dd if=/dev/zero of=./d01 count=1 bs=1G dd if=/dev/zero of=./d02 count=1 bs=1G dd if=/dev/zero of=./d03 count=1 bs=1G dd if=/dev/zero of=./d04 count=1 bs=1G
Створюємо loopback пристрої із файлів:
losetup -f --show ./d01 losetup -f --show ./d02 losetup -f --show ./d03 losetup -f --show ./d04
Далі чинимо так само, якби ми створювали LVM на реальних дисках.
pvcreate /dev/loop0 pvcreate /dev/loop1 pvcreate /dev/loop2 pvcreate /dev/loop3 vgcreate -s 32M vg /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 lvcreate -n first -L 2G -n second -L 400M vg.
Снапшоти
Одна з найважливіших особливостей LVM – це підтримка механізму снапшотів. Снапшоти дозволяють зробити миттєвий знімок логічного тома та використовувати його надалі для роботи з даними.
Приклади використання
LVM активно використовується, коли потрібний механізм снапшотів. Наприклад, цей механізм дуже важливий при бекапі файлів, що постійно змінюються. LVM дозволяє заморозити деякий стан ФС і скопіювати з неї всі необхідні дані, причому на оригінальній ФС зупиняти запис не потрібно.
Також снапшоти можна застосувати для організації підтримки файловим сервером із Samba механізму архівних копій, про це у відповідній статті:
LVM з LiveCD
Якщо у вас виникла потреба працювати з LVM з LiveCD Ubuntu, то вам доведеться виконати кілька додаткових дій, оскільки за умовчанням утиліт для роботи з LVM немає.
Спочатку вам потрібно встановити ці утиліти:
sudo apt-get install lvm2
Далі подивіться командами
sudo vgscan sudo vgdisplay YOUR_VGNAME
доступність груп томів. Ну а далі запустіть усі групи командою
Ця команда повинна повідомити, що всі ваші логічні томи активовані. Тепер можна працювати з ними звичайним чином.