On Wed, Aug 06, 2014 at 05:24:42PM -0400, Milos Vyletel wrote: > VMDK's streamOptimized format is different from regular sparse format. > L1(GD) and L2(GT) tables are not predefined but rather generated and > written during image creation mainly because there is no way to tell > how much space data will occupy once they are compressed. Also the > location of header, L1 and L2 tables differ. > > - L2 tables (grain tables) are written after all grains they point to > - L1 tables are written after all grains and L2 tables > - footer at the end is used instead of header in first sector > > Images generated by qemu-img could not be imported (as part of OVA archive) > to neither VMWare nor OVM because of errors. > > - VMWare during OVA import: > Not a supported disk format (sparse VMDK too old) > > - OVM's vbox-img during conversion: > vbox-img: error: Error while copying the image: VERR_EOF > > This patch fixes streamOptimized support in qemu which was not fully > compatible with VMDK specifications as defined in latest avaialble version > at https://www.vmware.com/support/developer/vddk/vmdk_50_technote.pdf. > > Qemu generated images are identical to the ones generated by VMWare and > OVM (vbox-img) with the exception of DescriptorFile but that is expected > (CID and some additional DDB entries differ). They were also succesfully > imported to VMWare vCloud, ESXi and Oracle OVM. > > Signed-off-by: Milos Vyletel <milos.vyle...@gmail.com> > --- > v2 changes: > - updated commit message description with errors received > - style/grammar fixes (clean checkpatch pass) > - removed l2_table pointer from VmdkExtent struct > - fixed memory leak in vmdk_write_footer() > > v3 changes: > - removed footer from VmdkExtent structure > - added vmdk_write_grain_directory function to separate GD and footer writes > - fix possible problems with opening of images created by older implementation > - fix reverse conversion from VMDK to other formats > > block/vmdk.c | 355 +++++++++++++++++++++++++++++++++++++++++++++------------ > 1 files changed, 280 insertions(+), 75 deletions(-)
In the future, please send revisions as top-level email threads. When people use threaded email clients your patch can be overlooked since it's a subthread of an old discussion, rather than a new thread in the inbox. I skimmed the patch and am relying on Fam for a detailed review.
pgp8Ox8TpUVmG.pgp
Description: PGP signature