====== Увеличиваем 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)
(автоматически подставляется последний сектор)
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
{{tag>linux ubuntu centos lvm increase_disk_size растянуть_диск увеличиваем_раздел}}