 Hi everyone, my name is Amol Chaubey, I'm a principal development architect at Erikson and today we have Hands On Lab for OpenStack Manila. I'm here with my colleague, Chaubey. Hi guys, my name is Sudhir Ketamaka, I work with Amol on a cloud management solution in Erikson. I'm here pretty much to help system all. He's the expert here for my lab but I'll be able to answer any basic questions you have about setup or DevStack while we do this lab. Thanks Sudhir. This lab session is divided into three different parts. We'll have a short presentation of 15-20 minutes and then we'll have a lab introduction and then we'll have the hands on some four or five labs. We have sent out a link on the web page to download the OVA file but if you have not downloaded it, we have the USB sticks lying around here so if you want them feel free to grab from here. So go ahead and copy the files, most of the USB drives which we are distributing are USB 3 so it should be copied in four minutes but couple of them are USB 2. If you are one of the unlucky one, it will take 15-20 minutes to copy so be careful about that. How many of you have virtual box installed on your laptop? So a couple of things I would like to mention about that. Now there is the empty, which one is that, green or, okay you can have this one. So if you have virtual box already on your laptop, there are two separate networks that these images are predefined with, okay. So for the default network it is 1002 class X and then 192.168.64 so if you set up your virtual box accordingly then when you boot up the VM you just need to run one script called presetup.sh and that will start up your dev stack in proper fashion else you will have to rerun the entire setup of dev stack. I would strongly suggest to create your network accordingly, okay. So if you want what we will do is start copying the stuff right now on your laptop. I will go through the short presentation and then we will spend another 15 minutes on setting up the lab or dev stack on your laptop, okay. So did everyone got a USB to copy? Is everyone fine? Okay, good. So let's start with the basic introduction of OpenStack Manila. So what is Manila? So Manila is a fire service in OpenStack that provides the management of the file shares as a core service to OpenStack. So if you remember, Cinder is a BSV block storage volume service which was limited to one virtual machine. You can mount it only on one virtual machine. So that solution has a lot of limitation because some of the products where we need NFS storage where you want to mount the same file system on multiple VM. So essentially Manila is a network file system storage as a service in OpenStack, okay. It has a vendor neutral API for provisioning and attaching file system storage. So on the back end it really doesn't matter what vendor you are using for your NFS solution. But you will, from OpenStack point of view, you will use a Manila API to go in. And it also tries to provide API compatibility with Amazon EC2. So that's, they made a lot of improvements on that in the Liberty project. But overall what is Manila, right? Manila is a full life cycle share management service where Tenon can create, delete, list or get details, create a snapshot or get access to shares and coordinate the mounting and unmounting of the share service. It uses a share access rule. So you can specify what IP or what user you want to connect to that Manila share. And it also supports the full multi-tenancy. So in terms of architecture, the Manila service architecture consists of the following key components. One is Manila API for which you'll use the REST API to connect to. So a horizon or a REST API that you can use to access Manila. Manila scheduler, it is used for scheduling and doing a routing. So when you spin off or when you request a new Manila share, the first thing it will do is it will go to a Manila scheduler. And we'll learn later in this presentation that there is something called Manila types where you can influence some decisions for the scheduler. And then Manila share. So Manila share is the one which is actually talking to the back end. Now there are a lot of different terms in Manila like back end, then share will go through each, all the key concept of those in the next slide. But in terms of the architecture, so Manila scheduler, Manila API, Manila share, it also has a database, SQL database, and it also has an earth manager which is responsible for user projects and roles. There is a nice CLI interface in the lab. Actually, we do plan to use the CLI interfaces for doing entire lab. So the key concept, right? So Manila share, what is it? The share is a shared file system where users specify the size, the access protocol, and the share type. Then there is a snapshot which is a point in time copy of the share. What you can do is you can take a snapshot of a share and later on use that snapshot to create another share. So you can basically go into a point in time copy of the share whenever you want it. Then share type is an administrative defined type of service. And this is where you can specify something called extra specs which is like a key value for the scheduler. So one example could be if you want your share to do a thin provisioning, you can go in and create a type and specify extra specs in the key value of like a thin provisioning is equal to true. And the drivers that is a vendor specific drivers, each vendor has their own specific drivers. So those drivers will have that logic where they will take into the information of the share type. Then share network, it's a tenant defined object that informs the security and network config of the group of shares. This is in the background. You will not see this in the front. This will happen in the background. This share network we will be using in our lab because we are going to use generic drivers in our lab. We don't have an access to the proper backend share types. So we will be using this particular thing in our lab. Then security service is a set of option that defined a security domain for a particular shared file system protocol. So what does that mean is your backend, that is your network file system service, right? It needs authentication and here you can use a protocol such as Microsoft Active Directory domain or Kerberos domain, that kind of stuff to authenticate your share storage. Then network and subnet. Now these are relevant for some backends only but in our lab this is we are going to use it quite heavily because we are going to use a generic driver and generic drivers in background what it does is spin off a VM and where that VM will act as a NFS server, okay? And then backend. The backend is the instance of Manila share service and it has a driver. Now this driver is the response, and what happened is it's a responsibility of the vendor who is creating the backend. So for example, if you have a NetApps as a backend, so NetApps will have its own driver for open style and that driver you will use in the Manila config file. So shared driver, that's the one we are talking about, is the piece of the code that mapped the standard Manila operation and the vendor specific operation on the actual storage controller. Then network plugin. Network plugin will tell Manila about how to manage network resources for drivers backend that manage the share server and storage controller and that is where the actual, it's actual physical equipment that vendor build and sell storage controller and write a driver for them. So your EMC, your NetApps and all that stuff is basically a storage controller in this context. There are a bunch of CLIs. I have not listed all of them here, but these are the most common CLIs that you see for Manila. And we will be using almost all of them in our lab today. There are different drivers currently available in the Liberty release, all of them. This project has started, has been part of the OpenStack since it started development since 2013 and has been part of official OpenStack from 2014. So from like IceHouse, Kilo release, lot of drivers has been added to it. In this lab, we are going to use generic driver as I mentioned earlier, but there are other drivers that are readily available and if you have a backend storage with this particular vendor, you can certainly use them. So Manila generic share driver, this is what we are going to do in the lab today. Basically what happened is, when we use a Manila generic share driver, you issue a command called Manila create. Manila tries to look whether they're into a Manila.con file and check what drivers you're using for this one. And once it realized that you're using a generic driver, by default what happened is it add a neutron port for a VM, it spin off a new VM which will act as your NFS server. And then it calls, it makes an API call to sender that will create a block storage volume of whatever size you have requested and it will mount it on that NOAA compute automatically. Once the VM is up and act as a NFS server, you will basically go to any VM, another VM and that's where you will manually mount that NFS file system. And that's what actually we are going to do in the lab where we will basically use that NFS server VM and will spin off two extra VM, VM1 and VM2 and mount the same file system storage on both the VM and see the data on that. So where to start, if you are not familiar with Manila and you want to play around, you can go on GitHub and clone the Manila repository or if you want to report some bugs, the launchpad address is there for the bug and there is a wiki for Manila which has a lot of information on what you can do with Manila and what are the upcoming extensions coming for Manila. In this Liberty release which came out like 15 days ago, there are some extra features have been added to Manila where you can basically extend and shrink your share. So if you have a share of like 2 gig and you want to expand or shrink, you can do with the API call now. Share migration, that's another thing. So if you are in the hybrid storage mode where you have multiple vendor and if you want to migrate a storage from one vendor to another, the share migration feature has been added. Then big data, that's Sahara, that's another component in OpenStack. That support has been added for Manila as a data source and some more support has been added for the mount automation where you can mount a network file system storage on the VM automatically. It's still in development, it is not complete but at least in the Liberty release, some of the features have been added. It differs from each deployment. You can basically, you need to decide for your deployment what model you want to use for that, like a push, pull and other for that mount automation feature. But this mount automation feature is the one which differs Manila heavily from Cinder where Cinder doesn't have this capability today of the mount automation. So using Manila opens up a lot of options for deploying application in OpenStack where when you are moving from a traditional lab structure and most of the application where you end up using an NFS storage, people have migrated to OpenStack but they end up using a local procedure or some local scripting to migrate to OpenStack. Now they can directly migrate using Manila. Hands-on is the key. While designing this lab, actually, I had run into a lot of issues and hands-on helped us to troubleshoot and learn the product. So hands-on is the key here. And then we'll start with the lab. Before we start with the lab, any questions on Manila? One thing in my presentation, I only covered about generic drivers. There are tons of drivers available on Net. Perhaps for some simulators might be available too from the big-wender like IBM, NetApps and EMC, but I didn't get a chance to try those out. So how many of you have already copied the OVA file on your laptop and how many are able to spin off the DevStack? Working? Okay. So let's start with it then. What I will do is I will import... Hello. I will try to import a DevStack image on the screen and you guys can follow me on how we are doing it. That will be simpler. I am a little older. I have not tried. I am on 4x, but it should be fine. I don't see any issues with that. Because OVA is backward compatible. One thing that you all who are not familiar with VirtualBox, you need to make sure, go to your preferences and network. You should see there are two different types of network here, NAT network and host-only network. In the NAT network, you need to ensure that you are using 10.0.2.0-24 network CIDR and support DHCP option is enabled. That one thing you need to ensure. And the second thing in the host-only network, I think I am using this one, number two, you need to ensure that you are using the IPv4 address of 192.168.64.1. If you use that and you spin off this OVA or you import this OVA on your VirtualBox, you should be able to basically start using the DevStack right away. So in order to import it, basically you will go here and click on the import appliance and then you will basically go and select this OVA, which you had copied. One more thing that I would strongly suggest if your laptop has ample amount of memory. By default, I kind of gave the RAM of 580 MB here, but if you have 8GB memory on laptop, use this one. This should be sufficient to run the lab, the default setting. But if you have 16GB of RAM on the laptop, I would strongly suggest to bump it up to 8, 8 or 9GB. And then basically you will click on import once that done. Once you click on the import, it will have the DevStack VM in the power off mode. And then you will basically start it up. Yeah. How many have this problem that the image is corrupted? Image is corrupted? Okay. So I guess try with the new one. I should have put the MD5 sum perhaps of the image. This is corrupt. How many have the DevStack up at least just like this screen? Just up? Can... Okay. This is empty. Yes, it is already uploaded. I will share the URL towards the end of it. Yes. So once it's up and running, open the terminal by doing control alter T or you can type terminal. Okay. Either you go here and type T or terminal. It has been created with security, but it's a thin provisioning. So you... So much image can grow up with security. I just want to try to bring it up at the VMware. It doesn't look that way. No, because VMware, I'm pretty sure, you're trying to do a fixed provision. Looking for that script right now. Okay. So... Okay. Okay. Okay. So you go to terminal and there is a script called presetup.sh. Just execute that script. What that script does is it drop your eth0, eth1, and it restart it. And also it goes into DevStack and start up all the processes. So what you're seeing on the screen right now is it is... It's a screen of DevStack where it is starting up the processes. And you can have... You can leave that up and running. And if you are using a Putty or some other SSH client, you can... Hold on. I'll show you. By the way, to get out of that window, you have to hit right control key. And once that is up and running, what you can do... Once you kick out the process up and running, you can connect to that VM using this 192.168.6421. DevStack at that address. The password for DevStack is DevStack123. And basically at this point, another thing I would suggest you is just to check whether your DevStack is in good condition. Go to a DevStack folder and do the source in this open RC admin that will basically source in the DevStack-related variables in the environment. And you can just type neutron, netlist, something like that, which should bring up the network list, which is pre-configured in this DevStack image. But how many people have at least this up and running like this? So what I will do is the people who have it already up and running for those people, Google share has a lab actually. Let me point out the link. So if you go for the folks who have DevStack up and running, go to the Google drive and download there is a pdf-lab-manila.pdf. I do have a pdf of my life. No, that pdf is hardly of a kilobyte. So you should be able to download it right away. Oh, that will take a long time. No, that's okay. Actually, if you're not able to do it, don't worry because you're taking it home anyway. You have all the files and the lab pdf which I have. It has literally step-by-step command written there. So you should be able to follow it. I'm not going to make it any further. OpenStack started this earlier. They realized it's not going to be that easy to have people try it. So that's why they would be sending it out. They would be trying it out. They would be trying it out. Yeah, they would be trying it out. They would be trying it out. They would be trying it out. It doesn't really matter. That's a good question. So this is admin and password. Okay, yes, it is. So the dashboard login ID and password is admin fubar. F-O-O-B-A-R. Nothing. Nothing. Just disable this one. So let's... Anyone need any help with the... So about the labs, right? I'll just show you real quick. So if you have DevStack up and running, you will basically, in this first lab, you will check the status of the service using a service list. These are the default networks. That's on the image itself. So your network UUID will be one and the same. In the first lab, basically what we are doing is we are creating this Manila Share Network. And in order to do so, this is the command. Now, some of this command, be careful about it, where this particular one is the dash dash, and it can be... When I convert it to PDF, sometimes it can be read as a single dash, rather than the double. So be careful about that. And this will... The first command that you are running is the share network create, where you will pass on a private network UUID and a subnet of that private IPv4 subnet of that private network, and you will create a share network. This is only need to be done on the generic drivers. You don't have to do this on non-generic, like backend-specific drivers. And this will create... Basically, this will create a share network, and what you need to keep eye on is this UUID. In this lab example, this UUID is a UUID when I created this. In your case, this UUID will be 101% different. So just keep a note of that UUID, okay? Or you can get that UUID, like by running this Manila share network list, and that's a UUID here. That's the first lab, which is a couple of commands only. In the second lab, you will basically run the Manila create command CLI, and here you're going to cut and paste the UUID of your share network. And the NFS is the protocol. That's the protocol we are going to use in lab. And this is the size 1. One size is the size in the gigabyte. So this particular... When you create, when you run this particular command, at that time, it will go in NOAA and spin off a virtual machine. Now, this is the Ubuntu virtual machine, and DevStack, we are running on this virtual box with very minimal resources. It is approximately... It will take 5 to 6 minutes for network to be accessible. So even though you see the status in NOAA, the VM is active, that doesn't mean it is accessible from the networking aspect of it. So one more thing is, while designing this lab, I realized that by default, Manila has a timeout of 300 seconds. So when you try to spin off a VM, it looked for 300 seconds. It tried to assess to that VM constantly. And if it cannot assess to that virtual machine, it basically give up. And that was happening quite often on this... Purely because we are running on virtual box and lack of resources. So I bump up that parameter in this particular file of Manila to 600 seconds. So that way it will take 10 minutes to attach to a network and all that. Approximately in my testing, so far consistently it takes about 6 minutes for you to get the network connectivity. You are in very good shape. At the end of it, after 7, 8 minutes, if you run this Manila list command, and if you see the status is available, you are in very good shape. If you don't see that status is available, that means the virtual machine that it created by Manila for you is not in a good state. And he just stopped working. There was like 2 files earlier, and now it is like the same. So I have no name of a virtual box there. My name is for a virtual box. And also I have further than that. But he has 4 files. Manila, can you come to Manila? One is get up and allow the share extension. Because you are not switching. You open up and it's for admin. Open up, open up. Other hand, on the left. Over there. If you are in a room with a video, how could you get that? Now, you have a video of the entertainment. You have a video of the entertainment. We have a video of the entertainment. And we have a video of the entertainment. Is there a plan? No. Oh, you are talking about it. Oh, yeah, you are right. What is the plan? Is there a plan? Yeah, the plan is to be. Is there a plan? Different from our director. What is your story? Is there a plan? Is there a plan? Is there a plan? Is there a plan? Is there a plan? Is there a plan? Is there a plan? Is there a plan? Is there a plan? Whatever you are having the same idea. But the point is, Yeah, that's not the problem. Again, I think you ought to be curious to download that app. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem. Yeah, that's not the problem.