Статья Как добавить дополнительный второй жесткий диск в Linux LVM и увеличить размер хранилища
На моем домашнем сервере Linux установлен диск на 250 ГБ. Я только что купил новый 250 ГБ SATA-диск, и я хочу добавить новый диск в мой существующий том LVM, чтобы увеличить его размер до 500 ГБ. Как добавить диск в LVM и расширить объем LVM в операционной системе Linux?
- Никаких ограничений на размер диска;
- Увеличена пропускная способность диска
- Объемы зеркалирования для критически важных бизнес-данных;
- Снимки тома;
- Легкое резервное копирование и восстановление с использованием моментальных снимков;
- Простое перемещение данных;
- Изменение размеров пулов хранения (добавление или удаление дисков) без обязательного переформатирования дисков.
Внимание: Будьте осторожны с lvm / mkfs.ext4 и другими командами, а также с именами устройств, т.к. если имя устройства задано неверно, это может уничтожить все данные. Соблюдайте осторожность и всегда держите полные резервные копии.
Шаг 1 – Узнать информацию о существующих LVM
- Физические тома (ФТ(PV)) – фактические (например, /dev/sda, /dev,sdb, /dev/vdb и т.д.)
- Группы томов (ГТ(VG)) – физические тома объединяются в группы томов. (например, my_vg = /dev/sda + /dev/sdb .)
- Логические тома (ЛТ(LV)) – группа томов, в свою очередь, делится на логические тома (например, my_vg делится на my_vg/data, my_vg/backups, my_vg/home, my_vg/mysqldb и т.д.)
Как отобразить информацию о физических томах (pv)
Введите следующую команду pvs, чтобы просмотреть информацию о физических томах:
$ sudo pvs
Примеры возможных выводов данных:
Итак, в настоящее время мой LVM включает физический том (фактический диск), называемый /dev/vda5 . Чтобы просмотреть подробную информацию о свойствах, введите:
$ sudo pvdisplay
Примеры возможных выводов данных:
Из вышеуказанного вывода ясно видно, что наша группа томов с именем ubuntu-box-1-vg сделана из физического тома с именем /dev/vda5 .
Как отобразить информацию о LVM группе томов (vg)
Введите любую из следующих команд vgs/vgdisplay vgs , чтобы просмотреть информацию о группах томов и их свойствах:
$ sudo vgs
$ sudo vgdisplay
Примеры возможных выводов данных:
Как отобразить информацию о LVM логическом томе (lv)
Введите любую из следующих команд lvs command / lvdisplay , чтобы просмотреть информацию о группах томов и их свойствах:
$ sudo lvs
$ sudo lvdisplay
Примеры возможных выводов данных:
- /dev/ubuntu-box-1-vg/root – корневая файловая система;
- /dev/ubuntu-box-1-vg/swap_1 – пространство для свопинга.
Шаг 2 – Узнайте информацию о новом диске
Вам нужно добавить новый диск на свой сервер. В этом примере для демонстрационной цели я добавил новый диск, который имеет размер 5GiB. Для того чтобы узнать информацию о запуске новых дисков:
$ sudo fdisk –l
$ sudo fdisk -l | grep '^Disk /dev/'
Примеры возможных выводов данных:
Другой вариант – сканировать все видимые устройства для LVM2:
$ sudo lvmdiskscan
Примеры возможных выводов данных:
/dev/ram0 [ 64.00 MiB] /dev/ubuntu-box-1-vg/root [ 37.49 GiB] /dev/ram1 [ 64.00 MiB] /dev/ubuntu-box-1-vg/swap_1 [ 2.00 GiB] /dev/vda1 [ 487.00 MiB] /dev/ram2 [ 64.00 MiB] /dev/ram3 [ 64.00 MiB] /dev/ram4 [ 64.00 MiB] /dev/ram5 [ 64.00 MiB] /dev/vda5 [ 39.52 GiB] LVM physical volume /dev/ram6 [ 64.00 MiB] /dev/ram7 [ 64.00 MiB] /dev/ram8 [ 64.00 MiB] /dev/ram9 [ 64.00 MiB] /dev/ram10 [ 64.00 MiB] /dev/ram11 [ 64.00 MiB] /dev/ram12 [ 64.00 MiB] /dev/ram13 [ 64.00 MiB] /dev/ram14 [ 64.00 MiB] /dev/ram15 [ 64.00 MiB] /dev/vdb [ 5.00 GiB] 2 disks 18 partitions 0 LVM physical volume whole disks 1 LVM physical volume
Шаг 3 – Создание физических томов (pv) на новом диске под названием /dev/vdb
Введите следующую команду:
$ sudo pvcreate /dev/vdb
Примеры возможных выводов данных:
Physical volume "/dev/vdb" successfully created
Теперь выполните следующую команду для проверки:
$ sudo lvmdiskscan –l
Примеры возможных выводов данных:
WARNING: only considering LVM devices /dev/vda5 [ 39.52 GiB] LVM physical volume /dev/vdb [ 5.00 GiB] LVM physical volume 1 LVM physical volume whole disk 1 LVM physical volume
Шаг 4 – Добавление недавно созданного физического тома (pv) с именем /dev/vdb в существующий логический том (lv)
Введите следующую команду для добавления физического тома /dev/vdb в группу томов «ubuntu-box-1-vg»:
$ sudo vgextend ubuntu-box-1-vg /dev/vdb
Примеры возможных выводов данных:
Volume group "ubuntu-box-1-vg" successfully extended
Наконец, вам нужно расширить /dev/ubuntu-box-1-vg/root , чтобы создать диск общим размером 45GB (/dev/vdb (5G) + существующий /dev/ubuntu-box-1-vg/root (40G)).
$ sudo lvm lvextend -l +100%FREE /dev/ubuntu-box-1-vg/root
Примеры возможных выводов данных:
Size of logical volume ubuntu-box-1-vg/root changed from 37.49 GiB (9597 extents) to 42.52 GiB (10885 extents). Logical volume root successfully resized.
Однако, если вы запустите df -h или любую другую команду, вы все равно увидите /dev/ubuntu-box-1-vg/root как 40G. Для увеличения файловой системы, созданной внутри «корневого» тома, необходимо выполнить следующую команду:
$ sudo resize2fs -p /dev/mapper/ubuntu--box--1--vg-root
Примеры возможных выводов данных:
resize2fs 1.42.13 (17-May-2015) Filesystem at /dev/mapper/ubuntu--box--1--vg-root is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 3 The filesystem on /dev/mapper/ubuntu--box--1--vg-root is now 11146240 (4k) blocks long.
Теперь выполните проверку:
$ df –H
Примеры возможных выводов данных:
Filesystem Size Used Avail Use% Mounted on udev 1.1G 0 1.1G 0% /dev tmpfs 146M 12M 135M 9% /run /dev/mapper/ubuntu--box--1--vg-root 45G 2.3G 41G 6% / tmpfs 512M 0 512M 0% /dev/shm tmpfs 5.3M 0 5.3M 0% /run/lock tmpfs 512M 0 512M 0% /sys/fs/cgroup /dev/vda1 495M 109M 361M 24% /boot tmpfs 103M 0 103M 0% /run/user/0
Перевод: Анна Давыдова
Источник:
Ссылка скрыта от гостей
- Установка и настройка Apache, PHP, MySQL, phpMyAdmin на Linux (LAMP)
- Установка и настройка сервера Apache, PHP, MySQL, phpMyAdmin на Windows 10
- Установка Adobe Photoshop CS6 на Linux (очень простой способ)
Как работать с LVM

