Увеличиваем LVM корневого раздела

Виртуальный сервер на Ubuntu Server 14.04 LTS поднятый на VMware ESXi 5.5. Жесткий диск всего 10 Гб, LVM, все настройки по умолчанию.

Требуется: расширить диск до требуемого размера без создания дополнительных дисков. Все найденные решения начинаются с совета «добавляем новый диск». Это, конечно, здорово, но не то что нужно.

Как обычно - заходим в настройки виртуальной машины и увеличиваем диск.

Чтобы CentOS увидел новый диск надо дать команду

# echo 1 > /sys/block/sda/device/rescan

Смотрим разделы и тип FS:

# lsblk -a -o +FSTYPE
NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT FSTYPE
sda                 8:0    0   200G  0 disk
├─sda1              8:1    0   512M  0 part /boot      ext4
└─sda2              8:2    0 159.5G  0 part            LVM2_member
  ├─vg_os-lv_root 253:0    0 157.5G  0 lvm  /          ext4
  └─vg_os-lv_swap 253:1    0     2G  0 lvm  [SWAP]     swap
sr0                11:0    1  1024M  0 rom

Чтобы Red Hat Enterprise Linux увидел новый диск надо дать команду

# echo "- - -" > /sys/class/scsi_host/host#/scan

Все действия выполняем с правами root

Добавляем раздел

До начала работы у меня есть три раздела:

# fdisk -l
   Device  Boot    Start        End      Blocks   Id  System
/dev/sda1    *      2048     499711      248832   83  Linux
/dev/sda2         501758   20969471    10233857    5  Extended
/dev/sda5         501760   20969471    10233856   8e  Linux LVM

А места всего 10 ГБ, из них под корневой раздел отведено 8.5 Гб, а свободно после установки системы всего 7.1 Гб:

# df -h | grep G
/dev/mapper/store00--vg-root  8.5G  1.1G  7.1G  13%  /

Добавляем новый раздел:

# fdisk /dev/sda
n (новый раздел)
p (раздел будет primary)
3 (номер раздела 3)
20971519 (номер первого сектора, высчитывается как последний сектор 20969471 плюс 2048)
<Enter> (автоматически подставляется последний сектор)
t (изменяем тип вновь созданного раздела)
3 (номер нашего нового раздела)
8e (тип раздела Linux LVM)
w (сохранить изменения в таблице разделов и закрыть fdisk) 

Запускаем partprobe (kpartx) или перезагружаем сервер (обязательно!)

Работаем с LVM

Для начала инициализируем раздел в качестве физического тома в LVM:

# pvcreate /dev/sda3

и добавляем его в группу store00-vg:

# vgextend store00-vg /dev/sda3

Теперь расширяем логический том на все доступное пространство:

# lvextend -l +100%FREE /dev/mapper/store00--vg-root

И осталось только увеличить «на лету» файловую систему (внимание, далеко не каждая ФС умеет это делать!):

# resize2fs /dev/mapper/store00--vg-root

Готово, проверяем что получилось:

# df -h | grep G
/dev/mapper/store00--vg-root  48G  1.1G  45G  13%  /

Все, раздел увеличен.

Виртуальный сервер на CentOS 7. LVM собран из 3-х дисков sda, sdb, sdc. Файловая система: XFS. Задача: увеличить место путем расширения диска sdc.

  • Планируем работы: смотрим сколько места есть, сколько нужно, нет ли каких-то особенностей
  • (опционально) Выключаем ВМ
  • Расширяем (увеличиваем) существующий диск sdc в системе виртуализации
  • Загружаемся в ОС
  • Если увеличивали диск без выключения VM, даем команду:
    # echo 1 > /sys/block/sda/device/rescan
  • # pvdisplay

    не должен показывать что есть свободное место (ноли в «Free PE / Size»)

  • Смотрим:
    # parted /dev/sdc unit MB print free
  • Расширяем:
    # parted /dev/sdс resizepart 2 100%

    с правильным номером раздела (в примере это 2)

  • Расширяем physical volume до максимума:
    # pvresize /dev/sdc2
  • Проверяем изменился ли размер тома:
    # pvdisplay

    (должно появиться место в «Free PE / Size»)

  • Изменяем размер logical volume, используя максимум доступного места:
    # lvextend -l +100%FREE /dev/os/root
  • Изменяем размер файловой системы с учётом появившегося места. Если у нас XFS:
    # xfs_growfs /

    или в старых версиях:

    xfs_growfs /dev/mapper/os_vg_root
  • Если EXT4:
    # resize2fs /dev/mapper/store00--vg-root
  • Проверяем появилось ли место:
    # df -h
  • Все должно быть ОК

Начальные условия: виртуалка с Ubuntu 18.04, LVM нет, файловая система ext4

  • Проверяем текущее свободное место командой:
    df -h
  • Увеличиваем в гипервизоре размер диска (расширяем)
  • Запускаем рескан чтобы система увидела новый размер диска:
    echo 1 > /sys/class/block/sda/device/rescan
  • Смотрим реальный текущий размер диска:
    lsblk
  • Увеличиваем размер командой (необходимо изменить имя диска и номер партиции на свои):
    growpart /dev/sda 2
  • Раширяем файловую систему:
    resize2fs /dev/sda2
  • Проверяем текущее свободное место командой:
    df -h
  • ubuntu/lvm-increase.txt
  • Последнее изменение: 2024/03/19 17:53
  • fireball