Как изменить размер разделов LVM в Linux
Расширьте или уменьшите группу томов и размер логического тома в Linux
В предыдущей статье мы рассмотрели что такое LVM и как создавать группы томов и логические тома в Linux. Эта статья научит вас, как изменять размеры разделов LVM, т. е. расширять размер группы томов и логического тома и уменьшать/сжимать размер логического тома в Linux.
Если вы хотите увеличить размер логического тома, вам следует проверить, есть ли в свободном пуле (т. е. группе томов) нераспределенные места.
Если в свободном пуле не осталось места, вам придется выполнить любой из следующих шагов, чтобы увеличить пространство.
- Проверьте, есть ли в какой-либо группе томов свободное место, которое можно использовать. В этом случае добавьте пространство обратно в группу томов и увеличьте размер нового тома.
- Добавьте диск, инициализируйте его как физический том и добавьте в группу томов, с помощью которой вы сможете расширить размер логического тома.
Моя существующая установка
В демонстрационных целях я создал тестовую машину Ubuntu 20.04 с использованием Vagrant и Virtualbox. У меня есть два диска, которые инициализируются как физический том.
sudo pvscan
Пример вывода:
PV /dev/sdc VG ostechnix_files lvm2 [<5.00 GiB / 96.00 MiB free]
PV /dev/sdd lvm2 [10.00 GiB]
Total: 2 [<15.00 GiB] / in use: 1 [<5.00 GiB] / in no VG: 1 [10.00 GiB]
Среди этих двух дисков только раздел /dev/sdc
добавляется в группу томов ostechnix_files
и создается логический объем от этого.
sudo lvdisplay
Пример вывода:
--- Logical volume ---
LV Path /dev/ostechnix_files/guides
LV Name guides
VG Name ostechnix_files
LV UUID dc1gzT-cyLX-axdh-0EpD-GHBB-un8s-B5JAAc
LV Write Access read/write
LV Creation host, time ubuntu, 2022-12-04 15:33:59 +0000
LV Status available
# open 1
LV Size 4.90 GiB
Current LE 1255
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
Расширение группы томов и логического тома
В свободном пуле (VG) не осталось места для увеличения размера логического тома, поэтому мне нужно сначала добавить место в группу томов, чтобы расширить логические тома.
sudo vgdisplay ostechnix_files | grep -i Free
Free PE / Size 24 / 96.00 MiB
У меня уже есть диск объемом 10 ГБ, инициализированный как физический том. Инструкции по созданию PV можно найти в Вводной статье LVM.
sudo pvdisplay /dev/sdd
"/dev/sdd" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID obm8bR-pIUs-VmWc-BN61-xAXQ-WZmm-WtCsOT
Расширить группу томов
Мы можем использовать команду vgextend
, чтобы добавить новое инициализированное пространство в группу томов (т. е. ostechnix_files
).
##Syntax
vgextend <volume-group-name> <physical-volume>
Теперь мы запускаем команду vgextend, чтобы добавить пространство в группу томов ostechnix_files
.
sudo vgextend ostechnix_files /dev/sdd
Volume group "ostechnix_files" successfully extended
Вы можете запустить любую из следующих команд, чтобы получить путь к логическому тому, размер которого вы хотите увеличить.
sudo lvdisplay
sudo lvdisplay | grep -i path
LV Path /dev/ostechnix_files/guides
Расширить логический том
Мы можем использовать команду lvextend
, чтобы увеличить размер логического тома.
Я увеличиваю размер с 4,9 ГБ до 6,9 ГБ, добавляя 2 ГБ из свободного пула (VG).
sudo lvextend -L +2G /dev/ostechnix_files/guides
Здесь +2G
означает, что мы увеличиваем размер на 2 ГБ.
Size of logical volume ostechnix_files/guides changed from 4.90 GiB (1255 extents) to 6.90 GiB (1767 extents).
Logical volume ostechnix_files/guides successfully resized.
Теперь вы можете проверить размер LV, выполнив любую из следующих команд.
sudo lvdisplay
sudo lvdisplay | grep -i size
LV Size 6.90 GiB
Обратите внимание, что изменение размера привело только к увеличению размера тома, но не к размеру файловой системы. Мы можем проверить это с помощью команды df
:
df -h /dev/ostechnix_files/guides
Пример вывода:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ostechnix_files-guides 4.8G 20M 4.5G 1% /mnt
Мы можем увеличить размер файловой системы с помощью команды resize2fs
. Изменение размера можно выполнить без размонтирования файловой системы.
sudo resize2fs /dev/mapper/ostechnix_files-guides
Пример вывода:
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ostechnix_files-guides is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mapper/ostechnix_files-guides is now 1809408 (4k) blocks long.
Теперь давайте проверим, действительно ли размер раздела увеличен с помощью команды df
:
df -h /dev/mapper/ostechnix_files-guides
Пример вывода:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ostechnix_files-guides 6.8G 23M 6.4G 1% /mnt
Как видно из приведенного выше вывода, группа томов расширена до 6,8 ГБ.
Уменьшите или сократите логический том
Как уже говорилось в предыдущем разделе, иногда вам может потребоваться позаимствовать некоторое пространство у существующего логического тома и добавить его к другим томам. Для этого вам необходимо сначала сжать логический том и добавить пространство обратно в группу томов. Затем вы увеличите размер логического тома из свободного пула (VG).
Первым шагом является размонтирование файловой системы. Вы не можете сжать том или файловую систему, когда файловая система смонтирована.
umount <file-system-path>
Чтобы убедиться в отсутствии проблем с томом, выполните команду fsck
.
sudo fsck /dev/mapper/ostechnix_files-guides
Пример вывода:
fsck from util-linux 2.34
e2fsck 1.45.5 (07-Jan-2020)
/dev/mapper/ostechnix_files-guides: clean, 11/449792 files, 50275/1809408 blocks
Теперь размер файловой системы можно уменьшить. Я собираюсь изменить размер файловой системы до 4 ГБ.
Для этого мы используем команду resize2fs
:
sudo resize2fs /dev/mapper/ostechnix_files-guides 4G
Пример вывода:
resize2fs 1.45.5 (07-Jan-2020)
Resizing the filesystem on /dev/mapper/ostechnix_files-guides to 1048576 (4k) blocks.
The filesystem on /dev/mapper/ostechnix_files-guides is now 1048576 (4k) blocks long.
Теперь запустите команду lvreduce
, чтобы сжать логический том и добавить его обратно в группу томов. Здесь я освобождаю 2 ГБ из LV.
sudo lvreduce -L -2G /dev/ostechnix_files/guides
Здесь -2G
означает, что мы уменьшаем размер на 2 ГБ.
Пример вывода:
WARNING: Reducing active logical volume to 4.90 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce ostechnix_files/guides? [y/n]: y
Size of logical volume ostechnix_files/guides changed from 6.90 GiB (1767 extents) to 4.90 GiB (1255 extents).
Logical volume ostechnix_files/guides successfully resized.
Теперь пространство снова добавлено в группу томов. Мы можем проверить это с помощью команды vgdisplay
:
vgdisplay ostechnix_files | grep -i "/ Size"
Пример вывода:
Alloc PE / Size 1255 / 4.90 GiB
Free PE / Size 2583 / <10.09 GiB
Нам нужно перемонтировать существующую файловую систему, которую мы размонтировали, чтобы сжать файловую систему. Можно безопасно запустить команду fsck
еще раз, чтобы проверить наличие проблем.
sudo fsck /dev/mapper/ostechnix_files-guides
sudo resize2fs /dev/mapper/ostechnix_files-guides
Теперь смонтируйте файловую систему с помощью команды:
mount /dev/mapper/ostechnix_files-guides /mnt/
Заключение
На этом этапе вы должны иметь достаточное представление о изменении размера разделов LVM, если вы следовали этой статье и выполняли практические действия.
Как видите, увеличение размера группы томов и логического тома является простым и понятным. Однако уменьшение размера логического тома следует выполнять с особой осторожностью, поскольку это может привести к повреждению существующих данных.
Читать далее:
- Как использовать моментальный снимок LVM для резервного копирования данных в Linux