Обновлено: 29.04.2021 Опубликовано: 23.03.2019
Тематические термины: LVM, Linux. В статье описаны основные моменты использования LVM для организации дисковой системы в Linux. Она поможет как чайникам разобраться с принципами ее работы, так и уже знающим LVM в качестве шпаргалки. Используемые команды одинаково подойдут как для систем Red Hat / CentOS, так и Debian / Ubuntu.
Уровни абстракции
- Физический уровень (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 дисков:
3. Посмотреть информацию о группах LVM.
4. Посмотреть информацию о логических томах можно также двумя способами — краткая информация:
* команда покажет все логические разделы.
Для более подробной информации о логических томах вводим:
5. Для поиска всех устройств, имеющих отношение к LVM, вводим:
Увеличение томов
Увеличение размера тома может выполняться с помощью добавления еще одного диска или при увеличении имеющихся дисков (например, увеличение диска виртуальной машины). Итак, процедура выполняется в 4 этапа:
1. Расширение физического тома
Расширение физического раздела можно сделать за счет добавление нового диска или увеличение дискового пространства имеющегося (например, если диск виртуальный).
а) Если добавляем еще один диск.
Инициализируем новый диск:
* в данном примере мы инициализировали диск sdd.
Проверяем объем физического тома:
б) Если увеличиваем дисковое пространство имеющегося диска.
Увеличиваем размер физического диска командой:
* где /dev/sda — диск, который был увеличен.
Проверяем объем физического тома:
2. Добавление нового диска к группе томов
Независимо от способа увеличения физического тома, расширяем группу томов командой:
vgextend vg01 /dev/sdd
* данная команда расширит группу vg01 за счет добавленого или расширенного диска sdd.
Результат можно увидеть командой:
3. Увеличение логического раздела
Выполняется одной командой.
а) все свободное пространство:
lvextend -l +100%FREE /dev/vg01/lv01
* данной командой мы выделяем все свободное пространство группы томов vg01 разделу lv01.
б) определенный объем:
lvextend -L+30G /dev/vg01/lv01
* данной командой мы добавляем 30 Гб от группы томов vg01 разделу lv01.
в) до нужного объема:
lvextend -L500G /dev/vg01/lv01
* данной командой мы доводим наш раздел до объема в 500 Гб.
Результат можно увидеть командой:
Обратить внимание нужно на опцию LV Size:
.
LV Status available
# open 1
LV Size Current LE 765
.
4. Увеличение размера файловой системы
Чтобы сама система увидела больший объем дискового пространства, необходимо увеличить размер файловой системы.
Посмотреть используемую файловую систему:
Для каждой файловой системы существуют свои инструменты.
ext2/ext3/ext4:
XFS:
Reiserfs:
Уменьшение томов
Размер некоторый файловых систем, например, XFS уменьшить нельзя. Из положения можно выйти, создав новый уменьшенный том с переносом на него данных и последующим удалением.
LVM также позволяет уменьшить размер тома. Для этого необходимо выполнить его отмонтирование, поэтому для уменьшения системного раздела безопаснее всего загрузиться с Linux LiveCD. Далее выполняем инструкцию ниже.
Отмонтируем раздел, который нужно уменьшить:
Выполняем проверку диска:
e2fsck -fy /dev/vg01/lv01
Уменьшаем размер файловой системы:
resize2fs /dev/vg01/lv01 500M
Уменьшаем размер тома:
lvreduce -L-500 /dev/vg01/lv01
На предупреждение системы отвечаем y:
WARNING: Reducing active logical volume to 524,00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
Очень важно, чтобы сначала был уменьшен размер файловой системы, затем тома. Также важно не уменьшить размер тома больше, чем файловой системы. В противном случае данные могут быть уничтожены. Перед выполнением операции, обязательно создаем копию важных данных.
Удаление томов
Если необходимо полностью разобрать LVM тома, выполняем следующие действия.
* где /mnt — точка монтирования для раздела.
Удаляем соответствующую запись из fstab (в противном случае наша система может не загрузиться после перезагрузки):
#/dev/vg01/lv01 /mnt ext4 defaults 1 2
* в данном примере мы не удалили, а закомментировали строку монтирования диска.
Смотрим информацию о логичеких томах:
Теперь удаляем логический том:
На вопрос системы, действительно ли мы хотим удалить логических том, отвечаем да (y):
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
* если система вернет ошибку Logical volume contains a filesystem in use, необходимо убедиться, что мы отмонтировали том.
Смотрим информацию о группах томов:
Удаляем группу томов:
Убираем пометку с дисков на использование их для LVM:
* в данном примере мы деинициализируем диски /dev/sdb, /dev/sdc, /dev/sdd.
В итоге мы получим:
Labels on physical volume «/dev/sdb» successfully wiped.
Labels on physical volume «/dev/sdc» successfully wiped.
Labels on physical volume «/dev/sdd» successfully wiped.
Создание зеркала
С помощью LVM мы может создать зеркальный том — данные, которые мы будем на нем сохранять, будут отправляться на 2 диска. Таким образом, если один из дисков выходит из строя, мы не потеряем свои данные.
Зеркалирование томов выполняется из группы, где есть, минимум, 2 диска.
1. Сначала инициализируем диски:
* в данном примере sdd и sde.
2. Создаем группу:
vgcreate vg02 /dev/sd
3. Создаем зеркальный том:
lvcreate -L200 -m1 -n lv-mir vg02
* мы создали том lv-mir на 200 Мб из группы vg02.
. мы увидим что-то на подобие:
sdd 8:16 0 1G 0 disk
vg02-lv—mir_rmeta_0 253:2 0 4M 0 lvm
vg02-lv—mir 253:6 0 200M 0 lvm
vg02-lv—mir_rimage_0 253:3 0 200M 0 lvm
vg02-lv—mir 253:6 0 200M 0 lvm
sde 8:32 0 1G 0 disk
vg02-lv—mir_rmeta_1 253:4 0 4M 0 lvm
vg02-lv—mir 253:6 0 200M 0 lvm
vg02-lv—mir_rimage_1 253:5 0 200M 0 lvm
vg02-lv—mir 253:6 0 200M 0 lvm
* как видим, на двух дисках у нас появились разделы по 200 Мб.
Работа со снапшотами
Снимки диска позволят нам откатить состояние на определенный момент. Это может послужить быстрым вариантом резервного копирования. Однако нужно понимать, что данные хранятся на одном и том же физическом носителе, а значит, данный способ не является полноценным резервным копированием.
Создание снапшотов для тома, где уже используется файловая система XFS, имеет некоторые нюансы, поэтому разберем разные примеры.
Создание для не XFS:
lvcreate -L500 -s -n sn01 /dev/vg01/lv01
* данная команда помечает, что 500 Мб дискового пространства устройства /dev/vg01/lv01 (тома lv01 группы vg01) будет использоваться для snapshot (опция -s).
Создание для XFS:
xfs_freeze -f /mnt; lvcreate -L500 -s -n sn01 /dev/vg01/lv01; xfs_freeze -u /mnt
* команда xfs_freeze замораживает операции в файловой системе XFS.
Посмотрим список логических томов:
Получим что-то на подобие:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg01 owi-aos— 1,00g
sn01 vg01 swi-a-s— 500,00m lv01 2,07
* поле Origin показывает, к какому оригинальному логическому тому относится LV, например, в данной ситуации наш раздел для снапшотов относится к lv01.
Также можно посмотреть изменения в томах командой:
Мы должны увидеть что-то подобное:
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
С этого момента все изменения пишутся в vg01-sn01-cow, а vg01-lv01-real фиксируется только для чтения и мы может откатиться к данному состоянию диска в любой момент.
Содержимое снапшота можно смонтировать и посмотреть, как обычный раздел:
Монтирование не XFS:
mount /dev/vg01/sn01 /tmp/snp
mount -o nouuid,ro /dev/vg01/sn01 /tmp/snp
Для выполнения отката до снапшота, выполняем команду:
lvconvert —merge /dev/vg01/sn01
Импорт диска из другой системы
Если мы перенесли LVM-диск с другого компьютера или виртуальной машины и хотим подключить его без потери данных, то нужно импортировать том.
Если есть возможность, сначала нужно на старом компьютере отмонтировать том и сделать его экспорт:
* предположим, что диск примонтирован в /mnt.
Деактивируем группу томов:
vgchange -an vg_test
* в данном примере наша группа называется vg_test.
После переносим диск на новый компьютер.
На новой системе сканируем группы LVM следующей командой:
. система отобразит все LVM-тома (подключенные и нет), например:
PV /dev/sdb VG vg_test lvm2 [1020,00 MiB / 0 free]
PV /dev/sda5 VG ubuntu-vg lvm2 [11,52 GiB / 0 free]
Total: 2 [12,52 GiB] / in use: 2 [12,52 GiB] / in no VG: 0 [0 ]
* в данном примере найдено два диска с томами LVM — /dev/sdb (группа vg_test) и /dev/sda5 (группа ubuntu-vg).
В моем примере новый диск с группой vg_test — будум импортировать его. Вводим команду:
Возможны два варианта ответа:
1) если мы экспортировали том:
Volume group «vg_test» successfully imported
2) если не экспортировали:
Volume group «vg_test» is not exported
Так или иначе, группа томов должна появиться в нашей системе — проверяем командой:
. мы должны увидеть что-то на подобие:
— Volume group —
VG Name vg_test
System ID
Format lvm2
.
vgchange -ay vg_test
Готово. Для монтирования раздела, смотрим его командой:
. и монтируем в нужный каталог, например:
mount /dev/vg_test/lvol0 /mnt
* в данном примере мы примонтируем раздел lvol0 в группе томов vg_test к каталогу /mnt.
Работа с LVM из под Windows
По умолчанию, система Windows не умеет работать с томами LVM. Для реализации такой возможности, необходимо установить утилиту Virtual Volumes.
На данный момент на сайте разработчика имеется предупреждение, что программное обеспечение на тестировании и его не следует применять для разделов, где есть важные данные без резервных копий. В противном случае, данные можно потерять.
Возможные ошибки
Рассмотрим ошибки, с которыми можно столкнуться при работе с LVM.
Device /dev/sdX excluded by a filter
Данную ошибку можно встретить при попытке инициализировать диск командой pvcreate.
Причина: либо диск не полностью чист, либо раздел не имеет нужный тип.
Решение: в зависимости от типа проблемы, рассмотрим 2 варианта.
а) если добавляем целый диск.
Удаляем все метаданные с диска командой:
wipefs -a /dev/sdX
* где вместо X (или sdX) подсталвляем имя диска.
б) если добавляем раздел.
Открываем диск с помощью команды fdisk:
* где вместо X (или sdX) подсталвляем имя диска.
Смотрим список созданных на диске разделов:
Задаем тип раздела:
Выбираем номер раздела (например, раздел номер 3):
Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):
[OS] Добавляем диск в lvm без перезагрузки виртуальной машины

