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