00:06
Pure storage has introduced yet another innovative feature of our enterprise data cloud with pure fusion presets and workloads. Presets are a fleet template or a bundle of settings that define storage capabilities for deploying workloads. They provide repeatable configuration consistency, thereby reducing configuration.
00:25
A workload is a real world application of a preset. If a preset defines storage capabilities, a workload defines what those capabilities will do. So let's go ahead and listen and watch Pure Fusion product manager Larry Touchet as he steps through demonstrations of fusion presets and workloads. So we're going to start off here on the fleet
00:47
tab where you can see we have a fleet with 3 arrays in it. The cool thing about Fusion is that we're going to do this entire demo using all of these arrays without having to use the GUI of any other array. Fusion is going to let us do it all from one interface. So the new features exist over here in the storage tab,
01:06
presets and workloads. We don't have any workloads configured yet. In order to get a workload. You have to have a thing called a preset, which is kind of like a workload template, which is a bundle of a bunch of different settings for how a workload should look in an environment. They're going to help you enforce configuration
01:25
consistency and repeatability and reduce the risk of misconfiguration. All right, we're going to create our first preset here and we're going to start by just creating the simplest kind of preset you can. We will create one for a general database. That's all the comment or description we'll get to it for now. You need to select a workload type. This is a database,
01:54
so we'll pick MS SQL. You need to select a storage class. Fusion automatically detects which storage classes exist within the fleet. There are Flash ray X and Flash ray C here. We will pick Flash Ray X. At a minimum, you have to add at least one storage resource.
02:12
We will add 2. We will add 1 data volume. Of a size, let's just say 5 gigabytes. And no snapshot configurations for now. We'll add that over to the preset. It shows up over there. We're going to add 2 because we want to also have a log volume for our database,
02:32
one of those, and I guess we'll just call that 3 gigabytes. Add that to the preset over here. This is the simplest form of preset you can create. It requires a name. The description is a good idea, but that's Optional requires a workload type, a storage class,
02:48
and at least one storage resource, but we'll make 2 here. And then you just click on Create, and that is going to generate a preset for us. Presets are created fleet wide. Every array in this Fusion fleet will maintain a copy of this preset that is revisioned and synchronized around the fleet for you by Fusion. OK, in order to deploy a workload from that preset, you go to the workloads tab,
03:20
hit the plus button here. You will, you will see the entire catalog of storage presets across the fleet in this list, no matter what array you use, and you can review a description of what the preset is going to deploy for you over here on the right. This is a very simple preset, so all we have to do is enter a name for our workload.
03:41
We will call this workload GenDB1. When you choose an array, you can choose any array that matches the storage class that was defined in the preset because we didn't make that configurable. So we're just going to pick this array here in this example and then click Create workload and behind the scenes Fusion will go do the things for us to get this workload created,
04:03
and there you can see it's done that. So now we have a workload called GenDB1. You can click on the workload and view some specifics. There's the workload name. Of the preset it was created from the two volumes that we wanted one data volume, 5 gigabytes, and one log volume, 3 gigabytes.
04:27
Now Fusion is fully backwards compatible and so all it has really done is just provision purity resources for us. So these are just normal volumes. You could click on them, view them here, you can use this menu to connect them to a host just as you would in a normal. Volume. If you want to, you could add these volumes to protection groups, and you can connect them to host groups,
04:50
you can create snapshots of them. They are no different than any other existing purity volume, but you can even rename them. We will do that here. Let's say we wanted to rename this one. And put the workload name at the front of the volume name. We can rename it. Now we renamed that one volume.
05:08
If we go back here to the workload detail page, we can see the volume is renamed, but it is still a member of the workload. So we do not track workload membership simply based on the names or the attributes of the volumes it's stored internally, but using tags by purity and regardless of how you manipulate these objects, they would still be a member of the workload.
05:34
OK, now we're going to build on this preset and add more capabilities to it. So the first thing we're going to do is add a snapshot configuration to it for configuring snapshots when a workload is deployed. So to do that, we'll go in and edit the preset to go to the snapshot configuration section. We'll create a snapshot configuration called Holy.
05:55
We'll say we want to create a snapshot every 1 hour and keep those for 8 hours. That gives us a preview of the rule right here. We can click Add rule that sort of saves it, and then add it to the preset, which writes it down here and puts it in the preset. Now we can use it and apply it to a storage resource.
06:16
and we want to apply it to both of these, so we click on the storage resource, click edit that populates it into the storage resource editor where we can choose hourly right here and then save that configuration into that storage resource over on the right and we'll do the same thing for the log volume, select the snapshot config hourly. Save it right there and then we've got an hourly snapshot configuration in this preset
06:42
and update the preset. OK, now we're going to deploy a workload with that snapshot configuration. So we're here in the workloads tab. We will deploy a new workload. We'll select our general database preset and click continue, and we'll give this a name. This will be Gen DB 2.
07:02
It's the second database workload we deployed. Let's put this over on the other Flash array X in the environment, and that's all there is to it. Just click Create workload. Fusion is going to work in the background for us to do all of the configuration necessary to deploy this workload.
07:22
There it is. There's Gen DB2. Now what's different about this workload is that we configured it with a snapshot configuration. So what it has done is automatically configure a protection group for us. All of the volumes in this workload are a member of this protection group,
07:40
and there is the snapshot every 1 hour and keep for 8 hours configuration that we applied. OK, now we want to update this preset again to apply a QOS limit when workloads get deployed. So to do that, we will edit the preset, go here to the QOS configuration section. Let's say we want to do a 5000 IOPS limit and a 100 megabytes per second bandwidth limit. We add that to the preset.
08:10
You can see it gets applied in the preset over here on the right, and then we click Update. Now here on the workload tab we will deploy another workload from this same preset. You can see the QOS configuration is saved in there. We will call this GenDB3.
08:31
We will just go ahead and place it on this array, click Create Workload. Fusion will work in the background to deploy all of the configuration necessary for us. And if we take a look at that workload here, we can see that the volumes have been configured into a volume group which is right here, and that volume group has the QOS limit applied to it of 100 megabytes per 2nd and 5000 IPs.
09:02
OK, we want to edit this preset some more and make it a lot more powerful, but before we do that, let's look at how to make a copy of a preset. We can do that from the command line if I open up a console window here. We can do a pure preset. Workload List. This will list the existing presets across the
09:25
whole fleet. We can see we've got our preset there in the fleet one fleet called Gen DB. If we want to download that, we do a pure preset workload. Download and the name of that preset, including the fleet. That will print the entire preset in JSON format for us on the screen,
09:51
and then if we want to create another preset using all of this same configuration, we can just simply select all of this text here, copy that text, and then do a pure preset workload upload. And we need to give it a context which is going to be delete 1. That's where we want to put this preset. It's the only place it can go and give it a new
10:16
name. Let's call this one MS SQL. And Then paste in the entire JSON here and do control D. and now if we do the pure preset workload list, we can see both of these presets in the system. The GUI hasn't refreshed here yet. Let's do that and we can see this new preset
10:41
available for us to use in the list. While we're here, let's go ahead and edit the description of this preset. We'll call it MS SQL database config. With Snapshot and QOS. Limits And update that.
11:11
OK, now we're going to get into something a bit more powerful with presets, and that is the use of parameters to allow user inputs when workloads are being deployed. The first thing we'll do is edit this MS SQL preset to allow the user to select a storage class when they provision the workload. Right now you can see the storage class only allows Flash Ray X to be chosen,
11:36
so you don't get any choice or option when you're deploying a workload. In order to collect the user input, we need to use what's called a parameter, and the parameters are over here in this parameter editor section. And what we're going to do is select a parameter type for the storage class. You need to use a resource reference type of parameter because what that's going to do is
11:58
reference the existence of resources out in the fleet. There are two kinds we support today. One of them is what kinds of storage classes are out in the fleet. So we'll choose that parameter type. And then we want to give it a name, and here you want the name to reflect what you are
12:15
collecting from the user. So here we'll say storage class because that's the thing that we want this parameter to collect. You can also put a description which tells the user why you're collecting this input, so you can say select storage class type for this workload. And then you need to select the resource type, and here you can see a storage classes is a
12:39
resource type. That's the one we're going to pick. You can also choose a default. We will go ahead and choose Flash ray X as the default and add this to the preset. Now you can see this has been added into the UI and we want to use that parameter here in the storage class section, and there's the parameter we just created.
12:59
So we click storage class use parameter, and now you can see that the storage class here has been updated to collect this input in the workload deployment form, and we'll click Update to save that preset. OK, let's deploy a workload from the new preset that we have cloned and that we added the storage class parameter to. You can see everything else about this preset
13:23
is configured just like the GenDB preset was because we simply cloned it. So we'll click continue and we'll give this a thing, a workload name. We'll call this MSQL1, and you can see there's something different here about the workload deployment form. Now we have the ability to select a storage class. This is the string that we put into the
13:46
parameter. And we can choose Flash ray X or Flash ray C. We can choose Flash array C here, and that will limit our array selection to only flash arrayCs that are in the fleet, or if we choose Flash ray X, then we can choose to deploy the workload on either one of the flash ray X's and get a recommendation for that. Let's go ahead and put this one over on the
14:08
Flash array C. We'll click create workload and Fusion is going to go off in the background and do all the work for us to deploy this. And there it is, MS SQL one. Deployed on the flash array C with volumes, QOS limits, and a protection group for
14:27
hourly snapshots. OK, let's look at how to apply tags to a workload when we deploy a workload from a preset. You can do that by configuring workload tags in the preset. Anytime you want to collect input from a user with a preset, you need to use a parameter, and to do that,
14:48
we'll add a parameter over here in this section. We'll just pick a string parameter. Let's call this billing ID, and we'll put a description here something like enter the. Apartments billing ID And we don't need a default value and we're not going to control or set any allowed values right now. We'll add this to the preset that puts it in
15:15
the interface here and then we'll create a workload tag and we'll call this billing ID. It's a good idea to make these things match so we know which parameter goes with which option in the preset, and here we'll select that billing ID parameter. And then add it to the preset and you can tell that it's going to collect input from the user because of the parameter being in brackets here in the preset review and then we'll update that
15:44
preset. OK, let's see what that looks like when I deploy a workload. So we will deploy a workload now from this preset. We can see that here's the workload tag parameter that's going to be collected, and now I can see all the things I had before. Give my workload a name. This is my 2nd SQL workload that I've deployed.
16:07
I'm just going to let it use the default Flash AX there. Here I'm required to enter the requesting department's billing ID. And I'll just put some numbers in there as an example of that, and we're going to deploy the workload here on this array, and then I'll click Create Workload.
16:25
Fusion will go off and deploy that workload for us in the background. OK, now I can see the new workload I've deployed right here, MS SQL 2, and if I examine that workload, you can see that I now have a workload tag applied. That's the billing ID that was inputted when the workload got deployed. OK, the parameters are quite powerful, so this time let's look at an example of how we add
16:50
another tag, but this will be in the form of a multi-select menu for the user when the workload is getting deployed. Just like before I have to create a parameter, let's do a string type parameter again and this time we will collect a tier of what kind of workload this is. We'll put a description in there, enter the tier of the workload being deployed,
17:16
and the allowed values that we're going to configure here is we'll say production. Add that one And then we'll also add one called test. Dev and that that creates these two allowed values we can also set a default value here. And we'll say production is the default value. Add that to the preset, and then we want to use that in a tag.
17:45
Here we use the same name again so we can reference which one this is and select tier here and add it to the preset and we know it's going to collect values because of the brackets there and then update that preset. OK, let's deploy a workload from that preset that we just updated to collect the tier from the user. I'll put in a workload name.
18:11
I'll leave it on the default storage class. I'll enter billing ID. And now you can see I'm able to select a tier to be used for this. I'll choose test dev and I'll put it on the flash ray C. Over on this array.
18:35
You can see here is the new workload that has been deployed with the billing ID tag and the tier test dev. OK, let's configure one of these presets to apply replication to a workload when it gets deployed. We'll add it to this one. Let's first update the description general database with a sync.
18:57
Replication. And to do that we need to create a periodic replication configuration. We'll call this daily. And we'll pick a remote target. This is the target array that we want workloads to be replicated to.
19:13
This is the flash ray C in the environment, and that's where we want this preset to configure replication to go to. So we will create a replication snapshot once a day and keep those for 7 days. We will write down that rule. Save it into the preset and now we can go to the storage resources and apply
19:36
that daily replication config. I'll apply it to the data one and to the log one. You can apply it to one or the other or both, depending on how you'd like the workload to be deployed. And I'll update that pretty soon. OK, let's deploy a workload from that preset now and see what that looks like.
19:59
Here you can see I just need to Input my workload name and my placement target for where I want the primary workload to be, and you can see that it is going to automatically configure periodic replication with async to the remote target array. Here's our new workload. When you look at that workload, you can see two protection groups have been configured,
20:27
one for local snapshots and the daily one, which is configured with replication over to the Flash ray C in the environment with the schedule that we set up one day and keep all snapshots for 1 week. Now let's configure that preset to let the user select the replication target. In order to do that, we're going to collect user input,
20:55
so we need to create a parameter to do that, and here we will pick resource reference and we will call this replication. Target Put a description Select the target array for replication and here because this is a replication target, we want to pick remote arrays. We can choose a default. Let's set it to this one,
21:19
which is the Flash array C in our environment. We'll add that to the preset. That's created that parameter. Now we will go down here to the periodic replication configuration. This is the replication configuration we want to change. This is the daily snapshot replication configuration that is.
21:38
It's sort of hard coded to replicate to this specific array, and that's what we want to make different. So we'll say we want to edit that. We have this one rule that was in there and we're going to remove that rule because we'll create a new one. We'll use the parameter replication target that we just created.
21:55
We'll set it up to do the same thing, replicate every 1 day and keep for 7 days. Now we have this new rule. We'll add that one and save it in the preset. Now that that's saved in there, we can go ahead and update the preset. OK, let's deploy another workload from that preset.
22:16
Now that we've updated it, we'll choose that preset right there, click create workload. We'll call this 1 GenDB5. And our replication target is configured with a default of the 3rd array, which is the Flash array C in the environment, but you can see we're allowed to select other
22:36
arrays as a replication target. I can select any array here. We'll pick array 2 and then we'll leave our primary workload configuration set up for the default first array. We'll let Fusion deploy that workload for us. And then once it's done, we'll take a look at that workload and we can see that this workload
22:59
has been configured with a protection group to do async replication over to the second array. Thanks, Larry. Now I know you want to experience this fantastic new features, and you can do so without any hardware requirements or sales commitments. Just go to testdrive.peStorage.com and give Fusion presets and workloads a try.
23:23
Stay tuned for more innovative features from the Enterprise Data Cloud with Pure Fusion.