Имеем один диск в виртуальной машине размером 40GB. ВМ работает под OS Ubuntu 16.04. Нужно увеличить корневой раздел на 10G при этом не останавливая виртуальную машину.
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 4096 bytesI/O size (minimum/optimal): 4096 bytes / 4096 bytesDisklabel type: gptDisk identifier: 87245036-2212-4699-9BA4-420AEE9FDF9ADevice Start End Sectors Size Type/dev/sda1 2048 1050623 1048576 512M EFI System/dev/sda2 1050624 2050047 999424 488M Linux filesystem/dev/sda3 2050048 83884031 81833984 39G Linux LVMЗдесь sda1 файлы UEFI, sda2 это /boot, а на sda3 создан LVM том.
root@konovalov1001:~# vgdisplay --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 39.02 GiB PE Size 4.00 MiB Total PE 9989 Alloc PE / Size 9989 / 39.02 GiB Free PE / Size 0 / 0 VG UUID k8gsGL-x03z-MfY4-24EU-yFyD-7jUM-djPvSEКак видим у нас одна группа ubuntu-vg и нет свободного места, что бы ее расширить (Free PE / Size 0 / 0)
Посмотрим логические тома:
root@konovalov1001:~# lvdisplay --- Logical volume --- LV Path /dev/ubuntu-vg/root LV Name root VG Name ubuntu-vg LV UUID nBK0Sf-pu53-i7p6-kPdR-a5RU-TGEa-w0jsyH LV Write Access read/write LV Creation host, time ubuntu, 2016-10-07 14:10:07 +0300 LV Status available # open 1 LV Size 31.52 GiB Current LE 8069 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Logical volume --- LV Path /dev/ubuntu-vg/swap_1 LV Name swap_1 VG Name ubuntu-vg LV UUID 3y99hr-GmH8-RkqC-59Jn-ftfC-EtR8-KvJj4p LV Write Access read/write LV Creation host, time ubuntu, 2016-10-07 14:10:07 +0300 LV Status available # open 2 LV Size 7.50 GiB Current LE 1920 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1Имеем два логических тома, одна под swap, вторая под корень.
root@konovalov1001:~# df -hFilesystem Size Used Avail Use% Mounted on udev 346M 0 346M 0% /dev tmpfs 73M 2.5M 71M 4% /run /dev/mapper/ubuntu--vg-root 31G 1.7G 28G 6% /tmpfs 365M 0 365M 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 365M 0 365M 0% /sys/fs/cgroup/dev/sda2 473M 118M 331M 27% /boot/dev/sda1 511M 7.1M 504M 2% /boot/efitmpfs 73M 0 73M 0% /run/user/0Как видим под корень у нас выделено 31GB.
Необходимо увеличить место в корневом разделе. Идем сначала в parted
root@konovalov1001:~# partedGNU Parted 3.2Using /dev/sdaWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) p Model: Msft Virtual Disk (scsi)Disk /dev/sda: 42.9GBSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags:Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot, esp 2 538MB 1050MB 512MB ext2 3 1050MB 42.9GB 41.9GB lvm(parted) Теперь запустим просмотр лога и увеличим размер диска в гипервизоре на 10GB
root@konovalov1001:~# journalctl -afNov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [storvsc] Sense Key : Unit Attention [current]Nov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [storvsc] Add. Sense: Capacity data has changedNov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [sda] 104857600 512-byte logical blocks: (53.7 GB/50.0 GiB)Nov 29 14:49:39 konovalov1001 kernel: sd 0:0:0:0: [sda] 4096-byte physical blocksNov 29 14:49:39 konovalov1001 kernel: sda: detected capacity change from 42949672960 to 53687091200В логе видим изменение размера диска, идем снова в parted
root@konovalov1001:~# partedGNU Parted 3.2Using /dev/sdaWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) p Model: Msft Virtual Disk (scsi)Disk /dev/sda: 53.7GBSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags:Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot, esp 2 538MB 1050MB 512MB ext2 3 1050MB 42.9GB 41.9GB lvmВидим изменение размера
Переключаемся в режим просмотра секторов
(parted) unit s (parted) p Model: Msft Virtual Disk (scsi)Disk /dev/sda: 104857600sSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags:Number Start End Size File system Name Flags 1 2048s 1050623s 1048576s fat32 boot, esp 2 1050624s 2050047s 999424s ext2 3 2050048s 83884031s 81833984s lvm(parted)Тут обычно расширяют размер командой resize, но это уже выпилили,
(parted) resize 3 Error: The resize command has been removed in parted 3.0Поэтому удалим раздел и создадим его заново, бояться не нужно, надо только запомнить стартовый сектор, в данном случае 2050048s.
Удаляем третий раздел
(parted) rm 3 Error: Partition(s) 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As aresult, the old partition(s) will remain in use. You should reboot now before making further changes.Ignore/Cancel? I (parted) p Model: Msft Virtual Disk (scsi)Disk /dev/sda: 104857600sSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags:Number Start End Size File system Name Flags 1 2048s 1050623s 1048576s fat32 boot, esp 2 1050624s 2050047s 999424s ext2(parted) Игнорируем ошибку и смотрим разделы, раздел успешно удален, все нормально, теперь создаем новый раздел со стартовым сектором 2050048s и указываем -1 в качестве конечного сектора, это значит до конца диска.
(parted) mkpart name 2050048s -1Warning: You requested a partition from 2050048s to 104857599s (sectors 2050048..104857599).The closest location we can manage is 2050048s to 104857566s (sectors 2050048..104857566).Is this still acceptable to you?Yes/No? Yes (parted) p Model: Msft Virtual Disk (scsi)Disk /dev/sda: 104857600sSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags:Number Start End Size File system Name Flags 1 2048s 1050623s 1048576s fat32 boot, esp 2 1050624s 2050047s 999424s ext2 3 2050048s 104857566s 102807519s name(parted) выходим из parted через q.
Теперь расширяем физический том
root@konovalov1001:~# pvresize /dev/sda3 Physical volume "/dev/sda3" changed 1 physical volume(s) resized / 0 physical volume(s) not resizedПроверяем
root@konovalov1001:~# pvdisplay --- Physical volume --- PV Name /dev/sda3 VG Name ubuntu-vg PV Size 49.02 GiB / not usable 1.98 MiB Allocatable yes PE Size 4.00 MiB Total PE 12549 Free PE 2560 Allocated PE 9989 PV UUID Bm77kO-pZTZ-Azw5-sPgD-3vKO-Gsii-KvnY3lСмотрим группу
root@konovalov1001:~# vgdisplay --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 49.02 GiB PE Size 4.00 MiB Total PE 12549 Alloc PE / Size 9989 / 39.02 GiB Free PE / Size 2560 / 10.00 GiB VG UUID k8gsGL-x03z-MfY4-24EU-yFyD-7jUM-djPvSEВидим, что появилось пространство, которе сможем использовать для расширения логического тома (Free PE / Size 2560 / 10.00 GiB)
Расширяем логический том используя все достуное пространство
root@konovalov1001:~# lvextend /dev/ubuntu-vg/root -l +100%FREE Size of logical volume ubuntu-vg/root changed from 31.52 GiB (8069 extents) to 41.52 GiB (10629 extents). Logical volume root successfully resized.Проверяем
root@konovalov1001:~# lvdisplay --- Logical volume --- LV Path /dev/ubuntu-vg/root LV Name root VG Name ubuntu-vg LV UUID nBK0Sf-pu53-i7p6-kPdR-a5RU-TGEa-w0jsyH LV Write Access read/write LV Creation host, time ubuntu, 2016-10-07 14:10:07 +0300 LV Status available # open 1 LV Size 41.52 GiB Current LE 10629 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0Видим, что размер увеличился и стал: 41.52 GiB
Осталось только расширить файловую систему, вот так:
root@konovalov1001:~# resize2fs /dev/ubuntu-vg/rootresize2fs 1.42.13 (17-May-2015)Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing requiredold_desc_blocks = 2, new_desc_blocks = 3The filesystem on /dev/ubuntu-vg/root is now 10884096 (4k) blocks long.Смотрим вывод df:
root@konovalov1001:~# df -hFilesystem Size Used Avail Use% Mounted onudev 346M 0 346M 0% /devtmpfs 73M 2.5M 71M 4% /run/dev/mapper/ubuntu--vg-root 41G 1.7G 38G 5% /tmpfs 365M 0 365M 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 365M 0 365M 0% /sys/fs/cgroup/dev/sda2 473M 118M 331M 27% /boot/dev/sda1 511M 7.1M 504M 2% /boot/efitmpfs 73M 0 73M 0% /run/user/0Успешно увеличилили системный раздел на лету на 10 GB.