> It is a stream of compressed "grains" (data). They are out-of-order and each > grain comes with the virtual disk lba where the data should be visible to the > guest. > > The stream also contains "grain tables" and "grain directories". This > metadata makes random read access to the file possible once you have > downloaded the entire file (i.e. it is seekable). Although tools can choose > to > consume the stream in sequential order too and ignore the metadata. > > In other words, the format is an out-of-order stream of data chunks plus > random access lookup tables at the end. > > QEMU's block/vmdk.c already has some support for this format although I > don't think we generate out-of-order yet. > > The benefit of reusing this code is that existing tools can consume these > files.
Compression format is hardcoded to RFC 1951 (defalte). I think this is a major disadvantage, because it is really slow (compared to lzop).