 It has happened in the world of Xen and the world of virtualization in general since then but Foster was a really good event for for Xen two years ago. I think You know when I did the talk a lot of people, you know, I hadn't used Xen before went out and used Xen But also we got some of the best developers that joined the project actually came about as a result of the talk at Foster and two years ago. So hopefully we'll have the same effect this year So what I'm going to do in this talk is just Kind of give it a bit of a status update of where we are with the Xen project what the project's goals are and then look at How the virtualization landscape is evolving? So there are certain things which virtualization was used for a few years ago And then there's there's where we are now and where I think things are going to go in the future so the sort of second generation virtualization benefits and then really talk about the the work that's going on in Xen You know within the Xen project to try and bring though, you know to flesh out that roadmap and bring some of these features into mainline Xen We'll look a bit at the architecture of Xen and what we regard as the architectural advantages that make Xen really well suited for being You know the what we call ubiquitously Ubiquitous virtualizations are being deployed ubiquitously on hardware. Why we think it's got the the best architecture for doing that And then look at some of the other projects going on Really taking Xen from servers on to client machines and even to mobile phones So the this is the the Xen project mission statement This is from the this is actually a slide from the last Xen summit We had which was in November in in Santa Clara. It was actually hosted by Sun and The aim of the project is to build this open source engine You know the open source hypervisor, which is they're going to be the core engine that then people pick up and Put into all sorts of different products that need a hypervisor So there are lots of different people that or different companies that pick Xen up and put it into products So obviously there's there's red hat and the vowel. There's also Sun with Solaris. There's obviously, you know, Xen source now Citrix virtual iron all sorts of different companies that are building products on top of Xen so Xen's Model is rather like Linux and that it's just building the core It's not building a final final shrink wrap product that you get on the CD It's just building the engine that then other people turn into products and the aim is to have that Core engine as the sort of industry standard open source hypervisor that everybody develops on and uses Xen has always had great performance and it's certainly the project's mission to to make sure that we continue to have Industry-leading performance and the way that we've done that is through these two techniques And I'll be going into more detail a bit later But we we always make sure that we're first to exploit any new features that are added to the hardware Whether it's in the CPU the chipset IO devices like Nix or You know scusy host bus adapters or fiber channel host bud adapters We want to make sure that we take advantage of those features which are added to the hardware We actually do a lot of work with hardware vendors to actually tell them What we want to see in the next generation hardware So that's been one of the cool things about working on the Xen project is we can actually you know We're actually getting stuff into Intel and AMD CPUs From conversations that we had about five or six years ago saying we want this feature and now You know, it's it's arriving. We're getting exactly what we want and the same with IO adapters and things like that except that the turnaround time is much quicker So we really are getting the kind of hardware support We need to be able to make a really great job of virtualization And that goes hand in hand with what we've been doing with operating system vendors of getting Changes and extensions added into the operating systems to actually Make them aware of the fact that they're running in a virtualized environment and that can help you get better performance and also Enable more predictable behavior So now there are a lot of people using Xen we have a real burden on us to to main maintain the reputation It has for stability and and co-quality And Now we really have to think very carefully about what we're doing from a security point of view Yeah, certain other hypervisor companies have had quite a few embarrassments in the last few months of having all sorts of security vulnerabilities And that's certainly something we want to try and avoid so we do a lot of work in the Xen project to So sort of do about and about embraces approach to security Well, you have multiple levels of Domains of security and really try and have a minimum privilege approach There's a lot of work on going on Xen at the moment to really try and make sure that's the case We also want to make sure that Zen works from the very big to the very small so at a couple of Zen summits ago There were two talks which were back-to-back one guy was talking about bringing up a bringing up Xen on a 4096 processor I 64 supercomputer and then the very next talk was about bringing it up on a Samsung mobile phone So we really are spanning that that that whole range of systems will be looking at some of the reasons why Virtualization is is interesting on these smaller devices later on So Zen started off as a university project in the University of Cambridge Started I guess depends when you When you define the start point but around sort of 2000 and 2001 it started in in the University and We've always wanted to make sure that it has a close connection To research and is very accessible to to folks in universities and other research labs So that they can pick it up add stuff to it and and really experiment with virtualization We've really greatly benefited from that. There are an awful lot of universities and the top universities around the world You know have research groups which are actively doing stuff on Zen and Ben Zen benefits usually from that We want to make sure that continues the other thing the Zen project worries about is interoperability because You know the the dominant hypervisor out there at the moment is obviously VMwares so we need to make sure that there are tools to Enable interoperation between the two and so there's work being going on to to work with VM where to define something called OVF or open virtual format, which is a an open standard for defining virtual machine metadata and That will hopefully when everybody gets around to implementing it means that there is it will be easy to move virtual machines Between the different hypervisors even Microsoft has announced they're going to adopt this format And there are other areas where you need standards as well such as for the When you're adding these Paravirtualizations to the operating system trying to make it easy to do that so that It will work with different hypervisors. So we've been working on things like paravirtops in Linux, which is a way of exposing Information about what's going on in the kernel to the hypervisor to get better performance And that's actually been done in conjunction with VMware. So the Zen community today is doing pretty well if you look at the 3.x Series which are the most recent series of Zen releases There have been I think some like 250 plus contributors who have submitted You know substantive patches that are made it into the into the code base and If you look at what how the Zen community is made up Then you get these different constituent groups. So they Obviously the main concern of all of the the different vendors that have you know that pay people to work on Zen They're mainly concerned about making Zen work well with their particular products So obviously Intel and AMD have teams of people working on Zen Helping to ensure that when some new feature is added to the CPU that support for it is in Zen Are they trying to get that in so that it's in before the the new processor with that feature ships Zen has already got support for it. So it often ends up being the case that You know the the code in Zen often turns out to be the documentation effectively for the the new feature that's been added because it takes these companies ages to actually Get the You know all of the documentation Signed off so they can actually make it public So there's been plenty of examples where the the documentation is still being top secret But the code has been in in Zen for some number of months so The other sort of group of vendors that are interested in Zen are obviously operating system vendors to make sure that they've got the support in their operating systems to To make use of the the hypercalls that Zen offers to enable them to get best possible performance So obviously folks like Red Hat, Naval, some they're primarily concerned with making sure that their particular operating systems work well on top of Zen And then there are all the different management vendors who are more interested in the actual advancing the management's APIs so I Said that the the research community was very important for Zen and I was just sort of re-emphasized here There's we have folks which are developing new features for Zen But I think one of the things which is particularly cool is there are people coming up with whole new use cases for virtualization so There are some examples of should be talking about later of using virtualization to enable mobility of virtual machines between servers and and and clients and And I think that's going to be pretty interesting So there are lots of universities, but also quite a few corporate research labs IBM HP Intel even the NSA have submitted quite a bit of code to Zen. We get the odd bug bug fix But they've actually submitted some quite substantial patches patches to add various security frameworks to Zen So there's obviously a very large Zen user community and One of the things which I think is particularly interesting is The fact that companies like Amazon have picked Zen up and have built their elastic compute cloud service on top of Zen and That's actually the biggest virtualization deployments in the world. It's running on thousands of machines so although You know, I guess VMware is perceived as being the the market leader in virtualization If you actually look at some of the biggest virtualization deployments in the world some of these sort of well-known companies They all tend up to be they all end up running on Zen And so, you know, I think that's Indicative of the the fact that Zen actually works really well and has sort of good, you know, it's suitable for these enterprise applications So One of the things that's happened in the last year is we set up Zen.org and Sort of moved everything that was previously being maintained by all of the websites and so forth by Zen source is now in this sort of separate Zen.org and there's now a Zen advisory board made up of Some of the major code contributors to Zen to sort of provide management oversight of the project and all things like that So now if we look at Some of the, you know, the uses for virtualization and see how that's evolving over time So The first use case of virtualization was really around server consolidation So the pretty obvious thing of running multiple virtual machines all on the same machine and the reason this was so interesting is because of Something which you know when I got involved in the project. I didn't really really realize was happening but the the way that most companies Organize their IT infrastructure is they have this model of having one operating system image running one application You don't try and put multiple applications into the same operating system because you get all sorts of You know configuration interactions, you know, obviously particularly in the windows world plus also It's often the case that the application vendor won't even support their application if it's running alongside something else So I guess this is less prevalence in the the Unix world But it's very much the case in the windows world and obviously most applications are running on windows So the net result is that a company You know it just ends up having to buy more and more servers like people are suffering from what's called server sprawl and You You know, there are some Companies I've visited like large Wall Street banks where they actually have a lorry turn up every week and just Unload pallets full of servers because that's the rate that they're consuming new servers They have to build a new data center every year to house another 10,000 machines And it's just completely crazy if you look at the utilization of these machines You typically find the you know typical CPU utilization is somewhere between five and ten percent And it gets worse every year because as fast as processes come out with things like multicore as well Each individual applications You know typically able to use even less of the machine So as a result consolidating Different virtual machines onto the same server provides a lot of benefit Another reason that people have been using virtualization is just for For improving manageability if you think about it If you're trying to build a a lights out server server room It's actually pretty tricky today if you're doing it with physical hardware because You know, there really aren't good standards for doing things like power cycling servers connecting to the console and things like that you You often end up buying external boxes to do it because if you try and use the facilities built into the servers There's just not good standards between you know, Dell and HP. Nothing really particularly interoperates like That level at the moment. Whereas if you just put virtualization on everything You then got a standard and secure interface for connecting to the consoles rebooting the virtual machines and so forth The other advances you've got is It's very easy to deploy new images on a given Yeah, when it's on virtualized hardware, it's quite tough to do when You're doing it on physical hardware because you've got to make sure you got all of the right drivers For the particular machine you're deploying it on but in a virtualized world You can have a single image and then just bring it up on some large You know on any of the server plant that you've got and that's also useful for doing things like disaster recovery because it means that you can have another site and You don't have to have an exact identical copy of the hardware on the other site You can have different hardware but still be able to bring those virtual machine images up on those on the machines at the other site also One of the things which I didn't realize before I got involved with this this whole Zen stuff is Quite how much old you know Versions of operating systems there are out there even if you look at the in the Linux world if you look at what versions of Linux are actually You know out there in number and in use and commercial applications. It will be much older than you think so You know we've come across banks where they have Yeah, 15,000 machines running The next 2.4 kernels is from from rail 3 and then they're just beginning their migrations to rail 4 And not at all interested in rail 5 yet because until it's been out there for a three or four years It's unproven You know the bugs haven't been shaken out so That's a real problem for them with all of this sort of legacy operating system versions because none of them will boot on modern machines They just don't have the Yeah, the right drivers or you know the right You know CPU detection so That's obviously a big issue and virtualization can help you solve that by providing this virtualized platform that enables you to run Even legacy operating system instances So if we look at some of the the second generation virtualization benefits obviously you can use techniques such as live relocation where you can actually move a running VM and All of the applications within it to a different physical server without actually interrupting the The the application and operating system while you're doing so typically the the down side down time When you're switching over between the two machines It's typically the order of a hundred hundred fifty milliseconds something like that and the way that works is that you're You start this process where you're synchronizing the memory between the two machines between the machine the physical machine where the VM is currently running and the The v at the machine where you're going to be moving it to So you're copying the memory pages across But noting which pages have been updated since you last copied them on the machine where it's actually running and Then you go back and copy those And you just do that process iteratively until the amount of the number of pages of memory which have yet to be copied is small and Typically when it's just a few hundred pages, you'll then stop the virtual machine Copy those remaining but remaining pages across and then copy across the state of all of the registers in the CPUs the Devices and things like that that will all get transferred across You check everything has arrived safely and then you kill the virtual machine on the original host and Unpause it on the the new host and it will just carry on as before Because that virtual machine because you'll have virtual you'll have migrated You know the MAC address of all of the virtue of all of the virtual network interfaces and so forth with it What will happen is the first packet that virtual machine sends will cause the Ethernet switches to reconfigure and then to virtual traffic to that that location So you really do get seamless You know near seamless anyway movements of virtual machines between physical hosts and you can use that for a number of Number of different uses so one is that if you know a machine is about to fail Because you've just had some yeah I can I PMI warning telling you the fan is about to fail or a smart warning telling you the hard disk is about to fail Or you just want to perform maintenance on the server you can evacuate all of the virtual machines off it onto other servers and then just Yeah, take the machine down for maintenance and Similarly you can use this VM relocation for performing Yeah rebalancing of workload across a set of physical machines, so if you've got three VMs running on one machine And they're you detect that they're overloaded you can you move one of those VMs to another machine so this kind of capability is particularly interesting to You know companies like hosting providers or in fact anybody who's just got a set of virtual machines that they want to run on a Pool of physical hardware and they want to move the virtual machines around to to maximize the performance that each of the OS images gets But in the hosting provider case it was really one of the main drivers for Zen because if you think about it they if you had a You know hosting provider with a single machine might chop it up saying to ten and sell it to ten different customers And then if they had ten machines You know, obviously they could that sell it to sell these ten machines to a hundred customers But as soon as you start having the ability to move the workload around You can actually add more customers But arrange that the ones that are actually using their virtual machine at any one time are on different physical physical hosts you can actually add in more customers and The sort of satisfaction that the customers have with the service remains unchanged And so, you know some hosting providers found that rather than selling ten machines to a hundred customers They were able to sell it to 200 customers and the customers would be equally happy and they'd be making twice as much money So that was really, you know, one of the main drivers for for Zen's wide deployment by hosting providers So one of the other interesting things you can do is to enforce security policy, so You have this Situation today where you're really reliant on the administrator inside each of those given virtual machines to actually have configured The virtual machine properly to make sure that things like You know the firewall is set up, but they're remembering to To back up all of the stuff within the the operating system, etc but One of the cool things you can do with virtualization is to actually enforce some of this stuff External to the given virtual machine So you can actually implement a firewall within the virtualization layer So it doesn't matter if each individual virtual machine has it configured correctly because you can actually Do that defense on their behalf if you think about it. It's like taking a You know an external firewall that you might have at the the edge of your organization and then bringing it Inside and putting it directly in front each virtual machine actually Implementing as part of the virtualization platform and not only can you do that with things like security With things like firewalls you can actually do things like virus scanning on behalf of all of the virtual machines as well So you don't need a copy of Norton or whatever inside each of your Windows VMs You can actually just have one copy and then scan all of them and also You know things like that tend to work better because obviously the first thing that any Varus or Trojan is going to do if it gets inside a virtual machine is to disable the virus scanner Whereas if you're doing it outside of the the VM looking inside it you can actually avoid those kind of things from happening Some other things which I'll talk a little bit about later We've actually done some work to detect when it looks like virtual machines may have been compromised So we can actually provide some facilities which provide Better security for operating systems when they're running in the virtual world than they would actually get in the physical world So one example is this idea of having immutable memory So the idea is that for areas of the Say a Linux kernel or a Windows kernel You know that after the OS has been loaded they should never change so things like the system called table and you know all of the the kernel Kernel code really ought to be changing after the VM has booted so you can What the VM can do is register that memory and irrevocably give up right access to that memory So no matter how hard it tries it will never be able to update those physical pages And so it just tells that to the hypervisor which then enforces it So the cool thing about that is that when your Root kit, you know tries to install inside the VM and start patching all of these things It will try writing to these areas of memory which are immutable and you'll catch that and you can then You know suspend the VM put it into quarantine and then go and poke it with a stick later so I've gone through Some of these benefits of this is just putting it in in textual form, but the idea of rather than just having one hypervisor If having a pool of machines running Yeah, running Zen or running running a hypervisor and then making use of the fact that you can have a pool of virtual machines Running above the pool of physical hardware and you've got flexibility about how you map and move those virtual machines around between the hardware How you can enforce administrative policy for things like back up firewalls virus scanning and also a Another thing which is quite cool is the fact that you can abstract the physical world complexity So this virtual machine can think it's just got a simple IDE or scusy disk Inside it whereas actually That disk might be some complex You know raid raided disk with you know multi path configurations to get to the disk and Rather than having to expose all of that real, you know horrid nasty complexity of the physical world to each Administrator of each virtual machine. They just see a single you know simple disk that is actually backed by this much more complex physical setup so some of the other things that virtualization enables is it actually simplifies application certification, which is something which turns out to be really important in the in sort of in you know the in commercial computing is that the you know given application has been certified on a given operating system and that operating system is certified on a given piece of hardware and By separating that out to having the application Certified on the operating system the operating system certified on the hypervisor and then the hypervisor on the hardware Although you end up with more steps. It actually makes things easier for the application vendor because they can pick a given operating system they want to certify their app on and then Everything else is taking care for them. So rather than having to worry about certifying on Several different operating systems, you know all different versions or you know windows and Linux they can just pick one and then know it's going to work so I think this is actually going to be quite important for increasing the take up of use of operating system, you know open source operating systems like Linux because you know the vendor can just pick the one they want to support and then know it's going to be Available everywhere. They can actually ship a virtual appliance Containing the application already installed in the operating system and know that it's being configured and set up correctly So I think this is going to be a very common way of packaging software in future where you ship the application already installed inside the the operating system instance, and I think that's going to be very good for for open source operating systems so Second-generation virtualization has has excellent performance and that's really been brought about by using these Facilities that being added to the hardware and operating system power virtualization. So if we sort of look in more detail at that So multi-core processors You know meaning that you're now pretty pretty much every server you buy or each CPU is going to have at least four cores and You'll typically have one two or four sockets And one of the things which is interesting in Intel's next generation processor architecture Called neolim hyper threading makes a comeback. So as well as having the four cores You're going to have two threads on each core. So you're going to have effectively eight CPUs Well, you know at least as exposed to software within each Within each socket and then maybe 16 even a pretty basic, you know to socket server and the fact is that Yeah, most operating systems and applications haven't really caught up with that You know, there are plenty of applications which are still single threaded and certainly plenty of operating systems If you start doing heavy IO starts showing real scalability issues what it you you get Much above for CPUs So virtualization You know, it's a really good way of just chopping up physical systems into a number of smaller ones and Enabling you to run, you know existing applications and operating systems on them. So Yeah, there've been a number of times where We've seen some surprising results because you wouldn't expect virtualization to ever improve performance You know if you're talking about, you know total throughput of a system because there's always going to be adding some amount of overhead hopefully a small amount of overhead but we've seen plenty of instances where Somebody had been running one application say on a for CPU machine and They found that they got rather better throughput if They ran Zen on that machine Created for uniprocessor instances, you know for uniprocessor VMs and then ran a copy of the application in H And the total throughput that they got was rather better than just running a single instance because the application didn't have the the SNP scalability that That was necessary But even things that you would expect to scale well often don't we've seen things like that happen with Apache We can actually get better performance running multiple web servers each in their own OS rather than running one on a big machine so obviously Zen makes use of Intel VT and AMD's AMD V There are other new hardware features which are emerging within the CPUs such as nested paging support and Intel call this EPT AMD call it VMI and This This avoids us having to use a technique called shadow page tables one of the biggest challenges of a virtualizing the x86 is dealing with virtualizing the memory management unit and What you have to do is to Effectively, you know when the guest writes the pages which contain page table information In general those pages which it's writing to thinking of page tables are not the pages which page tables which are actually used by the The processor and so what you have to do is you have your own copy of those pages called a shadow page table And you have to keep the two in sync so when the guest updates an entry you have to make sure you update that entry In the shadow, but then as the processor runs It's making changes into the shadow to to update things like accessed and dirty bits and you have to propagate that information back to the To the guest page table Otherwise bad things happen like if you don't propagate a dirty bit, you know Linux will think a page isn't dirty and won't bother writing it out to disk when it when it swaps it or be able to just just throw it away, so This is a really tough challenge Implementing the shadow page table algorithm to get good performance yet maintain the right You know to maintain the integrity So I think we're rewriting the shadow page table algorithm is end for the sixth time at the moment And we get better and better each time and we're now at the point where You know, we're doing a much better job than we really thought we would be able to a few years ago but now all of the hardware vendors are Adding support to make the shadow or to actually avoid having to use shadow page tables that the hardware will actually do this Translation of virtual addresses Into what are called guest physical addresses because the guest thinks it owns the physical memory of the machine But it doesn't really but there's there's another level of translation into real machine physical addresses Which is where the you know the memory that's actually being used and the hardware will do that for you so now there's this Competition going on to see which works better using The the hardware support or using shadow page tables There's pretty neck and neck at the moment AMD are shipping these chips that have VMI support And so Zen shadow page tables you actually wanted turned on for some benchmarks and other benchmarks You want to let the hardware do it So there's an interesting thing going on of trying to choose dynamically depending on the workload whether to do it in software or hardware and That's key with with many of these these things you actually want You know you can't solve the whole problem in hardware You can't solve the whole problem in software You really want to pick the the best features of both to come up with the the ultimate solution so the other big load of work that's happening in Zen is make taking advantage of I O devices which have been designed with virtualization in mind and I'll talk a little bit more about that in a later slide so the The other big thing that helps us get good performance is the changes that have been made to the operating systems To to make the job of virtualizing them easier and so You know in the when we sort of came up with these techniques We called it OS para virtualization that was when it was a yeah research research project in the university The the marketing term which seems to now have been adopted by most companies is OS enlightenment So That's what it means if you hear that term So the idea here is just You know it goes hand-in-hand with this hardware virtualization Assistance is being added to the to the CPUs etc. But by using the two together you can get better performance so Just to give an example Back the If you're on a SNP system Or you know you're you're supporting SNP guests as Zen has done for a long time You can add Facilities to the operating system to tell the hypervisor About various events which are quite common on SNP systems supposing you want to flush the TLB Or you're supposing you've updated the page table for some particular process you then need to make sure that all of the CPUs Flush their TLBs or flush certain entries in the TLB so they can synchronize against this new page table if you're trying to do that purely With hardware, you know emulation of what would happen on a physical system. It's incredibly complicated because the the CPU that sides it wants to do the flush is going to have to talk to the a pick Local a pick to try and send IP eyes to all of the other CPUs which will then try and flush their their TLBs Whereas if you're running on a hypervisor, you can just call down to the hypervisor You can make a hyper call saying please flush the following page table on the following list of CPUs And then the hypervisor can just do that in one go and you'll be talking about a few thousand cycles instead of You know 50 a hundred thousand cycles if you try and do it through emulation in fact real realistically It's probably something like several hundred thousand cycles and You know the good news is that these OS Enlightments or power virtualization extensions have been adopted by every commercial OS vendor and many non-commercial ones like you know Net VST previous D etc They're all of those Virtualization extensions are available for those OS is and as a result you get a much better performance when running on Zen So even Microsoft have adopted Enlightenment or you know power virtualization so Windows 2008 Can detect that it's running on a hypervisor and then we'll make hypercalls for for when it wants to do some of these things It really doesn't make very many Make make use of many of these hypercalls at the moment, but presumably in future releases. They'll get better at it so Zen is a true hypervisor design So if you look back to you know, there's a lot of work done in virtualization in the the 60s and 70s and IBM came up with this this term hypervisor And it really meant a thin layer of software that was the most privileged layer of software in the whole system and You just do the bare minimum in that layer to virtualize the the CPU and memory management Intrupt time and timers and things like that and try and push everything else outside and that's exactly what Zen does You try and do as much as possible Outside of the of that core trusted piece of code and If you implement everything else in the way we try and do it in Zen Is actually running those facilities in other virtual machines? Because the virtual machines can be very lightweight. We have Some virtual machines running on Zen that are based on something called mini OS Which is kind of like a minimal OS implementation that runs as a Zend main They can just be a few hundred K in size and can provide you know services on behalf of other guests So the idea is by pushing all of this outside of the hypervisor it improves the Better and make enables you to maintain security It also enables you to to have Very efficient scalability It's a very large SMP systems because you haven't got one operating system image that's having to see all of the processes As you would have in say a hosted hypervisor or a hosted virtualization environment where you have one host operating system That sees the entire machine all of the CPUs all of the memory On Zen. We just don't have that problem Here's only the hypervisor, which is this very thin layer sees the whole machine and By having this small You know trusty computing base It's it's definitely good from a security point of view So there's a lot of work in Zen at the moment to further deprivilege the system and to break services out into these service partitions to Improve security and actually if every time we do that it tends to improve performance as well The other advantage Zen has got is that it's completely operating system agnostic Yeah, it doesn't have to use Linux or You know any other OS for the control plane and so You know, I think that for where we want to take Xen It's very important that we are platform agnostic or OS agnostic So anyway, if we look at where Zen is going we've got Various things coming together. So the overhead of virtualization is getting smaller By by this hardware assistance and through power virtualization The net result is we're going to end up with near-zero overhead Particularly when these these smart IO devices are ubiquitously available So we believe that virtualization is going to be always on That you will you know in a few years time But she wouldn't dream of running an operating system on bare metal again You'll just have when you buy a machine it will have a Hypervisor installed upon it and then you'll just be instantiating virtual machine images on it If you think about it, that's how it was in the days in the main frame I think it's how it's going to be on on PC hardware and not too distant future so Zen's goal has been to Architects itself to be this best choice for ubiquitous virtualization, and we're actually seeing that happen in You know just just later on this year A number of the the top tier operating system vendor top tier hardware vendors are actually going to be Shipping servers where having Zen embedded in the firmware of that server is actually an option So when you're buying your server, you know you select Zen And then we'll come embedded in flash on that server and I really think that that is the way things are going to go That we're going to end up with the hypervisor just built-in part of the platform And then you just instantiate operating system images on top So I think it's it's really cool that we're getting you know GPL code out there Hopefully, you know on every machine that's leaving the factory. Hopefully people will select that Zen option And we'll really get you know this huge uptake in GPL software Out there in the wild So if we look at where we're going with Zen server with with the Zen roadmap for servers There's obviously a lot of work around You know always improving the performance and scalability One other thing which is interesting is now that the Microsoft have made the spec for for Windows 2008 more open we can actually natively implement the of the hypercalls which Hyper-V has to enable Windows 2008 to run Paravirtualized on Zen so they obviously the aim is to do a better job of running Windows than Microsoft So Let's just skip some of these these slides So one of the things which is is happening is then is moving from the server world through to clients so I think We what we want to do is to make a really good job of getting Zen running on laptops, so you'll be able to have VMs that provide Secure improved security and manageability for client systems and also be able to have things like instant-on VMs For accessing web browsers and email that when you turn the machine on the hypervisor will just boot in a few seconds And then you can actually switch between different VMs So you might have a dedicated VM for web browsing so you wouldn't have to wait for Windows to boot on a client You could just access this. Yeah, if you just just wanted to do some specific functions You could use these inbuilt instant-on VMs And there's a whole load of work that we need to do To better support that such as passing things like the graphics device directly through into guests So that we can actually make use of all of the 3d hardware So I talked a little bit about about mobile phones and this is work done by Samsung to get Windows running to get Zen running on these arm-based mobile phones Where you have three VMs? One VM for controlling the radio one VM for Running all of the vendor supplied software and then another VM for running anything you download so You can download basically any junk to the phone, but you're still be able to make emergency calls so one of the other just finally Project I want to highlight is this very cool thing that's happening on Zen to Enable Zen to have hardware fault tolerant VMs where you run two VMs on two physical machines in lockstep so rather than just doing this Process of of live relocation So when that's kind of when you plan to move a VM from one physical node to another In this mode of operation, you'd be running the two VMs in lockstep So that you could walk up to one of the machines Just pull the power plug out and the VM would just carry on running on the other Other machine so the net result is there'd be you know no downtime at all and you then have be able to tolerate hardware failures and of course you could Just rather than just having one virtual machine you can have or two virtual machines in lockstep You could have more if you wanted to be able to tolerate more failures. It also looks like you could Locate these virtual machines some distance apart depending on the application Some applications are a bit sensitive to the to how close they are but you could you know certainly Some of the banks are interested in having you know one virtual machine running in New Jersey and one in Manhattan Connected connected together so that if something bad happens to one of their sites all their applications just seamlessly carry on running at the other site and There's this project called Remus, which has been doing exactly that on top of Zen and obviously we want to to get these kind of Facilities back into into mainline Zen and there there's a lot of interesting discussion about the Yeah, the techniques that have been used where you're continuously checkpointing the VM and transferring the state to the other location or whether you're Running the VMs in in lockstep using it's called deterministic replay techniques. There's a lot of really cool stuff that's been done on Zen here So anyway conclusions this talk, I think you know Zen is really coming of age It's becoming a key platform components. We're going to see it widely embedded in in server firmware and You know We've really you know, we think the work has paid off of architecting Zen for this ubiquitous virtualization and We believe that it's going to become a reality in a few years time So now I think the interesting Challenges are Getting Zen as pervasive on clients as it is on service and then ultimately down to mobile mobile phones So if you want to to get involved with the Zen project, then you can download and you know play with Zen look at the source code, etc from Zen.org if You just want to actually sort of use then and in a simple deployment and don't want to figure out how to set it all up Then I'll just briefly plug Zen sources Zen server Express, which is kind of like a you know, see a single CD that you put in the machine and install it If you don't want to mess about configuring things yourself So anyway Thanks for listening. Well, I guess there are a couple of minutes of questions two minutes Hi Right. Well, the key thing there is that When you do the failover you've got to wait while you reboot You know boot another instance of that application and then it's got to run You know for circle do its own internal consistency checking and then the application will be up and running at this this new location, so you're going to be looking at a downtime of You know at least tens of seconds if if not a couple of minutes for something like a database while it sorts itself out What we're talking about with this fault tolerant stuff here is running two virtual machines in lockstep So when it fails over to the other machine the entire state of the application You know if you're logged into this machine you can be sshed in Pull the plug out of the machine and you're still sshed in on this other machine So it's the entire status fault has failed over not just the copy of the disk image Yeah, that's occurring all of the time making sure that the the two VMs are in lockstep Yeah, so Zen scheduler enables you to set Weights and caps so you can say I want this virtual machine to have ten times more resource than this one or I want to Limit this virtual machine to have no more than You know 500, you know 50 milliseconds of CPU every 200 milliseconds So yeah, you have you can do some of that scheduling for IO as well, so So I'll just answer this question. They are actually out of time, but the So virtualization doesn't improve performance in general, right? It's adding overhead but the overhead is getting smaller and smaller so For something like networking networking is one of the hardest things to to virtualize because if you think about it a Packet arrives on the machine You then got to determine which virtual machine you're going to deliver it to and you typically have to copy that packet So there's an extra copy that you have to generally do to virtualize the network but we've been working with network card vendors to actually Encourage them to build smarter hardware that we can push information down to the card So that when a packet arrives, it can already Demultiplex it to the virtual machine that's going to receive it So you don't have to do that copy and so there are now a whole bunch of different network card vendors solar flare Broadcom Intel You know Chalcio that are all building network cards Which when running in a virtualized environment will deliver the cut the packet directly to the VM And we're actually seeing that say in the case of the solar flare card You can get line rate 10 gigabit per second networking into a virtual machine exactly You know within a couple of percent of what you would get Into a into a physical machine running on bare metal So I really think the overhead of networking has pretty much been solved if you're using this modern hardware Okay, thanks. Sorry. Just come up later