 Good afternoon, everyone. How's everybody doing? All right, good deal. Well, a few of you are awake still. That's good. So thanks for coming in. I'm going to take the next few minutes, and I'm going to be showing off some integration that VMware released with the Grizzly release. This is an updated set of code that will let you run vSphere underneath OpenStack. So if you wanted to deploy vSphere as your compute virtualization layer underneath OpenStack, this new driver will let you do that. So first rule, live demos. Never do live demos. This is a live demo, right? Hopefully it will go better than the HubSpot demo this morning. So I'll keep our fingers crossed. But what I would like to do first is just show you guys real quick what the demo environment looks like. So if you're not familiar with this, this is the vSphere web client. I'm just going to log in here to a vCenter instance. And I'll just show you what we're using for the demo. This is a live demo that we're running this out of a lab inside Palo Alto at VMware. So we've got a vCenter instance as a single vCenter instance running the vCenter server appliance, which is a virtual appliance. We just deploy it onto the infrastructure, right? Inside this vCenter instance, we have a single cluster. And this cluster, imagine it's only named NVP cluster in our 01, right? The nice thing about this thing is this cluster is actually taking advantage of some of the advanced vSphere functionality, like vSphere HA and vSphere DRS. So if I look at this cluster, you can see the cluster is enabled for vSphere DRS, which means it's going to do intelligent placement of VMs, both when they're scheduled to run on the hypervisor, as well as while they're running, intelligently load balancing them across the cluster. So you get some heavy workloads. It might move off live migrate VMs off to another host, right? And also enable for vSphere HA, so that if a host were to fail, then the workloads would restart automatically. Now it's not to say that you need that for every workload in your environment, but you might have a certain class of workloads that you want this functionality to be present for. And the fact that it's exposed here with this driver is very nice. So inside this particular cluster, we've got some number of hosts. We've got some ESXi hosts. We have a bunch of virtual machines already spun up already. Just take note of that number, 33, right? There are 33 existing VMs. I just point that out because it's going to change in a minute. So I'll call you back to that, right? Note also that we're taking advantage of a feature called Storage DRS Datastore Cluster. So I have a couple of different NFS data stores that are clustered together into a single Datastore cluster. And this Datastore cluster also has Storage DRS and IO metrics enabled, which means that when we place virtual machine images onto this particular environment, it's going to dynamically place those images onto the Datastore based on utilization, space, consumption, et cetera, et cetera, right? And that's all done automatically. It's nothing exposed up at the open stack level. So I'm just going to jump back real quick here. Now that you've seen a little bit about the environment, I'm going to pop here into the tasks pane, not because it's exciting or thrilling, but because we're going to be doing a bunch of stuff, and I want you to see these things popping up on the back end as we do them. So I'm going to flip over here. And this should look familiar to you. Just going to log in to Horizon here. And you'll see a pretty standard-looking Horizon dashboard screen. We've got some instances running right here, which we'll also be able to take a closer look at right here. These are all instances that are running on that vSphere environment underneath, right? We've got them spread across a couple of different networks. The networking is being provided by NYSERA MVP running underneath quantum. So we're provisioning networks programmatically inside OpenStack. They're being turned up through the quantum APIs into MVP, and MVP is connecting them onto the ESXi and the vSphere infrastructure underneath, right? I have one image, an Ubuntu image. I just didn't have time to populate a lot of different images in here, but this will do what we needed to do. So what I'm going to do real quick is I'm just going to, actually, before I do that, I want to flip over and show you one more thing real quick. This is a command line, which you probably can't read from back there. And this is running on our Nova controller. So I'm just going to show you that this is a real live Ubuntu VM. This is not anything that we've doctored, right? It's actually running. The services, the only one you see disabled here is Nova Network, and that's because we're running quantum. Dan's excited about that, right? And then just to give you an idea of what this looks like, I'm going to show you inside NovaConf that the particular driver we're using here is called the VC driver. So you can see right here, we have configured Nova to use the VMware VC driver that was released with Grizzly, and that's what allows us to deploy instances to a vSphere environment. It treats a vCenter instance like a Nova compute node and deploys instances onto that vSphere instance. So let's actually see it in action. So we're going to go ahead and click right here inside Horizon, and we're going to say that we're going to select from image. I will come up with a very descriptive name. We have our list of flavors here. Let's just deploy a small one. I'm going to go over here. I'm going to connect it to one of these networks. Oh, that's the wrong one. I'm going to connect it to this network. And then we'll just click OK. And then you'll see it coming off as it's building up networking, and then it's going to move into spawning, right? So we can see this stuff in action. I'm going to flip back over here and refresh the tasks pane. And you will see that another instance has now spun up. So right here, you can see it created an instance called instance-000042, right? It's then going through and doing some reconfiguration. It actually uses, in vSphere terminology, what we call a delta disk. So it copies the image down to the host or to the data and then creates a snapshot disk to store only the differences for that particular instance that you're spinning up. So similar behavior is what you might see on other platforms as well. And I'll refresh this again so now it shows that it's powered on the virtual machine. So if I just click and go directly to that virtual machine, you'll see that it is booted up, right? So here it is. It's booted up. It's running a boot to Linux. It's gotten an IP address off of the network to which we attached it, right? I can go right here and launch a console and actually log into this guy and show that it's gotten an IP address off the network that we attached it. It's turned up. It's there. And if I wanted to ping another one of these guys, I think this instance is still live. There you go. See live demo. I had a typo on my command. All right. And this is another instance that was already running attached to the same network. So we show that we turn the instance up. It connects to the network. We've got connectivity. Everything's great, right? So let me run that if config command again. Everybody make note of the MAC address you see right there, especially that last bit, 515E28. What we're going to do is not release my piece here. Just going to minimize that console. And I'm just going to flip over here to MVP Manager. MVP is running the networking behind this, OK? And we are just going to show that VM is actually attached to a logical switch port on a logical switch created by MVP through the quantum API. So if we look over here, we can see that this VM right here, this logical switch port, has the VM's MAC address associated with it. So that just kind of shows, kind of brings it full circle. We went into Horizon. We spun up an instance. Through Horizon, it called quantum. It's great to logical switch port. Attached the VM to logical switch port. Copied the image down. Spun up the VM. The VM has connectivity. Everything's cool, right? Cool so far? Yeah, OK. So let's go back and do a few more stuff. Let's spin up another instance real quick. You want to look at the VMs? Sorry, I asked your question again. You want to look at the VMC console through the dashboard? OK, hold on one second. Let me get out of here. So I think in this particular environment, the VMC dashboard does not work. That's for this environment, right? And that's just because of the way this thing works. But you can get to it through any other method you would normally get to. Yeah, there's some other settings on the firewall and they host themselves and that kind of thing to make it work. So it doesn't work in this environment. But yeah, in a properly configured environment, other than my demo environment, you would be able to. So I'm going to go back and we're just going to spin up another instance real quick. And oh, no, I need to attach my network. All right, and same scenario here again. We'll see. It'll spin up the spawning task here in Horizon. And I could have cloned it and given it the same Mac. I turned it to a different network just to show you that we've got the full functionality and that we have connectivity and that you wouldn't be able to connect between the two networks, right? Which is kind of self-explanatory. But again, just showing you this is not smoke and mirrors. These three are being integrated into OpenStack. So if I flip back over here on to tasks, we'll see a new instance has been created and powered on. And I could go to this instance and see that it is running, again, Ubuntu. And it hasn't finished booting up yet, so you don't see its IP addresses here. But you'll see that we didn't select a host when we deployed it. It just automatically put it on to .24, right? And if we go back, then we may find that some of the other VMs, like if I go back to 42, we may see that 42 was actually deployed on different hosts. And that's because of the intelligent placement through DRS enabled at the cluster level, OK? All right, so. And if I go back in here and just note we said 10 logical switch ports, now if I refresh this, we will see 11 logical switch ports, right? Now, we didn't log into the console on that one and actually see the MAC address, but you can see that it is turning up additional instances. Yeah, real quick. Right. So he was asking a question why we have a bunch of VMs in vCenter and we don't have them in Horizon. That's because we're actually running a bunch of support structures to make the demo possible as VMs, right? So in a normal production environment, you may not be running your Nova controller as a VM on the infrastructure it's managing, but in this case, we are. We've got some of the MVP components that are running virtualized, and then we've got just a bunch of other VMs that we use for other purposes, this lab. Yeah, they were created outside of Horizon. It's not a limitation necessary. It's just that they're created and managed outside of Horizon for other purposes than for this demo, right? All right, so we'll show just a couple more things real quick because I'm running short on time. I'll show you that we can go in here and suspend an instance, right? So it says, OK, I'm suspending the instance. If we flip back over here, and again, look at our tasks pane, then you'll see that it is suspending the instance. This will take a few minutes because it's actually writing memory contents and stuff out to disk, so I'm not going to sit here and make you watch the spinning bar, but you get the idea, right? And then, of course, you can also go in here, of course, and terminate instances, right? Just to kill them, same sort of scenario, right? You go in here, we schedule termination of that. If I flip back over now to the web client and refresh, you'll see a series of tasks in here where the machine has been powered off, unregistered, out of vCenter, and deleted from the data store, right? So it's gone through all the tasks of cleaning everything up. We're getting ready to be done with our suspending, right, just about done there. And I'm going to let that finish just so I can show you guys when we flip back over into Horizon once this thing shows completed, OK, that last little bit. All right, there we go. All right, so now the machine 42 is suspended. If I flip back over here, we'll see that it shows suspended, right? OK, and when I go back over here, we'll see that it shows suspended, right? So I was able to suspend the instance, terminate the instance, whatever I need to do. If I want to go back in here and resume this instance because I want to turn it back up again, right? Then, again, we just click Resume Instance and go back over here, Refresh. And this guy will switch to now Powered On. I'm back up and running again just like he was before. I can kill this guy just like I did previously, terminate this instance, OK? And there he's terminating. When I go over here, we had 11 logical switch ports. If I can now query that, we killed two VMs. We should drop back down to nine. There we go, it just shows that the logical ports being terminated and destroyed as the instances are destroyed from OpenStack Horizon. And then in here, we now show that there are the instances that we were messing with are now gone. So questions? Yes, you can. It's not exposed in this demo, but yes, you can. Here, all right. Yes, other questions? What was the question? Oh, sorry, thank you. Question was, can you attach volumes? Yes, you can attach volumes. We didn't show it here in the demo because the demo environment didn't have already, but you can attach volumes. So other questions? Subject of same limitations as Cinder currently has. So if those regular OpenStack piece will do it, then we can attach it the other way as well. We're just calling Cinder APIs, right? Yes, question in the back. The VNC console. Yeah, of course, you can definitely see it inside vCenter and in a properly configured environment, which our demo environment was not. You can see it at the VNC console inside Horizon as well. Yes.