NetApp Docker Volume Plugin 17.07 Updates and Changes

We are excited and proud to announce the availability of the next version of the NetApp Docker Volume Plugin, 17.07. Continuing to improve on the awesomeness that is the nDVP, we have several new features in this release! Without further ado…

Customized NFS Mount Options

One of the early enhancement requests we received for nDVP was to add support for NFSv4 to the ontap-nas driver. While we know this is important for many different reasons, we also didn’t want to limit to customizing just the NFS version. The solution is to use a driver level default specifying the NFS mount options which nDVP will use for all volumes mounted by the driver instance. This makes it extremely customizable, allowing the administrator to tailor the NFS mount to the needs of the application.

At the low level, this option behaves exactly the same as mounting a volume from the command line specifying values for -o. For example, here is a CLI command to customize the rsize property of the mount:

To have the same option used for all volume mounts for the driver instance, we need to specify the nfsMountOptions in the driver configuration:

Note that this cannot be customized on a per-volume basis, and the customized option is at the top level of the configuration file, not in the “defaults” section, which is reserved for per-volume behavior. The option will apply to all volumes which the driver mounts. This limitation stems from the fact that the nDVP does not currently retain any state about the configuration for provisioned volumes. If your application has multiple volumes with different mount option requirements you will need to have multiple nDVP instances with different nfsMountOptions to satisfy their needs.

The default value for nfsMountOptions is -o nfsvers=3. Also, the option(s) specified must start with -o.

ONTAP Clone Split Support

A clone split is when ONTAP copies the data from a parent volume’s blocks to a child clone, completely removing any dependencies between the two. This is important when, for example, a clone is expected to live for a very long time with lots of disparate data from the parent as it can tie up space in snapshots, prevent a clone from moving to another aggregate, etc. A clone split is something that is normally masked from the user because it’s not critical to how they are consuming the storage. However, we encountered at least one use case where allowing the application admin to specify a split from the beginning is important.

Jeff Steiner, one of our Oracle experts, has been working through using nDVP with Oracle’s recently released container images. One of the things he discovered was that it was very easy, and very fast, to instantiate new databases when using the volume cloning feature of nDVP. However, because the base volumes are essentially being used as templates, the actual volumes would very quickly be very different from the original so an immediate split is deemed beneficial.

The result of Jeff’s work is a new feature in nDVP which allows a clone split to be triggered at creation time. For Oracle databases, this reduces the time to create and instantiate a new database to as little as 22 seconds!

Like most other options, a default can be specified in the driver configuration, or the user can specify the value at volume creation time.

The value is a Boolean true or false. To clone split at volume creation time, use the Docker -o argument to specify the driver option:

The default value is false. This works with both the ontap-san and ontap-nas drivers.

4k and 512e SolidFire Block Size

SolidFire volumes support both the 4k and 512e block sizes, however, in previous versions of nDVP, no block size was specified resulting in the volumes created simply accepting the SolidFire default of 4k. With this version, we have now changed the default to be 512e for all newly created volumes to maximize compatibility. However, administrators can customize the default block size being used for volumes on a per driver instance and users can customize at volume creation time.

To configure the default block size, the nDVP configuration file should have an option added to the defaults for blockSize:

The Docker user can specify the block size at creating time using a standard option:

Valid values for the block size are 512 and 4096. This setting only applies to the solidfire-san driver.

Conclusion

There are a number of other fixes and enhancements that are a part of this release, so please be sure to see the full change log. Congratulations to the team!

If you have any questions about nDVP or the changes in the 17.07 release, please leave us a comment below, reach out using Slack, or open an issue using GitHub.

Andrew Sullivan on GithubAndrew Sullivan on Twitter
Andrew Sullivan
Technical Marketing Engineer at NetApp
Andrew has worked in the information technology industry for over 10 years, with a rich history of database development, DevOps experience, and virtualization. He is currently focused on storage and virtualization automation, and driving simplicity into everyday workflows.

2 thoughts on “NetApp Docker Volume Plugin 17.07 Updates and Changes

Leave a Reply