Расширение диска LVM без изменения структуры

Примечание

Менеджер логических томов LVM — подсистема Linux и OS/2, объединяющая разделы одного или нескольких дисков в логические тома. LVM на базе device mapper создаёт уровень абстракции между физическими дисками или обычными разделами и файловой системой. Разделы становятся физическими томами (PV), объединяются в группу томов (VG), а та делится на логические тома (LV). Для файловой системы LV выглядит как обычное блочное устройство, хотя его данные могут располагаться на нескольких физических устройствах.

Исходные данные

Операционная система

Linux (Ubuntu 16.04.6 LTS)

Файловая система

ext4

Способ распределения дискового пространства

LVM

Исходный размер диска

5 ГБ

Размер диска после расширения

10 ГБ

Команда fdisk показывает, что ОС видит диск /dev/vda размером 10 ГБ, но раздел LVM /dev/vda1 занимает только 5 ГБ:

fdisk -l /dev/vda

    Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x71473ce9

    Device     Boot Start      End  Sectors Size Id Type
    /dev/vda1  *     2048 10483711 10481664   5G 8e Linux LVM

Следующие операции расширят корневой раздел на всё доступное пространство.

1. Проверьте корневой раздел. До изменения его размер составляет 4,8 ГБ:

df -h /

    Filesystem                  Size   Used  Avail Use% Mounted on
    /dev/mapper/vg0-rootfs      4.8G  1.8G  2.8G  40% /
  1. Расширьте раздел vda1 до 10 ГБ с помощью Parted.

  • Откройте диск командой parted:

parted /dev/vda
  • Просмотрите сведения о диске и разделах:

(parted) print

    Model: Virtio Block Device (virtblk)
    Disk /dev/vda: 10.7GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:

    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  5368MB  5367MB  primary               boot, lvm
  • Увеличьте раздел 1 с 5367 МБ до максимального размера, указанного выше — 10,7 ГБ:

(parted) resizepart 1

    End?  [5368MB]? 10.7GB
  • Убедитесь, что vda1 занимает всё доступное пространство:

(parted) print

    Model: Virtio Block Device (virtblk)
    Disk /dev/vda: 10.7GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:

    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  10.7GB  10.7GB  primary               boot, lvm
  • Завершите работу Parted:

(parted) quit
  1. Расширьте LVM с корневым разделом.

  • Расширьте физический том:

pvresize /dev/vda1

    Physical volume "/dev/vda1" changed
    1 physical volume(s) resized / 0 physical volume(s) not resized
  • Повторно просканируйте логические тома:

lvscan

    ACTIVE            '/dev/vg0/rootfs' [5.00 GiB] inherit
  • Расширьте логический том на всё свободное пространство, используя имя из предыдущего результата:

lvextend /dev/vg0/rootfs -l +100%FREE

      Size of logical volume vg0/rootfs changed from 5.00 GiB (1279 extents) to 9.96 GiB (2550 extents).
      Logical volume rootfs successfully resized.

4. Расширьте файловую систему на весь доступный размер, используя имя тома из шага 1:

resize2fs /dev/mapper/vg0-rootfs

    resize2fs 1.42.13 (17-May-2015)
    Filesystem at /dev/mapper/vg0-rootfs is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/mapper/vg0-rootfs is now 2611200 (4k) blocks long.

5. Проверьте результат. Размер корневого раздела должен составлять 9,7 ГБ:

df -h /

    Filesystem                  Size   Used  Avail Use% Mounted on
    /dev/mapper/vg0-rootfs      9.7G  1.9G  7.5G  20% /