Hi,
recently we (oVirt) have started discussing whether the way virt-v2v
handles import from OVA files is good. And I would be interested in
ideas how it can be improved. It is likely somebody already gave some
thought to this problem.
TL;DR: Extracting the OVA before import is a problem for large VMs (in
sizes of TBs). Can we change something to prevent the extraction and
work directly over OVA?
What we consider a huge shortcoming is the fact that whole OVA is
extracted prior to the import into a temporary directory and processed
afterwards. Under normal situation user can have up to three copies of
the VM on his drive at the end of import:
* original OVA,
* temporary extracted files (will be deleted when virt-v2v terminates,
* converted VM.
This is not a good idea for large VMs that have hunderds of GBs or even
TBs in size. The requirements on the necessary storage space can be
lessened with proper partitioning. I.e. source OVA and converted VM
don't end up on the same drive and TMPDIR is set to put even temporary
files somewhere else. But this is not a general solution. And sometimes
the necessary space may not be available at all.
The question is how to change the import path so that virt-v2v doesn't
have to extract the OVA. I can see the following solutions:
1) Solve it virt-v2v: create a layer for directly accessing the files
in the archive.
2) Solve it in QEMU: create backing method that would allow creating
qemu disk backed by the archive.
3) Solve it on oVirt side: use some FUSE-based tool to provide
access to the archive and pass the OVA to virt-v2v not as a file but
as directory.
Does anyone have any other ideas or suggestions?
Best regards,
Tomas Golembiovsky
--
Tomáš Golembiovský <tgolembi(a)redhat.com>