Привет, %username% ! Есть такая непередаваемая боль, как “заканчивается место на разделе”. Давайте рассмотрим как это провернуть на боевом сервере без остановки/перезагрузки и вообще сделаем красиво. Сразу скажу, что тут ничего сложного и с этим сможет справиться любой.
Немного вводной информации для понимания. Есть виртуальная машина на базе CentOS с дисковым пространством на 6.5ТБ (несколько дисков которые лежат на СХД). ОС установлена на LVM. Есть группа дисков огромным объёмом для хранения загружаемых пользователями файлов. Задача стоит такая: расширить раздел для пользовательских загрузок.
Приступим к самому простому варианту. Добавим диск и расширим volume group. Для начала надо подключиться к vCentre/vSphere Client и добавить новый диск (не буду показывать как это делается, потому что это просто). Далее после добавления диска в виртуальную машину нам надо заставить увидеть её этот новый диск. Провреяем сколько у нас сейчас свободного места на разделах:
df -h
После посмотрим какие диски присутствуют в системе:
fdisk -l
Заставим виртуалку просканировать устройства:
ls -la /sys/class/scsi_host/ echo - - - > /sys/class/scsi_host/host0/scan echo - - - > /sys/class/scsi_host/host1/scan echo - - - > /sys/class/scsi_host/host2/scan echo - - - > /sys/class/scsi_host/host3/scan
Количество host# у вас может отличаться — у меня их четыре как видно из примера выше. Далее проверяем как называется наш новый диск и появился ли он вообще:
fdisk -l
Далее мы добавляем на наш новый диск раздел (у меня это пусть будет sdd):
# fdisk /dev/sdd
Теперь перед нами консольная утилита для работы с дисками. Помощь вызывается по команде m . Мы же набираем команду p для просмотра текущих настроек диска. Потом добавляем новый раздел на диск командой n , после чего соглашаемся со всеми дефолтными значениями. Так же мы можем выбрать тип диска Linux LVM используя команду t или оставить по дефолту всё как есть. И закончив все настройки запишем их на диск командой w .
Теперь можно и расширять дисковое пространство, вот таким образом:
pvdisplay pvcreate /dev/sdd1 pvdisplay
Посмотрели на диски и увидели какой куда подключен. Далее посмотрим список volume group:
Посмотрели список volume group и выбрали тот который нам нужен. Теперь добавляем туда наш диск и расширяем объём на размер этого диска:
vgextend scan_volume /dev/sdd1 lvextend -l+100%FREE /dev/scan_volume/lv resize2fs /dev/scan_volume/lv df -h
Посмотрев на результаты скромного труда можем довольные налить чаю и отдохнуть. На этом всё!
Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат, а так же подписывайся на канал.
- centos
- lvm
- disks
Настройка и управление LVM разделами в Linux

