Placeholder Image

Subtitles section Play video

  • Hey there. My name is John Griffith. I am an open source engineer at SolidFire out in

  • Boulder, Colorado. We're building a clustered storage device that's designed specifically

  • for the cloud. Today I wanted to do a quick introduction

  • into OpenStack, give you a 101 as far as what OpenStack is, how it came to be, what problem

  • it's trying to solve, and maybe a little bit about what it's not, as well. I'd also like

  • to talk a little bit about the block storage project, specifically, and give you some more

  • information about what that is, what you can do with it, what some of the features are,

  • and a little bit about the design. Anyway, this is definitely a 101-type introduction.

  • Hopefully, this will get you started and get you enough information. We can continue and

  • move on, and we can dig deeper after this. All of this pretty much started with the hypervisor.

  • The hypervisor gave us the ability to run virtual machines all on a single box, and

  • really start to utilize our hardware better, and save us from things like multiple boxes

  • under the desk. If you're like me, you can remember the day when you had four or five

  • workstations sitting under your desk, each one having a different OS, or maybe all even

  • the same OS just different configurations. You had to do compile and testing for your

  • code and everything on each one individually. It was somewhat of a pain and somewhat expensive,

  • as well. Thanks to the hypervisor, we started to have

  • the ability to do things like have one single workstation and be able to run four or five

  • different VMs inside of it, each with our configuration. You could also go ahead and

  • save those configurations and save those setups, and so you could bring them back up later

  • as a VM without having a server or a workstation sitting around doing nothing.

  • Over the years, as virtualization technology continued to improve and we continue to make

  • advancements in compute [00:02:00] resources, what happened was is we started to move more

  • and more things into the hypervisor, so we started to do more things there, whether it

  • be running ecommerce apps, web apps, web servers, DNS servers, so on and so forth. That was

  • all great, and we continue to scale that, but what we started to run into then was it

  • started to become more and more difficult to do things like deploy a VM. You may not

  • have direct access. You would have to go to an admin, an IT admin, and request a VM be

  • deployed, not to mention the difficulty added with trying to deploy more hypervisors.

  • All of these things started to get more and more complex. Then you started to see things

  • like storage performance degradations, trouble setting up networks and getting everything

  • to talk. We started to really get into some management complexity that caused some difficulties,

  • and started to lose some of the efficiencies that we've gained. Now, it's great. We're

  • utilizing our hardware much, much better, but on the other hand, things are getting

  • increasingly complicated and difficult to manage.

  • That's where the whole concept of cloud computing starts to come in. It's no longer just about

  • a collection of virtual machines. It's now an orchestration or a management layer of

  • hypervisors in virtualization. In addition to that, there's some key concepts and key

  • things that I look for in terms of what is a cloud and what is cloud computing. The whole

  • concept to keep in mind is that it's dynamic. It's elastic resources that are on demand,

  • so it's not a "file a ticket and next week, or hopefully in 72 hours, or whatever, I'll

  • get a VM." It's, "I need it now. I get it now."

  • There's some key aspects. Like I said, the on demand. One of the other ones is it's self-service

  • for the end user. This means that, typically, you go to a webpage or internal network portal,

  • whatever it might be, and you actually request your resources from there and set them up

  • yourself [00:04:00], get them right away, use them, and then return them when you're

  • done. Some of the key things that you look for as well are the ability to scale dynamically.

  • By scale, I mean horizontally scale. It's not, "take down the server and put in some

  • more RAM, or put in another drive," whatever it might be. It's actually, "scale horizontally,

  • throw in another node, and have that consumed and utilized as a resource."

  • In addition to all those key concepts, the other idea is to be able to take more and

  • more IT infrastructure and move it into that utility consumption model. Now we talk about

  • taking things like the networking stack and things like that, and moving it in as a resource

  • that you can actually check out and utilize on demand and pay for what you use, as opposed

  • to having to put three nicks in a machine, or whatever.

  • All of these things are great, and this all sounds fantastic, until you try and actually

  • build it, and then try and manage it and get it all to work together. That's where OpenStack

  • came in. Back in 2010, NASA and Rackspace were both facing these same sorts of challenges.

  • They got together and they created an open source project called OpenStack. The basic

  • premise of OpenStack is to deliver a platform for you to build and manage massively scalable,

  • super elastic, and feature-rich clouds with those characteristics that I talked about

  • in the last slide. That's the key. OpenStack provides a number of data center

  • resources, including compute, storage, and networking. There's also a significant number

  • of other projects that are starting up and services that are more specific. The key is,

  • is they all use the same building blocks, and they all use the same management-type

  • interface that OpenStack provides. That sounds great, and that gives you a basic

  • idea of what the marketing slide would say. What's the real deal here? What's OpenStack

  • really trying to do? On top of giving you the ability to actually build a cloud, which

  • is huge, the biggest things are is it's abstracting out physical [00:06:00] and virtualized resources

  • and giving you a single common management layer to work with them. We do do things more

  • than just virtual machines. We do do bare metal, as well. We do storage. We do networking,

  • so on and so forth. One of the keys about OpenStack is, is it

  • provides an easy-to-use REST API. Again, it's self-service, like we talked about. It's fully

  • dynamic. It's designed to scale. When I say scale, I mean massively scaled to the point

  • of tens of thousands of VMs running hundreds of nodes. That's going to continue to grow,

  • and we continue to push that limit. I've heard different talks on what some of the goals

  • are. I think it's basically, as long as somebody wants to grow, keep growing and fix what needs

  • to be fixed to make it do that. The good thing is, is that the architecture, as it stands

  • right now, will allow that, and it will let us continue to do that.

  • Some of the value propositions that are associated with OpenStack. One of the biggest things

  • about OpenStack is you have choice. You have the ability to configure things the way you

  • want, and use the things that you want. In some respects, this makes things a little

  • bit more complex and a little more difficult for people to grasp and figure out how to

  • set this up. On the other hand, it's fantastic, because it gives you the ability to utilize

  • what you want. Also, it gives you the ability to mix and match those things.

  • Hypervisors is a great example. We have support for VMware, KVM, Hyper-V, Xen, and some others.

  • The key is you can pick which one of those you want to use. Not only that, not only can

  • you pick which one, you can also have a single OpenStack install that utilizes all of them.

  • You can have Xen on one compute node. You could have KVM on another. You could have

  • VMware on another. The idea is all of those are abstracted out into the management layer

  • so that, from an end user's perspective, they just have to request, "Give me a VM." Then

  • depending on some of the characteristics that they might ask for in addition to just a basic

  • VM, that may determine which one of those [00:08:00] hypervisors it goes to.

  • The other thing about OpenStack is is that it supports the whole Infrastructure as a

  • Service stack, not just the compute side. We're talking storage, networking, security,

  • so on and so forth. We drive significantly greater resource utilization across the entire

  • infrastructure. The other thing is, is we fix some of the scaling issues that you have

  • with just compute virtualization or just the hypervisor. Those are some really big things.

  • The other thing that is key, that a lot of people are focusing in on and really want

  • to drive inside of OpenStack, is trying to deliver compatibility between private and

  • public clouds. Everybody knows, from the public cloud space, one of the big players that everybody

  • always thinks of is Amazon. The idea here is, with Amazon, you deploy some things in

  • Amazon, and that's great. Everything works fine, but you can't bring all of that same

  • stuff back into your in-house cloud quite so easily, because of the differences in compatibility,

  • and so on and so forth. Now, however, if you go to a service provider

  • that utilizes OpenStack and does a public cloud that way, you do have the ability to

  • do things like have overlap between the two. You can have a private cloud running OpenStack

  • and a public cloud that you go to a provider for running OpenStack. You can actually have

  • things cross and meld in between, which is a huge advantage. The key thing about OpenStack

  • is you're really bringing the whole concept of software-defined infrastructure to life.

  • You're really making that happen. Really similar to what we talked about with

  • the hypervisor, a lot of the early-use cases for OpenStack were test and development. Over

  • time, though, just like we saw with the hypervisor, we started to see more and more enterprise

  • IT, DevOps, continuous integration, things like that, all starting to move into OpenStack

  • as well and starting to move into the cloud. We're starting to see more and more things

  • like databases of service [00:10:00], whether that be MySQL, or MongoDB, or other NoSQL

  • type databases. More and more of those things are moving into OpenStack, as well. We're

  • also seeing it utilized heavily for internal web services as well as external web services.

  • We're seeing things like eCommerce, is a huge consumer of OpenStack. You can look at folks

  • like WebEx utilizing it. There's also situations starting with DVI. People are using it to

  • deploy DVI implementations. Being an open source project, there's always

  • some good information about the community to look at, and to see how healthy it is and

  • how things are going. OpenStack has a community of almost 10,000 people across 87 countries

  • right now, which is just massive. There's greater than 45 companies right now that contributed

  • to the last release of OpenStack. There's more than 40 listed case studies of public

  • companies willing to talk about what they've done with OpenStack, how they've used it,

  • and how it's worked out for them. There's over 200 vendors involved in the ecosystem.

  • By vendors, I mean companies like SolidFire that I work for that actually develop a product,

  • SolidFire, NetApp, Red Hat, Canonical, so on and so forth. The ecosystem is extremely

  • large and really, really diverse. Let's delve a little bit into storage specifically.

  • One of the first questions that I typically get from people is, "What's the difference

  • between Cinder and Swift?" Swift is object storage, while Cinder is traditional block

  • storage. We put together this little slide. You can take a look. It gives you a decoder

  • of what some of the different objectives are between the two, in terms of some of the different

  • use cases and workloads that you might target one over the other.

  • The block storage is definitely the more traditional, the high-performance-type workload, so on

  • and so forth ... high-change content, smaller, random read/write, [00:12:00] bursty IO, so

  • on and so forth ... while the object storage is more of, "Hey, I've got this object," whether

  • it be an image, or a file, or whatever, a video clip, so on and so forth, full object,

  • "that I'm actually moving from one place to another." That's the big thing.

  • That's one of the first questions that come up, so I wanted to talk on that. I'm not going

  • to go too much into the Swift or object storage. I do want to talk a little bit more about

  • the block storage project. OpenStack's block storage project is codenamed Cinder. It's

  • architected to provide traditional block-level storage and abstract those block storage resources

  • out. It presents persistent block storage in the form of volumes that can be used and

  • consumed by Nova. It can be either attached to a compute instance,

  • or it can actually be used as the storage location for a compute instance. When I say

  • instance, an instance in OpenStack is basically a VM. We call it an instance. Cinder manages

  • the creation, detaching, and deleting of these volumes across multiple storage back-ends.

  • Really similar to what we talked about in terms of the hypervisor choices. You can use

  • KVM, you can use Xen, you can use Hyper-V, so on and so forth.

  • We also do the same sort of model inside of the block storage project. You can have different

  • vendors' back-ends. You can have a NetApp back-end. You can have a SolidFire back-end,

  • an IBM back-end, whatever it might be. You can have those different back-ends if their

  • drivers are included in the project and supported. You can have those, and you can also still

  • also have multiples. You can have multiple nodes with multiple back-ends, or even a single

  • node with multiple back-ends attached to it that you can use. I'm not going to go into

  • too much detail about that. I'll touch on it a little bit more later. Then there is

  • also a built-in block storage back-end that is implemented using LVM that comes with OpenStack,

  • as well. Some of the basic features that you get with

  • the block storage [inaudible 00:13:59] with Cinder [00:14:00]. Of course, obviously, we

  • need create and delete of volumes. The thing that's nice is it's create and delete, again,

  • on demand. You need a volume, you go and you create it. The call is sent down to the back-end,

  • and the back-end is creating that resource on the fly dynamically as you need it, and

  • returning the information that you need to connect it and use it. Then when you're done

  • with it, you can delete it and have it just go away.

  • We also have the ability to do things like specify custom types, and then also add things

  • that we call extra-specs. An admin can go in and set up types and extra-specs for the

  • volume service. These will do things like specify, say, I want certain QoS levels or

  • I want a certain back-end to be targeted for this type, so on and so forth.

  • In addition, we also do things like cloning. You can take an existing volume, and you can

  • actually create a clone of it. You can copy an image out of the Glance, which is the image

  • repository. It's where all the images are stored to create instances. That would be

  • somewhat like an equivalent to your ISO or CD-ROM file for your Ubuntu VM, for example.

  • You can copy that image down to a volume, or you can take in a volume that you have

  • that's bootable, and actually send that back up to Glance, as well. What that does is that

  • allows you to do the whole boot-from-volume thing.

  • You can also do point-in-time copies, so snapshots. You can also turn around and create a volume

  • from those snapshots. The snapshots really, for the most part, are, like I said, they're

  • a point-in-time copy. They're more used as a vehicle for a lot of the underlying things

  • that the block storage service does, in my opinion. It's a great way to get that quick,

  • fast, instantaneous point-in-time copy of what's going on, of the system and stuff,

  • and then do things with it afterwards, like a clone, or make a new volume, or so on and

  • so forth, to actually replicate it. We also recently [00:16:00] have added things

  • like backup of volumes. You can back up to object storage, including Swift, and now Ceph

  • we recently added, as well. You can transfer the ownership of a volume. The whole concept

  • in OpenStack is you have what's called tenants. Tenants are individual users or projects inside

  • of OpenStack. They don't have visibility to each other's resources.

  • The idea is if you have a volume for your dev group A, and it's got some cool stuff

  • on it, or it's got a certain development environment, or something that you want to share with somebody,

  • or whatever, you can actually go ahead and transfer ownership of that volume over to

  • one of your other tenants in the cloud and give them access to it, or basically just

  • give them the volume. In addition, some of the really cool things

  • that we introduced the last release include scheduling. It used to be we just had simple,

  • basic scheduling, and it was really, really basic. What we have now is we have the ability

  • to set up scheduling filters. You can do things like, I mentioned before, use volume types,

  • for example, to specify what back-end you go to or a volume is deployed on.

  • You can also do more complex things. You can do things like capacity filters. You can specify

  • things to run in a manner where the volume that is requested is being deployed on the

  • next back-end with the most capacity. You can do things like volume counts, so on and

  • so forth. There's a number of options. Then in addition, you can also write your own custom

  • filters, which is a huge benefit. In addition to all these things, as with pretty

  • much everything inside of OpenStack, there's also per-tenant usage quotas that you can

  • set up. You can set up quotas for different tenants. You can say this tenant is only allowed

  • to set up this many volumes, or only allowed to consume this amount of storage, or they're

  • only allowed to create these types of volumes. There's a number of things that you can do

  • there. Again, there's a lot of [00:18:00] configuration, a lot of options, a lot of

  • choices that you can set up. One of the things that people ask about ... because

  • of the fact that the whole point of the block storage service is to abstract those resources

  • and treat them as pools, and stuff like that ... is, well, then, what's the advantage of

  • using, say, for example, a SolidFire device over the LVM, or whatever? There's, of course,

  • all the basic things that come with it, like performance, and efficiencies, power management,

  • all those sorts of things. On top of that, you still can expose your

  • unique features. You can do this either through custom types ... the volume types and the

  • extra-specs stuff that I talked about ... or OpenStack also provides this mechanism called

  • extensions. Extensions can be written and put in to do things above and beyond what

  • the API does on its own, to expose some of those extra features.

  • Again, like I said, different back-ends have different use cases. There's definitely clear

  • choices between them, just based on the characteristics of the device itself. There is also things

  • that you can do in terms of features that you can expose those things. You get the best

  • of both worlds without having things get too out of control in terms of that management

  • interface and that API. This slide shows a little depiction of how

  • things tie together in a really high-level architectural view of the block storage service.

  • You can see up there you have the user. That user is sending in a rest command to, whether

  • it be Nova, whether it be Cinder, whatever, into the service of interest. One of the things

  • that this doesn't show is that user or that interface, that could be a client, a command-line

  • client. It could be just a cURL call. It could be the OpenStack dashboard project horizon,

  • which is the web UI. It could be any one of those. They all work basically the same thing.

  • They'll send a request down to the service. For example, they'll send it to Cinder via

  • the volume API. We have a set API set up, and so the user [00:20:00] knows what to expect

  • and what's available. That API will then go ahead and deploy that out to the scheduler.

  • The scheduler will figure out what back-end service to use, so on and so forth, and actually

  • deploy the call down to the back-end. In the case of SolidFire, you can see we basically

  • just plug into the volume manager from a SolidFire driver. That driver then just sends JSON-RPC

  • commands down to the SolidFire cluster to do what we need.

  • I touched on earlier about all the different vendors involved in OpenStack. We wanted to

  • put together a little slide here to show how diverse this group is and how large it is.

  • You can see we've broken it up back to ... based on their major areas of interest, in terms

  • of where they contribute the most and where they play the most. You can see there's a

  • really diverse group. On the compute side alone, we've got HP, Dell, IBM, all the players.

  • Everybody's there. The same on storage. On the storage side, SolidFire, EMC, NetApp,

  • HP. The point about this is what you have is you

  • have all of the major vendors, all of the major players, all obviously agreeing and

  • believing that OpenStack is a good thing and a good direction forward. They're all contributing

  • and investing. What that also means for you is, for an end user or for an implementer,

  • is that you're not only getting what, for example, SolidFire thinks is good, or what

  • SolidFire thinks is the best way to do it. You're getting a collaboration among all the

  • top key players. That's the whole point of open-sourcing the project to begin with.

  • The whole idea is to take all of the best ideas and the best people from each of the

  • different vendors and each of the groups, putting them all together, and having them

  • all work together to build the best project possible. That's what I really think is happening

  • with OpenStack. I think the model is working extremely well. I think that the uptake [00:22:00]

  • that we have with all of the vendors and stuff is what makes it great and what makes it what

  • it is. One of the key things with an open source

  • project and with OpenStack, one of the key things that you need to do is you need to

  • be able to have some case studies and share those things. OpenStack's doing a really good

  • job of that, I think. There's a lot of really big household names that are coming out as

  • early adopters that are sharing their story, people like Best Buy, PayPal, Comcast, Bloomberg.

  • You look at all of those, and you get some information about what they're doing and stuff.

  • It brings all of this to life. It shows that it really is succeeding. It really is working,

  • and it's doing what it says it does. The thing about all of these early adopters

  • and these case studies, and so on and so forth, the key is, is all of these folks are deploying

  • OpenStack. They're all configuring it and using it differently. They're using all of

  • those customization features and things like that that, sure, adds complexity and makes

  • it a little more difficult, but at the same time, it also enables them to do what they

  • want. That's key. This is really cool to see these. You can check these out at the openstack.org

  • website and keep an eye on these. It's cool to see it grow, and see more people come in,

  • and see what they're doing, and learn more about it.

  • That was a really quick rundown on the basic concepts and the ideas. SolidFire is committed

  • to OpenStack. We believe in OpenStack. I am a dedicated resource. This is actually my

  • job at SolidFire, is to contribute to OpenStack. The key is not only to contribute to the benefit

  • for our product and making our device fit as good as possible. Of course, I think we

  • have a great device, and I think it's one of the best designs for cloud infrastructure.

  • But, we're really focused on the success and advancement of OpenStack in general for everybody.

  • I think that's key [00:24:00]. That's a little bit more about us and our

  • philosophy towards OpenStack. We're also really interested in partnering with other people

  • that have that same vision. That's why we've partnered with people like Rackspace and Nebula,

  • folks that have a global community view of OpenStack and advancing OpenStack as a whole.

  • There's a number of related resources you can check out, not only on the OpenStack side.

  • You can go to the SolidFire webpage. We actually have an OpenStack solutions page. You can

  • go there and get more information about OpenStack, specifically, what SolidFire's doing with

  • OpenStack via reference architectures, configuration guides for SolidFire and OpenStack.

  • You can also get some information about just basic features and things that are new inside

  • of the block storage project, inside of Cinder. We do a screencast. Every month or so, we

  • try and put up a new screencast about a new feature, how it works, how you can use it,

  • and just do a screencast demo on it. It's a real quick, easy-to-follow type of thing.

  • We're also got some blogs on there. We do recaps of each summit.

  • Every six months, OpenStack has a summit that everybody gets together. One of the key purposes

  • is all the engineers, all the contributors get together, and we hash out all the ideas

  • for the next cycle. We do six-month release cycles. We'll get together, and we'll spend

  • a week in some location and go through just figuring out, okay, what are the top features

  • we want to work on, and brainstorm. It's our chance to get together. For the other six

  • months, we just work remotely. We connect via IRC and things like that. It's a great

  • opportunity for us to all to get together and get in the same room. It's a pretty cool

  • event. If you're looking at this and you're thinking,

  • "Hey, I've got some ideas. I want to get involved. How do I contribute to OpenStack?", it's a

  • lot easier than you might think. The first place I tell people to start is if they want

  • to contribute [00:26:00], go to the wiki.openstack.org webpage. There's a "how to contribute" section.

  • It'll walk you through some of those things and get you started.

  • If you want to just play with OpenStack and get started with OpenStack ... I don't have

  • it on this slide. I should, but ... go to devstack.org. You can download and deploy

  • DevStack, which is a full-running OpenStack install and setup. You can run all of that

  • and do it in a VM. You can deploy the VM on your laptop, whatever, run DevStack on it,

  • and have a running and working OpenStack setup that you can play with, and get a better idea,

  • and get a feel, and start experimenting. Then from there, you can do things like dive in

  • and start figuring out how to do things, like add different options, and so on and so forth.

  • Then if you want, play with the code. If you're looking at this and you still have

  • some questions, you want to talk more or learn more, we're always happy to help. At SolidFire,

  • you can contact me with technical ideas or block-storage-specific things. My email there,

  • john.griffith@solidfire. If you're interested in partnerships ... like I mentioned, we like

  • to do partnerships with other people that are interested in OpenStack and advancing

  • the OpenStack project ... you can get a hold of McClain Buggell at solidfire.com. Then

  • of course, if you just want to learn more about SolidFire and you're interested in SolidFire,

  • check out sales@solidfire.com. They'll get you squared away.

  • Anyway, I hope that was a decent introduction for you and gave you a quick, high-level view

  • of what OpenStack is and where it's going. Feel free to send me any questions that you

  • might have. Also, keep an eye, like I said, on that OpenStack solutions page. We have

  • some webcasts and screencasts coming up. We'll continue to add things there, so there's more

  • to come. Thanks a lot.

Hey there. My name is John Griffith. I am an open source engineer at SolidFire out in

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it