Измениене размера LVM томов

Подготовка

VMWare

Зайдя в свойства виртуальной машины:

  1. Выбираем нужный жесткий диск
  2. Изменяем размер, до желаемого объема
  3. Нажимаем кнопку Ок

ProxMox

  1. Выбираем виртуальную машину, и открываем раздел Hardware
  2. Находим нужный диск и выделяем его.
  3. Вверху нажимаем кнопку Resize disk

Откроется окно, где необходимо ввести количество гигабайт, на которые желаем увеличить диск.

Проверка доступного пространства на диске

После увеличения размера диска необходимо, проверить, что система увидела доступное место. Для этого выполним команду:

fdisk -l

Вывод в моем случае был таким:

[root@lvm2 askadmin]# fdisk -l
Диск /dev/sda: 35 GiB, 37580963840 байт, 73400320 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xe51a470c
 
Устр-во    Загрузочный  начало    Конец  Секторы Размер Идентификатор Тип
/dev/sda1  *              2048  2099199  2097152     1G            83 Linux
/dev/sda2              2099200 41943039 39843840    19G            8e Linux LVM
 
 
Диск /dev/mapper/rl-root: 17 GiB, 18249416704 байт, 35643392 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
 
 
Диск /dev/mapper/rl-swap: 2 GiB, 2147483648 байт, 4194304 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт

Как можно видеть по первой же строчке вывода - система увидела добавленные мной 15ГБ (диск изначально был 20ГБ). Если же автоматически система не обнаружила добавленное место - может потребоваться запустить сканирование дисков вручную.
Выполнить это можно командой:

echo 1 > /sys/block/sda/device/rescan
Обратите внимание, что в мое случае речь идет про устройство /dev/sda в вашем оно может отличаться!

Изменение размера раздела на диске

