 OK. Hi, everyone. My name is Aiden. I'm from GridCentric. And today, I'm going to tell you a little bit about virtual memory streaming. So I probably don't need to tell anyone here, all of you. But the use cases for virtualization are changing. The classic use case is that you would take these single server applications, sort of vertically scaled applications, and you consolidate them onto the next generation of hardware that's five times faster than last generation of hardware. But today, particularly with OpenStack, what we're seeing is that virtualization is being used to help deploy large scale horizontally scalable applications. So web services, you've got some front end tier, and you're going to deploy dozens or hundreds of VMs in your front end. Virtual desktop infrastructure, you're going to have hundreds or thousands of seats that you're running with this one application that you happen to be running in a virtual desktop infrastructure. And so the use cases are a little bit different. The question that we ask ourselves all the time at GridCentric is, how can we improve virtualization for these newer use cases? And one of the things that that kind of leads us to is, why do virtual machines still have many of the same limitations as physical machines? We're running different kinds of applications that we used to run. We're not treating them like physical machines, but we're still booting them and treating it like legacy infrastructure in a lot of different ways. So that kind of led us to create our technology, which we call virtual memory streaming. And a good way to think of it is kind of like fork for virtual machines. So instead of booting virtual machines like you would, physical infrastructure, loading operating system, loading applications, loading data, taking a few minutes to get that ready, you just start with a virtual machine that's completely ready to service requests, ready to go, everything's set. You take a snapshot from that instant, and then you can just fire off copies of that virtual machine. So you don't do any booting. Virtual machines come up faster. They use way less resources because you can limit it to exactly what it needs in terms of memory and disk. So the way that kind of manifests itself for OpenStack and our product for OpenStack is a couple new primitives. So we extend the NOVA API and give you some new actions that you can perform on server objects in NOVA. And those actions are live image create. We also call that bless. And that's where you create the snapshot of the server and live image start, which is what we call launch as well. And it maps pretty easily into cloud workflows. So instead of booting new instances, you're just going to be launching new instances from some snapshot that you've set up previously. So to demonstrate this, I'm going to go over a quick demo and to kind of distort the realities of Wi-Fi connectivity, I actually recorded about an hour ago. So I'm just going to pop that up here. And hopefully, you can see it. Excellent. So everyone recognizes standard Horizon dashboard here. What I'm going to do an hour and a half ago is boot a new Windows instance. And this applies to all kind of horizontally scalable workloads. But I'm picking Windows because it's got a nice GUI that people recognize. And it'll show the concept very clearly. So I'm going to boot one instance. And it'll go through these standard phases. And thankfully, since it's a video, I can distort the reality of time as well and kind of skip ahead a couple minutes as the instance is booted and ready to go. So there it is, the top active state. What I'm going to do is open up a VNC console into this instance. And I want to kind of show off the core idea of taking this VM and freezing it at a moment in time in far enough copies. So I'm just going to log into this VM and somehow permute it so that you'll be able to recognize it when you launch a copy from it. So this is a freshly booted Windows instance. I don't think we'd booted this before. And there's a little kind of proof point here that it is a freshly booted Windows instance, which I think is the network dialogue. There we are. So how I decided to permute the instance was just to bring up paint and create a unique drawing. I think I just write VMS in paint. So I think it's pretty hard to duplicate that. And now what I'm going to do is go back to that dashboard and our product plugs into all the different components of OpenStack. So we have standard dashboard plugins. You can see I'm just going to pause it for a quick second here. What it is, click that dropdown and click Bless Action. That's just calling the API extensions the Bless operation. I'm going to give it some name. And Bless, like I said, is creating this live image, is creating a new instance that's frozen in that exact state. So fast forward a few seconds here. And I have the blessed instance there on the top. And what I'm doing is actually executing the launch action on that live instance. So I'm firing off a new copy from that clone. So I think I do two, just for fun. Still going through the standard networking set up. Once an instance is actually started and active, one of these clones, it will take up far less memory resources. It'll take very little IO to get started. But after that point, it'll look like a normal VM to all the management stacks. So you do an over delete on a launch instance. It doesn't look any different. If you have accounting tools, it'll emit all the usage events that are standard. So I'll bring up a VNC dialog to the clone VM here and just show you that it's in exactly the same state that that blessed VM was. There it is. So it's totally functional. It's actually, you can do this across any number of hosts. The state for devices, memory, and disk have all been serialized into distributed storage in this case. This is our little demo cluster. And it's actually pulling in the memory state on demand. So it'll start instantly, even if it's a 16 gigabyte instance or whatever, it's going to start using zero and pull in the little bisonese on demand. So I'll open the second one here just to show you that their independent VMs normal after this point. I drew the line under VMS in the first one. This one is still exactly in the same state that it was when it was blessed. So that's the core concept. I don't think I'm waiting for the fade out here. You can also bless or create snapshots from these VMs after this point. So you can kind of have a tree of these snapshots. There's nothing preventing you from doing that. So now the question is, why use VMS? And I've mentioned a few of these, but I want to kind of hammer them home. Fast VM provisioning, no matter how big your service is, how big your application is, it's going to start instantly and be ready to service requests. Efficient storage and memory really cut down on the overhead, the memory overhead that you require per server. They're going to share state. So if you have some big horizontally scalable application and you want to cram as many into your infrastructure as you possibly can, this is a really effective tool of doing that. And there's also a lot of Windows magic that's happening in the background there as well. If there's time, I'll show it at the end. But we allow this kind of dynamic identity reassignment for Windows VMs so they can get new names, they can rejoin the Active Directory infrastructure without having to reboot or reprivision or run any special tools to do that. So overall it's just a better delivery system for scalable workloads. So I've made a couple of claims here about the reduction of memory and startup I.O. And I'm just going to kind of resume my video here and demonstrate that's true. So we have a tool that we give out for free. It's open source and I have a little slide about that called Canary. And Canary is basically an API that lets you access, collect the like RLD statistics that are stored on the hosts for instances and for the actual hosts themselves. So it's a pretty cool little monitoring framework. And what I'm going to do is just pull up the statistics for that clone VM. So this chart on the left there is actually the memory usage of the VM. I think I started it like three minutes ago or four minutes ago. So this is memory usage four minutes in. It's a two gigabyte Windows instance. It's currently using 350 megabytes of memory. And that's with PaintLoader doing all its magic. And even more interesting here is the disk IOPS that this VM has actually performed. At its peak there, the clone performed about 20 IOPS. So I'm guessing that's when I logged in. And what I want to do is just bring up the booted instance that I cloned from and show you the disk IOPS for that VM. So to give you an idea as to like the difference in scalability and the amount of storage that they use. Storage question. So it is there. So the clone was 20. The original VM actually peaked at the beginning. The kind of bootstorm was just above 700. So that's a pretty substantial difference, especially if you're running a lot of infrastructure, a lot of Windows infrastructure, like a VDI deployment. So I mentioned this very briefly. But that tool is called Canary that gathered those statistics. And I just want to plug it because it's quite cool. Basically leverages collectee in the back end, scalable, and it's open source and easy to install and available for free. So this is kind of like two demos in one, really. So since we're kind of focused on the Windows use case because it makes a nice demo, I thought I'd go one step further and show you what happens when you take this to its logical conclusion, which is running Windows infrastructure on OpenStack, which is something we've got as well. So we have a product called Reactor, which is kind of like a scalable service broker. And it'll take that extra management step out of having to launch these instances, and it automates that step. It also does RDP brokering for doing Windows deployment. So this is the GUI for Reactor. You can see it's running two servers actively. And what I'm going to do is just connect through this service to one of those Windows VMs running in the background by RDP and highlight the fact that these VMs were started. They were rejoined to Active Directory, both these things that I did. They were given unique identities, which is something you'd normally have to install special tools, and use special tools, and reboot the VM, and place a pretty heavy load on your infrastructure. So this is a super lightweight way of doing that, which I think. So that's the demo. Visit us. And I'm happy to do this demo live or go into detail on the technology and how it works. We have white papers, and hopefully it was pretty interesting. I can also give you information on that host monitoring tool, which you're free to download, and install, and use, and contribute back to, and anything you want really. All right? Questions?