Предположим, нам стало места на системном разделе в виртуальной машине под KVM/VMWare или вовсе в облаке какого-либо хостинга.После физического увеличения размера блочного устройства для виртуальной машины внутри ничего не поменяется, и система продолжит думать, что всё плохо.
Последовательность действий при использовании LVM такова:
1. Увеличиваем размер раздела, выделенного под LVM
2. Увеличиваем физический раздел pv
3. Увеличиваем логический раздел lv по аналогии с обычной системой разметки
4. Расширяем файловую систему на увеличенном разделе
В качестве примера используем облачный сервер от Селектела:
#fdisk -l Disk /dev/xvda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 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 Disk identifier: 0x000916ff Device Boot Start End Blocks Id System /dev/xvda1 * 2048 292863 145408 83 Linux /dev/xvda2 292864 16775167 8241152 8e Linux LVM Disk /dev/mapper/vg_system-root: 6387 MB, 6387924992 bytes 255 heads, 63 sectors/track, 776 cylinders, total 12476416 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 Disk identifier: 0x00000000 Disk /dev/mapper/vg_system-root doesn't contain a valid partition table Disk /dev/mapper/vg_system-swap: 2046 MB, 2046820352 bytes 255 heads, 63 sectors/track, 248 cylinders, total 3997696 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 Disk identifier: 0x00000000 Disk /dev/mapper/vg_system-swap doesn't contain a valid partition table
Как видим, в системе имеется раздел xvda, на котором с помощью LVM созданы томы под систему и раздел подкачки, но суммарный их объем в 8ГБ с небольшим отличается от размера блочного устройства xvda — 10ГБ. Добавим недостающие 2ГБ к системному разделу.
Для этого с помощью fdisk пересоздадим раздел xvda2, который займет всё доступное физическое пространство:
fdisk /dev/xvda p (запоминаем как выглядит текущая разметка) d 2 (удаляем имеющийся раздел) n p 2 (создаем новый раздел, первичный, под номером 2 - предложит по умолчанию) t 8e (меняем тип раздела на Linux LVM, список типов доступен по команде L) w (записываем новую конфигурацию разделов)
Новая таблица разметки не применяется до перезагрузки, но можно попробовать принудительно обновить данные командой partprobe из набора инструментов parted
partprobe /dev/xvda
После этого проверяем появившееся свободное место для LVM с помощью команды pvs
PV | VG | Fmt | Attr | PSize | PFree |
/dev/xvda2 | vg_system | lvm2 | a— | 8.23g | 1.76g |
Расширяем физический том LVM
pvresize /dev/xvda2
Увеличиваем логический том
lvresize -l +100%FREE /dev/vg_system/root
Растягиваем файловую систему на весь раздел
resize2fs /dev/vg_system/root
Ссылки: