Поиск по сайту:

Как изменить размер разделов 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

Статьи по данной тематике