04.02.2020

VyacheslavK

CentOS, Linux

комментариев 6
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
С помощью команды pvscan вы можете просканировать диски на предмет PV.
Следующий этап – создание группы томов. Для создания групп томов используется команда vgcreate. Чтобы объединить ранее помеченные диски, воспользуемся командой:
# vgcreate test /dev/vdb /dev/vdc
Volume group "test" successfully created
Чтобы проверить результат введите vgdisplay:

Как видим, диски объединены в группу test и VG Size показывает общий размер дисков.
Разберем информацию из листинга команды vgdisplay:
- VG Name – группа томов, в которую данный диск входит.
- Format – версия подсистемы lvm, которая используется для создание группы (в нашем случае версия 2)
- Metadata Areas – область метаданных
- VG Access – уровень доступа к группе логических томов
- VG Size – общий объем дисков, которые входят в группу
- PE Size — размер физического фрагмента
- Alloc PE / Size – распределенное пространство(количество и объем фрагментов)
После того, как мы создали общую группу для дисков, мы можем создать логический том на этой группы. При создании тома, используется команда lvcreate.
Чтобы в вашей группе создать логический том определенного размера и именем, используйте команду:
# lvcreate -L 5G test
Logical volume "lvol0" created.
Как видим из листинга, в группе test был создан логический том с именем lvol0 и размером 5G.
Если вы хотите сами задать имя, используйте флаг -n:
# lvcreate -L 5G -n test1 test
Logical volume "test1" created
Несколько примеров для создания логических томов с разными размерами:
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 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/нашдиск — инициализация диска для 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) Resizing the filesystem on /dev/test/test1 to 1048576 (4k) blocks. The filesystem on /dev/test/test1 is now 1048576 blocks long.
# lvreduce -L-4G /dev/test/test1
WARNING: Reducing active logical volume to 6.00 GiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce test/test1? [y/n]: y Size of logical volume test/test1 changed from 10.00 GiB (2560 extents) to 6.00 GiB (1536 extents). Logical volume test/test1 successfully resized.
Теперь уменьшим размер самого LVM тома:
lvreduce -L-4G /dev/test/test1
После чего, нужно примонтировать том обратно и проверить текущий размер:

Как видим, размер уменьшился до 4 Гб.
Удаление LVM групп и томов
Для удаления LVM томов, используется команда lvremove:

Чтобы удалить группу логических томов, используйте:
Volume group "test" successfully removed
Убрать метки с LVM дисков:
# pvremove /dev/vdb /dev/vdc
Labels on physical volume "/dev/vdb" successfully wiped. Labels on physical volume "/dev/vdc" successfully wiped.
Создание зеркальных томов LVM
LVM позволяет создать зеркальные тома для повышения отказоустойчивости хранения данных. В LVM зеркале данные одновременно хранятся на двух (или более) физических дисках (подобие RAID-1). Процедура создания зеркального тома в LVM.
- Инициализация дисков: pvcreate /dev/sd
- Создаем LVM группу: vgcreate mirror1 /dev/sd
- Создадим зеркальный LVM том: lvcreate -L 5g -m1 -n lvMirr1 VGmirror1
Инструменты LVM очень удобны для работы, с помощью них можно легко управлять томами, нарезать их на нужные вам размеры и с легкостью использовать под свои нужды. В данной статье я постарался затронуть все основные моменты в работе с LVM.
Предыдущая статья Следующая статья