| Advertise on warmetal.nl! Click for more information about advertising here. |
Did you find this website useful? Did I save you a lot of time? |
|
Environment: Virtual Machine Red Hat 6.2 with one virtual disk, fully used. Disk is partitioned like this:
/dev/sda1 * 1 25 200781 83 Linux /dev/sda2 26 5221 41736870 8e Linux LVM
And has the following file systems:
Filesystem 1048576-blocks Used Available Capacity Mounted on /dev/mapper/rootvg-rootlv 35492 33341 320 100% / /dev/sda1 190 13 168 7% /boot tmpfs 1975 0 1975 0% /dev/shm
Goal: Extend the virtual disk and resize the root filesystem
To achieve this goal the following steps need to be taken:
Note that if you add a disk you can just rescan the SCSI bus:[root@oraclebox ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
Resizing the virtual disk is a matter of editing the VM's properties. When done reboot the VM.
For more information on resizing the virtual disk see here.
Resizing the LVM partition is done with good old fdisk. In this procedure you remove the old LVM partition and then recreate it while adding the new disk space:
[root@oraclebox ~]# fdisk /dev/sda The number of cylinders for this disk is set to 7832. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sda: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 25 200781 83 Linux /dev/sda2 26 5221 41736870 8e Linux LVM
Note that the disk is 64.4 GB large and that the last used cylinder does not have the same number as the total cylinders of the disk.
WARNING: Make sure the old and new partition start at the same cylinder position, not doing so will destroy your data.
Command (m for help): d Partition number (1-4): 2 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (26-7832, default 26): Using default value 26 Last cylinder or +size or +sizeM or +sizeK (26-7832, default 7832): Using default value 7832
Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): L 0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris 1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx 5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data 6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): p Disk /dev/sda: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 25 200781 83 Linux /dev/sda2 26 7832 62709727+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
Now reboot the virtual machine.
[root@oraclebox ~]# vgdisplay --- Volume group --- VG Name rootvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 5 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.78 GB PE Size 32.00 MB Total PE 1273 Alloc PE / Size 1273 / 39.78 GB Free PE / Size 0 / 0 VG UUID 5w8wuy-D2qj-8uft-pIgr-hvw8-CVek-dihsvg [root@oraclebox ~]# pvresize /dev/sda2 Physical volume "/dev/sda2" changed 1 physical volume(s) resized / 0 physical volume(s) not resized [root@oraclebox ~]# vgdisplay --- Volume group --- VG Name rootvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 6 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 59.78 GB PE Size 32.00 MB Total PE 1913 Alloc PE / Size 1273 / 39.78 GB Free PE / Size 640 / 20.00 GB VG UUID 5w8wuy-D2qj-8uft-pIgr-hvw8-CVek-dihsvg
Note the Free space listing with the second vgdisplay command.
Now we can resize the logical volume:
[root@oraclebox ~]# lvextend -L +20G /dev/rootvg/rootlv Extending logical volume rootlv to 55.78 GB Logical volume rootlv successfully resized [root@oraclebox ~]# lvdisplay --- Logical volume --- LV Name /dev/rootvg/rootlv VG Name rootvg LV UUID PVQTit-R8ZW-OPZW-HAWK-4OLo-OVly-zMQVsG LV Write Access read/write LV Status available # open 1 LV Size 55.78 GB Current LE 1785 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
[root@oraclebox ~]# df -Pm Filesystem 1048576-blocks Used Available Capacity Mounted on /dev/mapper/rootvg-rootlv 35492 33341 320 100% / /dev/sda1 190 13 168 7% /boot tmpfs 1975 0 1975 0% /dev/shm [root@oraclebox ~]# resize2fs /dev/rootvg/rootlv resize2fs 1.39 (29-May-2006) Filesystem at /dev/rootvg/rootlv is mounted on /; on-line resizing required Performing an on-line resize of /dev/rootvg/rootlv to 14622720 (4k) blocks. The filesystem on /dev/rootvg/rootlv is now 14622720 blocks long. [root@oraclebox ~]# df -Pm Filesystem 1048576-blocks Used Available Capacity Mounted on /dev/mapper/rootvg-rootlv 55332 33344 19137 64% / /dev/sda1 190 13 168 7% /boot tmpfs 1975 0 1975 0% /dev/shm
Discussion