Xen and the Art of Virtualization

Jun Zhang,  Oct 23, 2006

Slides

Xen_and_the_Art_of_Virtualization.pdf

Questions


1. Performance results of Xen are stunning, but what can be said about the fairness in the redistribution of virtual resources are shared amongst the guest OSes ? For instance, could a network-hogging guest OS be prioritized over the others?

2. Given additional support for resource usage metering, could Xen become the perfect utility computing platform?

3. What are some practical reasons for running different operating systems at the same time with XEN (ie. why do we need Windows and Linux at the SAME time?).

4. Is it possible to combine something like Disco and Xen (a "server farm" that runs many different OS?).

5. With reference to the notion of virtual block devices (VBD),  how does the guest OS disk scheduling algorithm help in this case ? (Since the guest OS has no idea about the actual disk layout). Wouldn't it be better to just remove this part since Xen anyways does disk scheduling.

6. Can the real time alarm timers facility in Xen be used to circumvent Xen's control over the resources ?

7. How can processes be migrated from one platform to another? Does Xen use a Save-state mechanism in domain 0 for the same?

8. Wont L4 be able to provide better virtualization than Xen, since it supports isolation and IPC that can be used for the same?

9. Is Xen in its current form scalable to the cluster level? I hope it is! If so, how does Xen interact with its mirrors on other machines in a cluster environment? Is domain 0/hypervisor scalable? Is there a possibility of large scale full/para virtualization on the cluster level when implementing Xen or does it run on individual mahines alone and supports interaction between different virtual machine instances? What will be the sub-instances in that case? How can large applications like Brain Modeling, N-Body be mapped simultaneously along with minor applications on a Xen Cluster environment efficiently?

10. Is there an easier or more intuitive way to allow users to put up protection domains between applications?

11. Xen was built to fit in a 64MB section, what is the current memory foot print, and how has it grown?

