Around the Storage Block

NimbleOS 5.1 - Enhancements with Folders

Written by John Duffy, Nimble Storage SME, North America East

In this latest instalment of the NimbleOS 5.1 blog series, I will be introducing you to the new Folder Level Space Enforcement feature in NimbleOS 5.1.

As a brief reminder, we first introduced folders in NimbleOS 3.x back in November 2017 as part of our ever evolving multi-tenancy capability (you can read more about folders here in Nick Dyer's excellent blog: NimbleOS 3 - Introduction To Folders).

Folders provide storage administrators with logical organisation and abstraction capabilities within a Nimble array pool. For example, you can create folders for specific tenants in a multi-tenant environment, for specific applications such as EXCHANGE, PRODUCTION-VMs, VDI etc., or for departmental separation, such as ACCOUNTING, DEV-TEST, HR and so on. You can then logically associate specific volumes with a given folder at the point of creation, or move volumes between folders as needs dictate using the volume move function.

Folders inside a pool, inside the array groupFolders inside a pool, inside the array groupIn addition to defining folder level space limits, storage administrators can also set folder level performance limits from an IOPS (input/output requests per second), and throughput MiB/s (Mebibytes per second) perspective. All volumes located within folders with defined performance limits will automatically inherit those limits. You can monitor the historical or real time performance of folders by going to the Monitor > Performance tab in the array management GUI, and use the information to guide you when defining folder performance limits.

Perf Limits.png

What’s new with folders?

From a space limits perspective, in our Folders implementation prior to NimbleOS 5.1 exceeding the defined folder space limit (MiB/GiB/TiB), only prevented new volumes from being created in that folder, however existing volumes and snapshots located in the folder could continue to grow beyond the folder space limit.

NimbleOS Space Limit (Up to 5.0.x)NimbleOS Space Limit (Up to 5.0.x)For example, if we set the space usage limit to 100MiB as shown above, it would in fact be possible to create 5 x 100MiB volumes in that folder, and fill each volume with 100MiB of data, thus making the total folder usage 500MiB. NimbleOS would however as mentioned above, prevent new volumes from being created in the folder, when the aggregate usage of the original volumes reached the 100MiB usage limit assigned to the folder.

In NimbleOS 5.1.x, not only have we expanded the functionality to enforce folder limits 'Based on usage', we have also introduced an additional limit 'Based on provisioning'. It is important to note that in NimbleOS 5.1, the folder usage limits are based on 'Logical usage', which is the sum of 'Volume mapped usage' + 'Snapshot attributed usage'.

For the purposes of clarity at a very high-level, volume mapped usage is the usage of a volume from the host OS perspective, and snapshot attributed usage is the total of any snapshot blocks associated with a given volume, remember that NimbleOS snapshots are extremely space efficient, and as such we only store changed blocks when we take a snapshot of a volume.

NimbleOS 5.1.x OptionsNimbleOS 5.1.x OptionsAs you probably noticed in the above screenshot you can only select one 'Space Limit' option from the list, either 'No Limit', 'Based on usage', or 'Based on provisioning'. If you select the 'Based on usage' option, you are presented with an additional parameter that can be set as shown, 'Allow overdraft limit', this provides you with the ability to burst past the defined folder usage limit, the overdraft limit can be set to any value in the range 0% <> 200%, you can of course also select the default option which doesn’t include any overdraft buffer.

NimbleOS 5.1.x Based on usageNimbleOS 5.1.x Based on usageUsing the above as an example, if you assign a space limit of 100MiB to a folder and set an overdraft limit of 10%, when the folder usage reaches 110MiB, NimbleOS would either take any volumes in the folder offline, or set their status to non-writable, depending on the volumes performance policy setting. There are of course as you would expect, a number of alerts and alarms to prevent you from inadvertently crossing the overdraft threshold, and a NimbleOS space enforcement limit check runs in the background every sixty seconds.

It's important to note that even when there is an overdraft limit set, when the defined folder usage limit is reached, 100MiB in this example, NimbleOS will prevent the creation of any new objects within the folder, i.e. volumes, clones or snapshots, and it will not be possible to move any additional volumes into the folder using the volume move function. Also note that if the volumes within the folder are being replicated to a second array, replication will stop when the folder usage limit is reached.

The 'Based on provisioning' option was added in NimbleOS 5.1 to allow administrators to set Day 0 limits based on provisioned usage.

NimbleOS 5.1.x Based on ProvisioningNimbleOS 5.1.x Based on Provisioning

As an example, if you define a folder limit of 100MiB as shown, then create 2 x 50MiB volumes in that folder, even though you have not yet written any data to those volumes, you will not be able to create a third volume, as you have already reached the ‘Based on provisioning’ limit. One potential use case for this particular provisioning model could be if you are charging internal or external tenants based on requested space, as opposed to used space, which is a common model used by service providers etc.

Whilst reaching the defined 'Based on provisioning' limit will prevent the creation of any new objects including replica volumes as per the above, there is one important exception to this rule when you define a ‘Based on provisioning’ limit, snapshot creation will still be possible for any volumes that exist in the folder thus providing local data protection.

One final point of note, if you are using folders today on an array running NimbleOS 5.0.x or earlier, it is possible that as we didn’t previously enforce space usage limits, the volume and snapshot usage in these folders may have already exceed any usage limit you set during folder creation. If you find yourself in this position please contact Nimble Storage Support and they will work with you to help you calculate if any of these limits need to adjusted prior to updating to NimbleOS 5.1.

Thanks for taking the time to read this blog. If you have any questions, please don't hesitate to ask them in the comments section below.

Cheers for now!Screenshot 2019-04-12 at 17.58.13.png

 Written by John Duffy, Nimble Storage SME, North America East

Nick Dyer
twitter: @nick_dyer_
0 Kudos
About the Author


Nick is a Storage Field CTO & Technologist - focusing on helping customers deliver business value with innovative technologies such as Nimble Storage & dHCI, HPE Cloud Volumes & much more.