State: vm snapshoting and resume are working, but everything is still in a very hacky state.
The build script (which is used in OBS, osc and pbuild) already supports the usage of preinstall images. These are bascially tar balls which get extracted instead of preinstall and install packages. This is speeding up the build, because no database operations and no scripts need to run.
The goal of the project is to go one step further and to convert these to entire VM snapshots. As a consequence all variable data, like the source and additional packages of the build need to be delivered to the VM via a hotplug device.
This has a number of positive consequences:
- Much of the IO spend on preparing the VM can be saved
- Kernel is already booted and reduces the startup time further
- The isolation of variable data solves the problems of reusing the VM with changed sources for local builds. => No more errors when doing builds as user without root permissions
Goal for this Hackweek
Current state can be found here: https://github.com/adrianschroeter/obs-build/tree/vm
- cleanup code to make it mergeable
- add support in obs-worker
- SOLVED (create some tooling to convert tar balls to ext filesystem without requiring root permissions and without loosing inode informations like ownership, attributes and so on)
This project is part of:
Hack Week 20
This project is one of its kind!