Manta-NFS Launch

When we announced Manta last summerwe knew that one of the first new features we'd like to add was a way toaccess the objects in Manta in the same simple way as you access local files.Today we're excited to announce that this new capability is ready for generaluse.

When we set out to build this new feature, it was pretty clear to us that thebest way to do this was to build aNFS gateway into Manta.NFS is a good choice because its a mature, simple andstandardized file system protocol.Because of this, its a core feature in many different operating systemsand certainly the ones that Manta users are most likely to be running, suchas SmartOS, Linux, MacOS, or Windows.

Thus, we built a user-level NFS server that runs on any local system, servicesNFS requests from either the local or remote systems, and gateways thoserequests back into Manta. Once the server is running, you can see how easy itis to mount your Manta object store onto the local file system and then workdirectly with your objects in Manta as if they were local files.

% sudo mount 127.0.0.1:/foo/stor /mnt% ls /mntdata         project.txt         spec.pdfplans.txt    roadmap.pdf% cp ~/results.txt /mnt/data

Although the Manta CLI tools are easy to use, this is even easier, since allof the native commands for manipulating files are directly available. If youare running on an OS which provides a graphical tool for managing the filesystem, such as the MacOS finder, then that works too.

While the gateway provides easy access to the object storage side of Manta,it cannot expose any of the integrated compute capabilities which are one ofManta's most compelling features. For that, the Manta CLI must still be used.However, the gateway does make it easier to get data into Manta for lateruse in compute jobs.

Within Manta data is stored as atomic objects. Unlike files, there is no suchthing as a partial update to an existing object. However, NFS, by definition,is a file-centric model which exposes operations that are commonly performedon files. To enable these two different models to work together, the NFS serverimplements a local, internal cache which provides the normal file operations oncached Manta objects. The cache implements a write-back model in which dirtyfiles are periodically written to Manta as objects.

Dave Pacheco, one of the architects of Manta, has written an interestingdiscussionabout the CAP tradeoffs involvedin Manta. Due to the internal cache, the NFS server exposes different choicessince there is no longer a consistent view of the objects. However, asidefrom enabling file system semantics for Manta, the cache also providesincreased performance and availability as compared to accessing the remote data.

We have barely scratched the surface of how we might use the NFS gatewayinternally but there are already several interesting examples we've come upwith. Saving log data into Manta is one case. By NFS mounting the log directory,all logs are automatically saved into Manta with no special action needed.Another case is to use the server to speed up builds. Since we save buildartifacts into Manta, the server's cache makes it fast to access thesecomponents when building the other things that depend on these pieces. Wealso use rsync to copy the results of our pkgsrc builds into Manta.We'll undoubtedly find many additional uses as time goes on.

To get started using the NFS gateway, see the documentation here.



Post written by Jerry Jelinek