Features/QED/OutstandingWork: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
* Zero clusters | * Zero clusters | ||
** Patch on mailing list [awaiting review]. | ** Patch on mailing list '''[awaiting review]'''. | ||
* Reducing time window during which dirty flag is set | * Reducing time window during which dirty flag is set |
Revision as of 11:11, 1 February 2011
Outstanding features
- Zero clusters
- Patch on mailing list [awaiting review].
- 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
- Improve parallel allocating write performance
- QED currently queues allocating write requests.
- An initial per-L1/L2 table fine-grained locking approach improved performance somewhat but also regressed a benchmark.
- Needs more investigation for a good scalable solution.
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?