The idea here is to use LVM copy-on-write snapshot feature to reduce disk usage needed for the multiple instances.
- Create a 300G sparse file. This file will not be using much disk space initially, despite its apparent size.
truncate -s 300G image.img
- Attach a loop device to the file and grab its name
loop=$(losetup --show -f image.img)