Hi Stefan,
Thanks a lot for the detailed explanation.
>It
seems either we need the tools that understand both block and file
>level or we need to rethink how to package software completely.
In my opinion the first approach i.e. tool that understand both block and file level would be a good idea. Here in our organization we have tested different Application Virtualization tools to package and stream softwares. But Application virtualization has its own limits as it can not package certain kind of applications (like softwares with device drivers, or softwares with system level services).
But with QEMU/KVM snapshots I was able to install complex softwares in different snapshot layers present it to end users.
Though the softwares belongs to different snapshot layers, they are being presented to the end users in a coherent manner, and users feel that they are being served with a single layer of OS.
Can you throw some light in if it is possible to develop new tool combining QEMU and libguestfs to bring out desired operation mentioned in the above mail chain.
From an Administrator's perspective the software/package layering and VM operation should go like the following:-
1. Administrator install Windows as a Base QEMU/KVM vm (Say win-base).
2. Using qemu-img create with -b option create an overlay named win-vm01
3. Utilizing libguestfs administrator give the proper name/IP address to win-vm01 in the OS level
4. Again utilizing QEMU/KVM another overlay is being created on top of win-vm01 with the name as Software1.
5. Administrator installs a software (say Firefox) by either utlizing libguestfs or manually.
Please correct me if I'm wrong up to point 5 it is possible with current features of QEMU and libguestfs.
Now the new features/tools are needed (as per my understanding) for the following operations:-
6. The administrator separates Software1 snapshot/overlay disk from the win-base VM and keep it as a independent 'Read only' disk.
7. Now the administrator repeats the steps from 4 to 6 for other softwares as well say for 'Google Chrome' 'Adobe Reader'.
Up to this point the administrator have several independent read-only software VM disks (i.e. Firefox, Chrome etc.)
8. Now the administrator repeats the step 2 to 3 to create more VM overlays for the end users (Say win-vm02, win-vm03)
Up to this point the administrator has a single base VM disk (win-base) with multiple overlays/snapshots VMs.
9. The administrator now applies the single read only software disks to mulitiple VMs. So in that way a single software disk can serve multiple VMs.
Request you to let me know if the above operations are at all possible by adding features to QEMU/libguestfs or my thought process going in the wrong way.