Увеличиваем LVM корневого раздела
Вариант 1. Начальные условия
Виртуальный сервер на Ubuntu Server 14.04 LTS поднятый на VMware ESXi 5.5. Жесткий диск всего 10 Гб, LVM, все настройки по умолчанию.
Требуется: расширить диск до требуемого размера без создания дополнительных дисков. Все найденные решения начинаются с совета «добавляем новый диск». Это, конечно, здорово, но не то что нужно.
Решение
Увеличиваем диск в VMware
Как обычно - заходим в настройки виртуальной машины и увеличиваем диск.
CentOS 7
Чтобы 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
Чтобы Red Hat Enterprise Linux увидел новый диск надо дать команду
# echo "- - -" > /sys/class/scsi_host/host#/scan
Увеличиваем диск в Linux
Все действия выполняем с правами 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% /
Все, раздел увеличен.
Вариант 2. Начальные условия
Виртуальный сервер на 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
- Все должно быть ОК
Вариант 3. Простой случай
Начальные условия: виртуалка с 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
Вариант 4. Начальные условия
Свежеустановленный сервер на Ubuntu. LVM собран автоматически инсталлятором. Задействован не весь объем диска. Задача: увеличить место путем расширения диска sdc.
Решение
- Проверяем текущее свободное место командой:
df -h
- Смотрим свободное место на LVM:
pvs && vgs && lvs
- Изменяем размер logical volume, используя максимум доступного места:
# lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
- Изменяем размер файловой системы с учётом появившегося места:
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
- Проверяем текущее свободное место командой:
df -h