rgnet-wiki/pages/ExpandLinuxDisk.md

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