 Hi everyone, my name is Joe Arnold. I'm joined by Caleb tennis and we're both from Swiss stack and What we're going to talk about today is Our software-defined object storage product We're going to talk about a few of the features and the capabilities And then we're going to just go to jump into a demo and talk through it So you can get a firsthand view to see how it works So what's Swiss stack? What do we do? We're a software-defined Object storage company that has built a product around open stack Swift and we're the we're the one of the leading contributor to open stack Swift and we've built a product around that and we offer commercial support and We've also added a few extra features around Swift in order to make it More deployable in the enterprise and we're going to talk through a few of those things and this is what the product looks like you have On the left hand side is the Swiss stack controller and what the Swiss stack controller does is it's an out-of-band know software-defined storage controller that manages a Distributed storage system and why this is important is because storage isn't about having a Node that's in a rack of gear It's about having a distributed environment and for that you need a controller to manage that Distributed storage system and then on the right hand side you have the actual storage nodes which runs open stack Swift and And we'll go through the demo of what that looks like may have saw us on to on Monday morning We had Time Warner cable get on stage to talk about their use of Swift stack And we're going to go over three features in this demo The first one is global data distribution and that's the ability to replicate data across multiple data centers the second is Using a global storage footprint and creating storage policies around that and that allows you to segment out different different levels of storage hardware different performance as well as Geographic regions so you can create different storage policies in order to take advantage of the the data centers you have and Lastly not everyone uses object storage, which is what Swift presents as an API and object storage and Swift is an HTTP interface into the storage system However, not all applications are using that object storage API yet So we've built a file system gateway and we'll go through that demo as well killed so this is a cluster that I've set up for us for a demo here and We have a couple of different machines one in the US one in the EU So we can kind of take a look at a couple different features. I've created a few storage policies already I'm going to create another one now, but essentially with the new features of Swift We can leverage these different pools of storage for different types of storage applications that we want so Out of the box we come with a count container and standard replica policies. That's kind of the historical way Swift has worked I've added a silver and gold policy and in this case silver is going to be our traditional three copy local data center policy Gold is going to be a for replica Policy and spread across both the US and the EU so that way as a service provider We can offer that to our customers is saying hey, I want to I want to give you the ability to spread that data out I'm going to create one more policy now I'm going to call that fast and this policy I'm going to just use two replicas instead of three But I'm going to put it on SSDs instead and that way I have another target for my customers to be able to deploy their Objects into something that we call fast. So create that now Okay, now I'm going to go over to my set of nodes come in here Here's the drives in the system and very quickly I'm going to select my two SSDs and you can see I've already assigned golden silver to my discs here I'm going to add fast To these note to these drives come back here and Push that out. So what this is doing now is this is pushing those changes out to my machines And we're going to cycle through here for a second. We have the volume, please. Thanks So how Swift works is there's this data structure in Swift called the ring and it's a distributed hash table and what Caleb just walked through was automating the creation of that and distributing it out to all the nodes and The advantage of storage policies is that you can now have one system to manage that has multiple tiers of storage in it and Customers as you give them those different tiers of storage can put data into those different storage tiers then The other thing that we do with Swiss DAC is we provide a utilization API based on Those storage policies so you can keep track of how much data is in each one of those storage policies per user and Then do appropriate cost report reporting back to them on that So we're waiting for the job to complete there and what I'm going to do as soon as that job is complete is create a new container now called fast Container so storage policies apply to containers in Swift and containers are just groups of objects when you create the storage policy That's a post operation in HTTP language And in this case because we need to define which storage policies associated with that we need to pass that in as an HTTP header So this command here is going to issue a post to my Swift cluster using these credentials and tell it Hey use the storage policy fast tied to this container I'm still going see if it goes or not. Okay, so that's done And then what I'm going to do is I've got an object on this machine here And what I want to do is upload that object to each of these three different storage policies Each of these three different containers that we've created and kind of see what that looks like So 25 megabyte object I'm going to upload that each of the containers and first We're going to upload it to the gold container and that's going to take the longest and the reason why is because I've got four separate devices associated with this container, but two are in the US and two are in the EU and so it's got to traverse the WAN to get there That's the most durable setting, but it's also the one that takes the longest And it took about 20 seconds. Okay. Next. I'm going to upload to the silver container again. That's three drives Locally in the US so it should be a little bit faster than the gold In this case, it was 12 seconds and then last I'm going to upload the fast container. This was just two drives SSD So it should be slightly faster Not super fast because we're going to be a little network constraint and again eight seconds Again one storage system presented as three separate containers But by applying those policies I can define which drives in the system for a durability I get and ultimately how long it's going to take to get objects in and out and What what he's also done is he's uploaded had a different storage policy that puts data in different locations and One thing that we've come across with some of our deployments is that different customers have different regulatory requirements different content distribution requirements of where they want the data placed and what storage Policies does is it gives you the flexibility to put the data where you want to have the data? So in doing this, I used a command line tool called the Swift command line tool that just does HTTP calls for me behind the scenes We package a nice little web console here. I'll switch over to so this is a Java script based application that just runs in the browser and gives you a nice view into what's going on in your in your swift Cluster I've already logged in here as you can see on the side I've got those three containers that I've created so I can kind of cycle through those and here I've got fast container gold container silver container and that object I've uploaded and if I want to I can just come over click on the object click it and download that right back out Through this interface what I want to do though is demonstrate a little bit about our file system gateway So as Joe said not everybody wants to use object. There's NFS applications out there as well So I've went ahead and mounted up NFS Shares into our file system gateway, which is already running and if I look at the mount files here You can see that well. It's kind of at the bottom You can see that I've got three directories mounted on this machine Corresponding to three NFS drives that are a file system gateway that gives us a one-to-one mapping between NFS and Swift as object and I've got a data directory With Let's just go into that I've got a resources directory with a picture in it I'm going to copy that picture over to one of these containers. I'm going to copy it to the silver container And so by doing so I've just copied that NFS behind the scenes What that's doing is the NFS gateway is uploading that into our object storage system So if I come back over to my web console and come down to silver container, I should see now Yes, I have this PNG file now presented as objects through this web browser And so the nice thing about this gateway is this one-to-one mapping things that go in as file can come back out As object and things that go in as object can come back out as file without any translation It's lost and so the other thing that you can also use it supports NFS and it supports sifts And I really want to underscore what Caleb just said there Because what we have designed the file system gateway to do was it take can take a file in and then it can Come back just as we just saw out as an object and this is also vice versa. So you can mount you can also take Objects in via the object API. So for example, if you're building an application That is uploading data via objects then later this can also be mounted as a File share or an NFS share via sys or NFS and those same objects that got uploaded via the object interface Can then come out via Via the file system gateway and what's what's really useful about this is it allows you to Not have to always go through that same file system gateway to get that data in and out And it allows you to be really flexible in how you want to Get at that data has been uploaded. Yep, and super simple to set up all through the web UI You don't have to worry about manual configuration of NFS or credentials or anything like that It's all all GUI based and there's a lot of options available there And it also integrates into the authentication system that we that we have with was supposed to act So we support active directory. We support LDAP. We have an API to proficient users We have keystone support so there's multiple ways to authenticate users and those same objects as they get uploaded either through the file system gateway or the API will be authenticated and authorized through whatever mechanism that That you've selected to for authentication exactly So one last little thing here is as you can see this this PNG file that I have Downloaded or being able to download it back to the web console is a convenience, but There's a whole set of credentials associated with being logged into this application Having a in the end a temporary URL that's signed in order to be able to get this but Swift being just a gigantic web server If you're creating web applications, it's nice to be able to have assets are directly served out of Swift as well and so using ACL is what I can do on this container is provide a World-readable listing on this container so that all objects in here can be seen by anybody if I if I wanted to have it public so I went ahead and did that and The side effect of that is now that this picture that I've uploaded into into the cluster is directly accessible just via a URL Okay, so this is the asset that's in the cluster right now and it's publicly accessible You can actually go to this address and pull it out But this just allows you to build these clusters put objects into them and then directly serve resources right off of them If you have assets that you need to do that and you can see how it ties down through the account name silver container and the object Everything's a URL and Swift And that's the demo Thank you very much and we'll be up here if you have any questions feel free to come up and stage in it and ask Thanks so much