Для изменения размера потребуется выполнить следующие шаги:

  • Необходимо переразметить диск. Для этого выполним следующую команду
    fdisk /dev/sda


    Мы войдем в меню утилиты fdisk для работы с дисками. Вывод будет примерно таким

    Добро пожаловать в fdisk (util-linux 2.32.1).
    Изменения останутся только в памяти до тех пор, пока вы не решите записать их.
    Будьте внимательны, используя команду write.
     
     
    Команда (m для справки):
  • Введем p и нажмем Enter. Это позволит просмотреть текущие разделы на диске:
    Команда (m для справки): p
    Диск /dev/sda: 35 GiB, 37580963840 байт, 73400320 секторов
    Единицы: секторов по 1 * 512 = 512 байт
    Размер сектора (логический/физический): 512 байт / 512 байт
    Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
    Тип метки диска: dos
    Идентификатор диска: 0x512fa909
     
    Устр-во    Загрузочный  начало    Конец  Секторы Размер Идентификатор Тип
    /dev/sda1  *              2048  2099199  2097152     1G            83 Linux
    /dev/sda2              2099200 41943039 39843840    19G            8e Linux LVM

    В моем случае разделов 2 и нас интересует только тот, который помечен как Linux LVM.

  • вводим d: <note warning>Команда сообщит об удалении раздела - не пугайтесь, данные сохранятся.</note>
    Команда (m для справки): d
    Номер раздела (1,2, default 2): 2
     
    Раздел 2 был удален.
     
    Команда (m для справки):
  • Теперь создаем новый раздел введя команду n:
    Команда (m для справки): n
    Тип раздела
       p   основной (1 первичный, 0 расширеный, 3 свободно)
       e   расширенный (контейнер для логических разделов)

    После чего система придложит выбрать тип раздела, жмем p:

    Выберите (по умолчанию - p):p

    Далее выбираем номер раздела (можно просто нажать Enter система присвоит номер раздела по умолчанию:

    Номер раздела (2-4, default 2):

    На вопросах о первом и последнем секторах тоже жмем Enter:

    Первый сектор (2099200-73400319, default 2099200):
    Последний сектор + число секторов или + размер{K,M,G,T,P} (2099200-73400319, default 73400

    Система сообщит, что создан новый раздел и что он подписан, как LVM_member

    Создан новый раздел 2 с типом 'Linux' и размером 34 GiB.
    Partition #2 contains a LVM2_member signature.
     
    Do you want to remove the signature? [Y] Да/[N] Нет: n

    Жмем N и двигаемся дальше.

  • Далее преобразуем раздел в LVM. Для этого последовательно вводим t, затем номер раздела (у меня 2) и тип тома в шестнадцатиричной системе (для LVM 8e:
    Команда (m для справки): t
    Номер раздела (1,2, default 2): 2
    Шестнадцатеричный код (введите L для получения списка кодов): 8e
     
    Тип раздела 'Linux' изменен на 'Linux LVM'.

    Появится сообщение, что Тип раздел успешно изменен.

  • После всего этого записываем внесенные изменения w:
    Команда (m для справки): w
    Таблица разделов была изменена.
    Синхронизируются диски.
  • И выходим из консоли q:
    Команда (m для справки): q
     
    [root@lvm askadmin]#

На этом этап по увеличению тома завершен и переходим к расщирению VG (Volume Group).

Расширение Physical Volume

Выполним команду:

pvdisplay

Как можем видеть из вывода этой команды, система считает, что Physical volume все еще 19ГБ

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rl_lvm
  PV Size               <19,00 GiB / not usable 3,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               PvruJt-UxaO-aZZw-U8Gr-glJ5-rE6c-C250A8

Для расширения воспользуемся командой:

 pvresize /dev/sda2

Получаем примерно следующий вывод:

Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Что говорит о том, что все прошло успешно. Для подтверждения вводим снова pvdisplay и получаем следующий вывод:

[root@lvm askadmin]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rl_lvm
  PV Size               <34,00 GiB / not usable 2,00 MiB
  Allocatable           yes
  PE Size               4,00 MiB
  Total PE              8703
  Free PE               3840
  Allocated PE          4863
  PV UUID               PvruJt-UxaO-aZZw-U8Gr-glJ5-rE6c-C250A8

Как видим размер physical volume изменился. Теперь если введем команду vgdisplay получим следующий вывод:

[root@lvm askadmin]# vgdisplay
  --- Volume group ---
  VG Name               rl_lvm
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <34,00 GiB
  PE Size               4,00 MiB
  Total PE              8703
  Alloc PE / Size       4863 / <19,00 GiB
  Free  PE / Size       3840 / 15,00 GiB
  VG UUID               qzwYbY-VF4p-Ak9S-eRSP-Ubhv-QldK-AjY1T3

Как видим нам стало доступно 15ГБ, которые мы можем потратить для изменения размера любого Logical Volume

Увеличиваем Logical Volume

Выполним команду lvdisplay, чтобы отобразить все доступные логические тома:

[root@lvm askadmin]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/rl_lvm/root
  LV Name                root
  VG Name                rl_lvm
  LV UUID                FS01Q8-wg6U-SC4t-jcqX-JZF1-5DET-1eyAr1
  LV Write Access        read/write
  LV Creation host, time lvm, 2022-04-06 13:51:05 +0700
  LV Status              available
  # open                 1
  LV Size                <17,00 GiB
  Current LE             4351
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
 
  --- Logical volume ---
  LV Path                /dev/rl_lvm/swap
  LV Name                swap
  VG Name                rl_lvm
  LV UUID                YFtfnn-4N9F-IcCr-P4oS-OI8S-jdl2-3pvGfi
  LV Write Access        read/write
  LV Creation host, time lvm, 2022-04-06 13:51:06 +0700
  LV Status              available
  # open                 2
  LV Size                2,00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

Как видим у меня в системе 2 Logical Volume (root и swap)
В данном выводе нас в первую очередь интересуют строки LV Path, в которых указан путь к устройству.
Теперь для изменеия размера LV мы воспользуемся командой lvextend:

[root@lvm askadmin]# lvextend -L +5GiB /dev/rl_lvm/root
  Size of logical volume rl_lvm/root changed from <17,00 GiB (4351 extents) to <22,00 GiB (5631 extents).
  Logical volume rl_lvm/root successfully resized.

Как видим сообщение гласит, что изменение размера прошло успешно.
Так же можно использовать команду со строчно l и указать расширяемый объем в блоках или процентах:

[root@lvm askadmin]# lvextend -l +30%FREE /dev/rl_lvm/root
  Size of logical volume rl_lvm/root changed from <22,00 GiB (5631 extents) to <25,00 GiB (6399 extents).
  Logical volume rl_lvm/root successfully resized.
Так как в моем случае, после приращения 5ГБ свободного места оставалось 10ГБ - команда прирастила еще 3ГБ расширив тем самым LV с 22ГБ до 25ГБ

Расширение файловой системы XFS

Если проверить доступное место в системе, то мы увидим, что несмотря на все проделанное root остался 16ГБ.

[root@lvm askadmin]# df -h
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
devtmpfs                  1,9G            0  1,9G            0% /dev
tmpfs                     1,9G            0  1,9G            0% /dev/shm
tmpfs                     1,9G         8,6M  1,9G            1% /run
tmpfs                     1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/mapper/rl_lvm-root    17G         1,8G   16G           11% /
/dev/sda1                1014M         252M  763M           25% /boot
tmpfs                     374M            0  374M            0% /run/user/1000

Это произошло потому, что файловая система все еще покрывает только 16ГБ пространства на диске. Нам необходимо «растянуть» файловую систему.
Для этого выполним следующую команду:

xfs_growfs /

Получим следующий вывод:

meta-data=/dev/mapper/rl_lvm-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 6552576

Теперь проверяем доступное место в системе:

[root@lvm askadmin]# df -h
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
devtmpfs                  1,9G            0  1,9G            0% /dev
tmpfs                     1,9G            0  1,9G            0% /dev/shm
tmpfs                     1,9G         8,6M  1,9G            1% /run
tmpfs                     1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/mapper/rl_lvm-root    25G         1,9G   24G            8% /
/dev/sda1                1014M         252M  763M           25% /boot
tmpfs                     374M            0  374M            0% /run/user/1000

Как видим корневой раздел увеличился до 24ГБ, что и требовалось.

Расширение ext4

Для расширения файловой системы используем команду:

resize2fs /dev/sdb1

Получим примерно следующий вывод:

resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/sdb1 is mounted on /srv/nav; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 19
The filesystem on /dev/sdb1 is now 39321344 (4k) blocks long.
main/linux/disk-resize.txt · Последнее изменение: 2024/10/28 08:49 — davlanas
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0