- Настройка и управление LVM разделами в Linux
- Установка утилиты lvm2
- Создание LVM разделов
- LVM: создание файловой системы, монтирование логического тома
- Увеличение логического тома LVM
- Уменьшение LVM томов
- Удаление LVM групп и томов
- Создание зеркальных томов LVM
- Как работать с LVM
- Уровни абстракции
- Установка
- Создание разделов
- 1. Инициализация
- 2. Создание групп томов
- 3. Создание логических томов
- Создание файловой системы и монтирование тома
- Файловая система
- Монтирование
- Просмотр информации
Настройка и управление 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
Чтобы проверить результат введите 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
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n:
# lvcreate -L 5G -n test1 test
Несколько примеров для создания логических томов с разными размерами:
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
И добавим в него следующую информацию:
После чего примонтировать том можно будет через mount -a:
Чтобы проверить общую информацию по дискам, разделам и томам, введите команду 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
# lvreduce -L-4G /dev/test/test1
Теперь уменьшим размер самого LVM тома:
lvreduce -L-4G /dev/test/test1
После чего, нужно примонтировать том обратно и проверить текущий размер:
Как видим, размер уменьшился до 4 Гб.
Удаление LVM групп и томов
Для удаления LVM томов, используется команда lvremove:
Чтобы удалить группу логических томов, используйте:
Убрать метки с LVM дисков:
# pvremove /dev/vdb /dev/vdc
Создание зеркальных томов LVM
LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.
- Инициализация дисков: pvcreate /dev/sd
- Создаем LVM группу: vgcreate mirror1 /dev/sd
- Создадим зеркальный LVM том: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1
Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM.
Источник
Как работать с LVM
В статье описаны основные моменты использования LVM для организации дисковой системы в Linux. Она поможет как чайникам разобраться с принципами ее работы, так и уже знающим LVM в качестве шпаргалки.
Используемые команды одинаково подойдут как для систем Red Hat / CentOS, так и Debian / Ubuntu.
Уровни абстракции
Работа с томами с помощью LVM происходит на 3-х уровнях абстракции:
- Физический уровень (PV). Сначала диск инициализируется командой pvcreate — в начале диска создается дескриптор группы томов. При этом важно заметить, что диск не обязательно должен быть физическим — мы можно отметить на использование обычный раздел диска.
- Группа томов (VG). С помощью команды vgcreate создается группа томов из инициализированных на предыдущем этапе дисков.
- Логический том (LV). Группы томов нарезаются на логические тома командой lvcreate.
Схематично, уровни можно представить так:
Установка
Для работы с LVM необходима установка одноименной утилиты. В системе Linux она может быть установлена по умолчанию. Но если ее нет, выполняем инструкцию ниже.
Если используем системы на безе deb (Ubuntu, Debian, Mint):
apt-get install lvm2
Если используем системы на безе RPM (Red Hat, CentOS, Fedora):
yum install lvm2
Создание разделов
Рассмотрим пример создания томов из дисков sdb и sdc с помощью LVM.
1. Инициализация
Помечаем диски, что они будут использоваться для LVM:
pvcreate /dev/sdb /dev/sdc
* напомним, что в качестве примера нами используются диски sdb и sdc.
Посмотреть, что диск может использоваться LMV можно командой:
В нашем случае мы должны увидеть что-то на подобие:
«/dev/sdb» is a new physical volume of «1,00 GiB»
— NEW Physical volume —
PV Name /dev/sdb
VG Name
PV Size 1,00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID rR8qya-eJes-7AC5-wuxv-CT7a-o30m-bnUrWa
«/dev/sdc» is a new physical volume of «1,00 GiB»
— NEW Physical volume —
PV Name /dev/sdc
VG Name
PV Size 1,00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2jIgFd-gQvH-cYkf-9K7N-M7cB-WWGE-9dzHIY
- PV Name — имя диска.
- VG Name — группа томов, в которую входит данный диск (в нашем случае пусто, так как мы еще не добавили его в группу).
- PV Size — размер диска.
- Allocatable — распределение по группам. Если NO, то диск еще не задействован и его необходимо для использования включить в группу.
- PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0.
- Total PE — количество физических экстентов.
- Free PE — количество свободных физических экстентов.
- Allocated PE — распределенные экстенты.
- PV UUID — идентификатор физического раздела.
2. Создание групп томов
Инициализированные на первом этапе диски должны быть объединены в группы.
Группа может быть создана:
vgcreate vg01 /dev/sdb /dev/sdc
* где vg01 — произвольное имя создаваемой группы; /dev/sdb, /dev/sdc — наши диски.
Просмотреть информацию о созданных группах можно командой:
На что мы получим, примерно, следующее:
— Volume group —
VG Name vg01
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 1,99 GiB
PE Size 4,00 MiB
Total PE 510
Alloc PE / Size 0 / 0
Free PE / Size 510 / 1,99 GiB
VG UUID b0FAUz-wlXt-Hzqz-Sxs4-oEgZ-aquZ-jLzfKz
- VG Name — имя группы.
- Format — версия подсистемы, используемая для создания группы.
- Metadata Areas — область размещения метаданных. Увеличивается на единицу с созданием каждой группы.
- VG Access — уровень доступа к группе томов.
- VG Size — суммарный объем всех дисков, которые входят в группу.
- PE Size — размер физического фрагмента (экстента).
- Total PE — количество физических экстентов.
- Alloc PE / Size — распределенное пространство: колическтво экстентов / объем.
- Free PE / Size — свободное пространство: колическтво экстентов / объем.
- VG UUID — идентификатор группы.
3. Создание логических томов
Последний этап — создание логического раздела их группы томов командой lvcreate. Ее синтаксис:
Примеры создания логических томов:
lvcreate -L 1G vg01
* создание тома на 1 Гб из группы vg01.
lvcreate -L50 -n lv01 vg01
* создание тома с именем lv01 на 50 Мб из группы vg01.
lvcreate -l 40%VG vg01
* при создании тома используется 40% от дискового пространства группы vg01.
lvcreate -l 100%FREE -n lv01 vg01
* использовать все свободное пространство группы vg01 при создании логического тома.
* также можно использовать %PVS — процент места от физического тома (PV); %ORIGIN — размер оригинального тома (применяется для снапшотов).
Посмотрим информацию о созданном томе:
— Logical volume —
LV Path /dev/vg01/lv01
LV Name lv01
VG Name vg01
LV UUID 4nQ2rp-7AcZ-ePEQ-AdUr-qcR7-i4rq-vDISfD
LV Write Access read/write
LV Creation host, time vln.dmosk.local, 2019-03-18 20:01:14 +0300
LV Status available
# open 0
LV Size 52,00 MiB
Current LE 13
Segments 1
Allocation inherit
Read ahead sectors auto
— currently set to 8192
Block device 253:2
- LV Path — путь к устройству логического тома.
- LV Name — имя логического тома.
- VG Name — имя группы томов.
- LV UUID — идентификатор.
- LV Write Access — уровень доступа.
- LV Creation host, time — имя компьютера и дата, когда был создан том.
- LV Size — объем дискового пространства, доступный для использования.
- Current LE — количество логических экстентов.
Создание файловой системы и монтирование тома
Чтобы начать использовать созданный том, необходимо его отформатировать, создав файловую систему и примонтировать раздел в каталог.
Файловая система
Процесс создания файловой системы на томах LVM ничем не отличается от работы с любыми другими разделами.
Например, для создания файловой системы ext4 вводим:
* vg01 — наша группа томов; lv01 — логический том.
Для создания, например, файловой системы xfs вводим:
Монтирование
Как и в случае с файловой системой, процесс монтирования не сильно отличается от разделов, созданных другими методами.
Для разового монтирования пользуемся командой:
mount /dev/vg01/lv01 /mnt
* где /dev/vg01/lv01 — созданный нами логический том, /mnt — раздел, в который мы хотим примонтировать раздел.
Для постоянного монтирования раздела добавляем строку в fstab:
/dev/vg01/lv01 /mnt ext4 defaults 1 2
* в данном примере мы монтируем при загрузке системы том /dev/vg01/lv01 в каталог /mnt; используется файловая система ext4.
Проверяем настройку fstab, смонтировав раздел:
Проверяем, что диск примонтирован:
Просмотр информации
Разберемся, как получить информацию о дисковых накопителях в системе.
1. Для общего представления дисков, разделов и томов вводим:
Мы получим что-то на подобие:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 29G 0 part
sys-root 253:0 0 27G 0 lvm /
sys-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
sdc 8:32 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
vg01-sn01-cow 253:4 0 500M 0 lvm
vg01-sn01 253:5 0 1G 0 lvm
sdd 8:48 0 1G 0 disk
* как видим, команда отображает корневое блочное устройство, какие разделы из него сделаны и в какие логические тома организованы из некоторых из разделов.
2. Получить информацию о проинициализированных для LVM дисков:
Источник