Zobacz jak rozszerzyć dysk/partycje która jest zarządzana przez LVM i nie stracić danych.
Mam ogromną ilość wejść na artykuł konfiguracja-lvm i bardzo się cieszę, że ta instrukcja pomaga wam skonfigurować dyski pod kontrolą LVM. Są tam opisane dwa ćwiczenia Zmniejszanie dysku i Rozszerzanie dodawanie nowego dysku do wolumen grupy, natomiast brakuje w tym poradniku jak obsłużyć powiększoną partycje np. z poziomu jakiegoś wirtualizatora VirtualBox czy VMware. Najczęstszym przypadkiem jest sytuacja kiedy mamy konkretny dysk systemowy i możemy go powiększyć i nie chcemy dodawać kolejnych dysków tylko trzymać wszystko na jednym. Bardzo łatwo jest powiększyć dysk od strony wirtualizatora ale co z tego jak system tego nie zobaczy automatycznie. Dokładniej mówiąc partycja sama się nie powiększy, system oczywiście z poziomu fdisk na pewno zobaczy tą zmianę np. po restarcie maszyny ale nic więcej się nie stanie. Poniżej pokaże jak krok po kroku wykonać tą operację na parycji z systemem plików ext* lub xfs . Zadanie to zajmie koło 10min pomimo to zalecam zrobić backup maszyny, dysku lub czegokolwiek aby w razie problemów mieć się z czego odzyskać. Backup zajmie chwile więc polecam obejrzeć w tym czasie meksykanin programista.
Zarządzanie miejscem za pomocą LVM
Aktualny dysk posiada rozmiar 10G
root@ubuntu:~# df -h Filesystem Size Used Avail Use% Mounted on udev 473M 0 473M 0% /dev tmpfs 100M 3.2M 96M 4% /run /dev/mapper/ubuntu--vg-root 8.8G 1.5G 6.9G 17% / tmpfs 496M 0 496M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 496M 0 496M 0% /sys/fs/cgroup tmpfs 99M 0 99M 0% /run/user/1000
pvs pokazuje informacje o fizycznych volumenach
root@ubuntu:~# pvs PV VG Fmt Attr PSize PFree /dev/sda1 ubuntu-vg lvm2 a-- 10.00g 36.00m
Na VirtualBox powiększyłem dysk za pomocą poniższej komendy do 12G
root@test:/home/VirtualBox VMs/ubuntu# VBoxManage modifyhd ubuntu.vdi --resize 12000 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Sprawdzam fdisk’iem czy dysk rzeczywiście został powiększony, jak widać niżej został powiększony
root@ubuntu:~# fdisk -l Disk /dev/sda: 11.7 GiB, 12582912000 bytes, 24576000 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 Disklabel type: dos Disk identifier: 0x5894cd85 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 20969471 20967424 10G 8e Linux LVM
Dysk jest powiększony ale partycja jeszcze nie, aby ją powiększyć skasuje partycje fdisk’iem i zaraz po tym utworzę ją na nowo już z nowym rozmiarem. Nie trzeba się bać tego kroku żądne dane nie znikną z tej partycji. Przecież masz backup jak by co :) Pogrubiłem miejsca wydawania poleceń.
Po odpaleniu fdiska mamy dostępne takie akcje:
- p – wyświetl informacje
- n – nowa partycja, trzeba podać numer
- d – skasuj partycje, trzeba podać numer
- t – ustaw typ partycji
- w – zapisz zmiany na dysku o partycjach
root@ubuntu:~# fdisk /dev/sda Welcome to fdisk (util-linux 2.29). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 11.7 GiB, 12582912000 bytes, 24576000 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 Disklabel type: dos Disk identifier: 0x5894cd85 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 20969471 20967424 10G 8e Linux LVM Command (m for help): Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 20969471 20967424 10G 8e Linux LVM Command (m for help): d Selected partition 1 Partition 1 has been deleted. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): First sector (2048-24575999, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-24575999, default 24575999): Created a new partition 1 of type 'Linux' and of size 11.7 GiB. Partition #1 contains a LVM2_member signature. Do you want to remove the signature? [Y]es/[N]o: N Command (m for help): p Disk /dev/sda: 11.7 GiB, 12582912000 bytes, 24576000 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 Disklabel type: dos Disk identifier: 0x5894cd85 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 24575999 24573952 11.7G 83 Linux Command (m for help): t Selected partition 1 Partition type (type L to list all types): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT 10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto 1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep 1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT Partition type (type L to list all types): 8e Changed type of partition 'Linux' to 'Linux LVM'. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Jak widać wyżej fdisk informuje, że kernel nie zaktualizował sobie informacji o partycjach i najlepiej aby to mu zaktualizować zrestartuj maszynę.
root@ubuntu:~# reboot
Po restarcie fdisk widzi już powiększoną partycję.
root@ubuntu:~# fdisk -l Disk /dev/sda: 11.7 GiB, 12582912000 bytes, 24576000 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 Disklabel type: dos Disk identifier: 0x5894cd85 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 24575999 24573952 11.7G 8e Linux LVM
Sprawdzam poleceniem pvs jak „lvm’y” widzą partycję. Muszę sam ręcznie powiększyć ten „fizyczny kontener” tak właśnie zarządza się miejscem za pomocą LVM.
root@ubuntu:~# pvs PV VG Fmt Attr PSize PFree /dev/sda1 ubuntu-vg lvm2 a-- 10.00g 36.00m root@ubuntu:~# pvresize /dev/sda1 Physical volume "/dev/sda1" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
Sprawdzam pvs ponownie i widzę, że teraz widać żądaną wielkość
root@ubuntu:~# pvs PV VG Fmt Attr PSize PFree /dev/sda1 ubuntu-vg lvm2 a-- 11.71g 1.75g
Przechodzę do logicznych wolumenów i sprawdzam co u nich. Widać, że trzeba wolumen grupie zwiększyć rozmiar. Teraz mam z czego bo mam fizycznie większą partycję.
root@ubuntu:~# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root ubuntu-vg -wi-ao---- 8.96g swap_1 ubuntu-vg -wi-ao---- 1020.00m
Powiększam wolumen grupe o całe dostępne miejsce
root@ubuntu:~# lvresize -l +100%FREE /dev/mapper/ubuntu--vg-root Size of logical volume ubuntu-vg/root changed from 8.96 GiB (2295 extents) to 10.72 GiB (2744 extents). Logical volume ubuntu-vg/root successfully resized.
Teraz muszę rozszerzyć filesystem, robię to rezise2fs jeśli filesystem to ext3/4, jeśli filesystem to xfs muszę uzyć xfs_growfs
root@ubuntu:~# resize2fs /dev/mapper/ubuntu--vg-root resize2fs 1.43.4 (31-Jan-2017) Filesystem at /dev/mapper/ubuntu--vg-root is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 2 The filesystem on /dev/mapper/ubuntu--vg-root is now 2809856 (4k) blocks long. lub
root@ubuntu:~# xfs_growfs /dev/mapper/ubuntu--vg-root
Sprawdzam czy system widzi poprawnie powiększoną partycję
root@ubuntu:~# df -h Filesystem Size Used Avail Use% Mounted on udev 473M 0 473M 0% /dev tmpfs 100M 3.2M 96M 4% /run /dev/mapper/ubuntu--vg-root 11G 1.5G 8.6G 15% / tmpfs 496M 0 496M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 496M 0 496M 0% /sys/fs/cgroup tmpfs 99M 0 99M 0% /run/user/1000
Dawajcie znać w komentarzach jak wam poszło :)