12. Can you explain more about how are the domains other than domain0 is created? I`m particularly interested in how the domain scheduler in the Xen architecture schedules these domains so that it does not interfere with the fairness of the guest Os? Can multiple domains exist for a guest Os?

13. It seems like both Intel(Vanderpool) and AMD have recently launched their x86 products with virtualization support. Even though the virtualization idea was around for quite some time is it actually this Xen architecture which persuaded the vendors?

14. Any idea if there is a large memory use penalty for running concurrent OSes, unlike Disco?

15. VMWare has a paper that claims x86 hardware virtualization offers them very little, if any performance advantage. Xen claims paravirtualization offers them performance advantages over VMWare's binary translation. Whan would then be the expected performance difference expected after porting Xen to use the hardware virtualization features? If the transitive properly holds, I'm not optimistic......

16. In a traditional VMM the virtual hardware exposed is functionally identical to the underlying machine?  What is the virtual hardware? And what is the relationship with the virtual machine?

18. Typically only two types of exception occur frequently enough to affect system performance: system calls and page faults. How does the authors improve the performance of system calls and handle the page fault efficiently?

19. Since Xen partitiones memory between the guest operating systems would you say that this is a limitation? Why yes or why not? Would you say that this is purpose dependent?

20. Where would you use Xen?

21. Would Xen suffice the goal, in which Xen would allow individual users to run unmodified applications regardless operating systems supporting the applications? Xen requires OS porting, operating systems evolves and applications are revised according to those systems, so it seems to be idealistic.

22. Would Figure 6 show the same result, when several different kinds of operating systems are loaded to Xen? It could be, but I was just wondering the result.

23. Xen has been out in the public domain for quite a few years since the writing of this paper.  Are there any significant deviations in terms of design or direction from the original intent stated in the paper?  If so, is it because of technical considerations, or are they more political in nature?

24. Is the reservation of the top 64 MB of each address space really as non-problematic as the paper makes it out to be?  They mention the 'common ABIs' not requiring them, but Murphy's law dictates that the systems that Xen will be running under will be running apps that uses this top addy space almost continuously.

25. Xen is a kind of paravirtualization. What are the differences of this kind of software virtualization from the others such as emulation (like VMware) ?

26. What are the advantages and innovative features of this approach compared to the approach of the emulation of VMware?

27. What is the role of Domain0 in Xen? Why is not implemented as part of Xen? Does this introduce a security issue?

28. What is the trade off between latency and throughput in the IO rings in Xen? Why was their choice justified?

29. I do not believe Xen could find a right direction for itself. It supports Linux and hoped to support windows under its paravirtualisation techniques, I dont think this is achievable. To achieve the true speeds that Xen has mentioned in its Linux experiment, they will need direct code access to the windows OS and that is not going to happen.What do you think?

30. I do not quite understand how Xen is better than User Mode Linux (UML). Linode has been developing a business around UML to sell VMs. Could you explain more in your presentation or lead a discussion on it?

31. Xen provides the capability to run multiple OS's on a system. But what if running the same OS on different hardware platforms? Can the virtualization work in both ways?

32. About the network handling, Xen kind of simulates a router to manage connection.  I guess that means it must do some kind of address translation so if we're running 100 operating systems each with a few processes that need connections to the internet, aren't we going to run close to the limit of the translation table?  This is more true if we're already behind a router doing NAT.

33. The author mentions that the OS would have to pay if it wants to hog resources but he never really talked about how that was done.  Can you maybe explain how this cost would be implemented?  Are we talking about reducing CPU time slices for an OS or is there another way?

34. This is more related to TLBs rather than VMMs in general. In tagged TLBs say with ASIDs, a process running has TLB entries that are tagged with its address space identifier so that when there is a context switch, the TLB need not be flushed (completely?) because when the new process uses the TLB, it checks the ASID for each TLB entry. Hence context switching is faster. But won't this require some kind of TLB entry replacement algorithm? If you flush the TLB, you have the entire TLB to work with but if you don't, you will have to use the remaining empty entry lines on the TLB, yes? I couldn't find the actual working of this anywhere.

35. Under physical memory virtualization, the paper states that OSes not running on VMs assume physical memory is contiguous (maybe as it is the only OS running on hardware). And in the case of a VM, the OS creates an illusion of contiguous physical memory. Does this require patching the OS or does an OS (say Linux) automatically deal with sparse physical addresses?

36. How does the guest OS create the illusion of contiguous physical memory? Is this something that has to be added to operating systems like Windows or Linux when porting them to Xen?

37. Does Xen support differing priorities for different domains? If not, why not?

38. As far as as I know Xen 3.0 uses Intel VT (Virtualization Technology) to execute unmodified guest operating systems. How does using this hardware virtualization technology compare with an entirely software-based approach from the performance viewpoint? Does it have a significant performance boost?

39.  They have said that 'each' guest OS is allowed to register a 'fast' exception handler which is accessed directly by the processor without indirecting via ring 0. My question is that how they can manage this for more than one OS? Do they flush the hardware exception table each time they switch between guest OSs(which is not logical?) or they have different mechanism?

40. The Xen website states the 3.0 allows for unmodified guest OSes. What feature of Intel's VT-x allows for this?

41. Recently Intel and AMD included new hardware supported virtualization in their latest product, which allows current OSes to be virtualized without any modification. Does this render paravirtualization meaningless? (I do see Xen switching to hardware supported virtualization in their 3.0 release.)

42. While Xen is SMP-aware, how does it schedule the system's processors to individual VM? Is there any policy involved in keeping the load balance?

43. The approach in this paper is to provide a emulation layer for  hardware that differs only very slightly than the actual x86  hardware, and then to port guest OSes to this virtual machine. How  feasible in practice is it to maintain these ports? Once the initial  porting effort is complete, are subsequent modifications to keep the  guest OS implementations up to date fairly simple because of the  similarity of the emulated hardware to a 'real' architecture? How  does this effort compare to the maintenance of virtual machines that  attempt to "perfectly" emulate a specific architecture, given the  speed of evolution of hardware architectures?

44. I was somewhat disappointed that the authors did not discuss how  scheduling algorithms for guest OSes differs from scheduling ordinary  processes. Why do you think the authors avoided this question? Do we  expect that there would be unique challenges in using the entire  running OS as a unit of scheduling?

45. How does hardware asynchronicity (for example DMA) affect the virtualization? Or is it transparent?

46.  How good are the Device I/O abstractions. Do drivers work unmodified, or do drivers have to be written especially for Xen (for example video device drivers).

Discussion Recap

1. Compared with VMWare, Xen is good at performance. VMWare is more mature comparatively.
2. Whether the reservation of the top 64 MB of each address space is really as non-problematic as the paper makes it out to be depends on what is the hosted OS. 3. The authors did not discuss how  scheduling algorithms for guest OSes differs from scheduling ordinary  processes.