The Nectar shared filesystem service is powered by the Manila OpenStack project. Manila provides a simple interface for managing shared filesystems that hides the underlying infrastructure for configuring and running them. The Nectar shared filesystem service allows you to use either the Manila APIs or the Nectar Dashboard to do tasks like creating and restoring snapshots, adding and removing access and more.

The Nectar Shared filesystem service offers:

  • CephFS mounts from Monash
  • NFS mounts from Auckland

There is one important restriction to bear in mind, a Nectar shared file system is only accessible from Instances in the same availability zone. This restriction is for both security and performance reasons.

Glossary

  • Share – Think of a share as an NFS or CIFS server with its own mount location.

How is Nectar's Shared Filesystem service different to Volume Storage

Nectar's shared filesystem service allows a filesystem to be simultaneously shared to multiple Instances within a Project, hence the storage is accessible across Instances. This presentation of a filesystem to multiple Instances at the same time sets it apart from Volume Storage, which can only be attached to a single Instance at any point in time.

Shared Filesystem service quota

Access to the Nectar shared filesystem service is governed by its own type of quota, which you must apply for, through an allocation request form (either as part of a new request or by amending an existing request). To enter the values for your requested quota, you will need to toggle the On/Off button for the Shared File System Service to On.

The allocation form allows you to request quota for the total amount of storage you will require

  • Shares - The number of shares you can create
  • Storage - The amount of storage (in gigabytes) you can use across all your shares
  • Snapshots - The number of snapshots you can create across all your shares
  • Snapshot storage - The amount of storage (in gigabytes) you can use for snapshots across all your shares

Creating a Shared Filesystem: Dashboard

To create a Nectar shared filesystem from the dashboard, select the Shares option underneath the Compute menu item from the left-hand panel, and click the Create Share button in the top right of the screen.

You will be presented with a Create Share wizard to guide you through the options. Complete the fields within the form and click the Create button.

With respect to the options, you need to ensure that the Share Protocol and Share Type are appropriate for the specific Availability Zone that is selected, as per the following table:

Availability ZoneShare ProtocolShare Type
monash-02-cephfsCephFSmonash-02-cephfs
aucklandNFSauckland-nfs


Once your file share has been created, it will appear as an item in the list of shares.

Currently, you can ignore the Share Networks and Security Services tabs as these features are not enabled. 

The next step is to create rules for your fileshare. Rules define which Instances your fileshare can be mounted to. You will require the IP address for each Instance that you intend to share the file share with. To create a Rule, select the drop-down menu for the specific Share in the item list and choose Manage Rules

On choosing Manage Rules, you will be presented with a list of Rules, which will initially be empty. 

To add a new Rule, click the Add Rule button, which will launch an Add Rule wizard to create a new rule.  The rules are used differently based on the share protocol that you are using. 

For NFS share protocol

The Access Type should be left as ip and the Access Level should be left as read-write. The Access To field is where you provide the IP address of an Instance to share the fileshare with. Once the form is complete, click the Add button.

Repeat the step to add rules for each Instance that you are sharing the fileshare with.

With your rules defined, you can return to the list of Shares to then display the details of the Share which will be needed to physically mount the share to your Instance. Click on the Share Name link to display the Share Overview.

The information that is required to mount the Share to your Instance is contained in the Path field. You will need to copy this and use this within your Instance to mount the fileshare. As the root user or use sudo on your Instance, you can execute a command such as the following to mount the fileshare:

$> sudo mount -t nfs <value of the Path field> /mnt

Note: If your instance does not have nfs client tool, install it before running the above command:

# Installing NFS client on Ubuntu and Debian:
sudo apt update
sudo apt install nfs-common

# Installing NFS client on CentOS and Fedora:
sudo yum install nfs-utils

You will need to do this on each Instance that the file share has been shared to through Rules.


For CEPHFS share protocol

The Access Type should be left as cephx and the Access Level should be left as read-write. The Access To field is your name or id to use the share. Once the form is complete, click the Add button.

Repeat the step to add rules for each name that you are sharing the fileshare with.

With your rules defined, you can return to the list of Shares to then display the details of the Share which will be needed to physically mount the share to your Instance. Click on the Share Name link to display the Share Overview.

The information that is required to mount the Share to your Instance is contained in the Path field, Access to and Access Key fields. You will need to copy Access Key content into a file called a secret file. And copy Path and Access to to use within your Instance to mount the fileshare. As the root user or use sudo on your Instance, you can execute a command such as the following to mount the fileshare:


$> sudo mount -t ceph <value of Path field> -o name=<value of Access to field>,secretfile=<path of secret file you just created> /mnt 

Note: If your instance does not have ceph client tool, install it before running the above command:

# Installing Ceph client on Ubuntu and Debian:
sudo apt update
sudo apt install ceph-common

# Installing Ceph client on CentOS and Fedora:
sudo yum install ceph-common


Further reading

https://docs.openstack.org/manila/latest/