113 lines
No EOL
3.7 KiB
Markdown
113 lines
No EOL
3.7 KiB
Markdown
# Expanding a Linux Disk on a VM
|
|
|
|
If a VM is getting a bit tight for disk space, you can expand the size of a drive. This example is the more difficult one of expanding the primary drive. The example uses the instance name rpki.dfw.rg.net, which should be replaced by your own, of course.
|
|
|
|
## Tell Ganeti to Grow the Disk
|
|
|
|
**Unless you want the glow-disk to take a very long time, turn off drbd for the instance and turn it back on at the end of all this.**
|
|
|
|
```
|
|
gnt-instance stop rpki.dfw.rg.net
|
|
gnt-instance modify -t plain --no-wait-for-sync rpki.dfw.rg.net
|
|
gnt-instance start rpki.dfw.rg.net
|
|
```
|
|
|
|
First you need to make the Ganeti disk allocation larger.
|
|
|
|
```
|
|
gnt-instance grow-disk rpki.dfw.rg.net 0 8G
|
|
```
|
|
|
|
grows the priimary drive by 8G.
|
|
|
|
This allocates more disk in Ganeti and creates a larger partition. But it does not tell Linux that the disk is bigger.
|
|
|
|
Also, like many gnt-instance modify commands, it will not take effect until the next Ganeti start, not reboot within the VM, but a real Ganeti instance reboot or shutdown/start.
|
|
|
|
## Increasing the Linux Partition Size
|
|
|
|
You can not grow the primary partion while running it. So stop the instance
|
|
|
|
```
|
|
gnt-instance shutdown rpki.dfw.rg.net
|
|
```
|
|
|
|
You will need the VNC console, so get the port number
|
|
|
|
```
|
|
gnt-instance list -o name,pnode,network_port rpki.dfw.rg.net
|
|
console connection: vnc to vm3.dfw.rg.net:11014 (display 5114)
|
|
```
|
|
|
|
11014 in this example
|
|
|
|
You will also need the cluster VNC password, which is in `/etc/ganeti/vnc-cluster-password`
|
|
|
|
Boot from an appropriate CD ROM. Note that you need a desktop ISO, not a server
|
|
|
|
```
|
|
gnt-instance start -H boot_order=cdrom,cdrom_image_path=/ISOs/ubuntu-18.04.2-desktop-amd64.iso rpki.dfw.rg.net
|
|
```
|
|
|
|
And then start VNC to the console.
|
|
|
|
- Choose Try Ubuntu
|
|
- Choose the File Drawer
|
|
- Choose the Computer Device (which may be in Other Locations)
|
|
- Click on the Search Magnifying Glass
|
|
- Type 'gparted'
|
|
- There will be a 'gparted' icon, click it to run gparted
|
|
- [ there must be an easier way to do this ]
|
|
|
|
To expand the /dev/vda1 ext4 partition, you have to get the swap and extended partitions out of the way.
|
|
|
|
- Right click swap and turn Swapoff
|
|
- Right click the swap partition again and delete it
|
|
- Right click the exttended partition and delete it
|
|
- Click Edit in the menu bar and Apply All Operations
|
|
- Confirm, and when it's done, say thank you
|
|
|
|
You now should have the /dev/vda1 ext4 partition and a big unused partition. Now you can grow the /dev/vda1. But remember to leave room to create a new swap partition.
|
|
|
|
N.B. If you have a disk with LVM2 partitions, gparted will automatically activate them. This will prevent you from resizing the partition with grow/resize. You can turn the LogicalVolumes off with 'vgchange -a n'.
|
|
|
|
Now
|
|
|
|
- Right click /dev/vda1 and select Resize/Move
|
|
- You can drag the bar or crank numbers in
|
|
- Be sure to leave room for a swap partition
|
|
- Click Resize/Move
|
|
- Right click the unallocated partition and select New
|
|
- Create as: Primary Partition
|
|
- File system: linux-swap
|
|
- Add the all the remaining unallocated disk space (unless you had other plans)
|
|
- Click Edit in the menu bar and Apply All Operations
|
|
- Confirm, and when it's done, say thank you
|
|
|
|
You should now have /dev/vda1 with an increased size and /dev/vda2 as a linux-swap partition.
|
|
|
|
Quit gparted and shut-down the linux desktop system.
|
|
|
|
You should now be able to start the VM
|
|
|
|
```
|
|
gnt-instance reboot rpki.dfw.rg.net
|
|
```
|
|
|
|
and find that it has been resized. It may take a while to restart. Likely this is trying to find the old swap partition by the UUID in `/etc/fstab`.
|
|
|
|
You will need to fix the sawp partition in `/etc/fstab`
|
|
```
|
|
blkid
|
|
```
|
|
to get it and edit `/etc/fstab`
|
|
|
|
On older gparteds, once it has booted, you will need to ssh in as root and
|
|
|
|
```
|
|
resize2fs
|
|
```
|
|
|
|
---
|
|
|
|
2023.12.19 |