Features/QED/OutstandingWork
Outstanding features
- Zero clusters
- Patch on mailing list, awaiting review and merge.
- Reducing time window during which dirty flag is set
- Images with backing file don't need to set dirty bit during allocating write [merged].
- Piggyback clearing dirty bit on guest flush operation.
- Periodic flush in order to clear dirty bit.
- Block device support (i.e. QED on LVM volumes)
- Solution: Keep a physical file size field in the QED header, update lazily using dirty bit logic
- Live migration on shared storage
- Reopen file (open read-only first to prevent consistency check).
- Encryption
Possible future work
- Discard support
- Solution: Add a freelist to the image format
- Solution: Pass discard to underlying file. Loses compact image characteristic.
- Internal snapshots
- Probably not worth adding since external snapshotting is being implemented
- Compression
- No strong use case for this feature
Non-technical issues
Thanks to Kevin Wolf for contributing these points:
- Burden of maintaining an additional image format (basically doubles image format related work; both development and QA) [Update: Sharing code might reduce the burden, though I guess for QA purposes it would stay two independent formats.]
- There are concerns that starting with a simple image format core and then adding one new thing after another on top is going to make code complexity grow very fast.
- Conversion of existing images is needed to take advantage of QED.
- Code review has brought up some corruption issues that are fixed by now, but have we covered everything?
- First dirty flag had to be added
- Then a bdrv_flush after COW
- What's next?