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.