Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Azure CycleCloud provides built-in support for mounting a simple Network File System (NFS). CycleCloud can manage the NFS as a resource, or the NFS can be an external resource.
Default Templates - Network Attached Storage Settings
The default cluster templates for each scheduler include a section for configuring NFS options when creating a cluster.
The /shared/
directory for each cluster is an NFS share by default. The NFS Type
dropdown in this configuration section provides options for this NFS share to be either exported from the cluster headnode (the Builtin
option), or mounted from an NFS server.
If you select Builtin
, you create the NFS share on an Azure Managed Disk (Standard SSD) mounted onto the headnode of the cluster. Use the Size
option to specify the size of the provisioned disk.
If you specify the External NFS
option, you see extra fields where you can enter the IP address or hostname of the NFS server and other NFS mount options. Use the External NFS
option to mount endpoints such as NFS on Azure Files Storage, Azure HPC Cache, Azure NetApp Files, or NFS on Azure Blob Storage.
If you need another NFS mount point, such as a /data
resource for all users, select the Add NFS Mount
option. You see extra fields where you can add another mount.
Mount an NFS filesystem
To mount an existing NFS filesystem, use the following code:
[[[configuration cyclecloud.mounts.nfs_data]]]
type = nfs
mountpoint = /mnt/exports/nfs_data
export_path = /mnt/exports/data
The export_path
is the path on the server. The mountpoint
is the path where you mount the share on the client. You can export the mounted NFS filesystem from a node in the same CycleCloud cluster, a node in another CycleCloud cluster, or a separate NFS filesystem that allows simple mounts. If a node in the local cluster exports the filesystem, CycleCloud uses search to discover the address automatically. If a node in a different CycleCloud cluster exports the filesystem, you can specify the cluster_name
attribute in the mount configuration to instruct CycleCloud to search the cluster with that name:
[[[configuration cyclecloud.mounts.other_cluster_fs]]]
type = nfs
mountpoint = /mnt/exports/other_cluster_fs
export_path = /mnt/exports/data
cluster_name = filesystem_cluster
To specify the location of the filesystem explicitly (required for mounting non-CycleCloud filesystems), add the address
attribute with the hostname or IP of the filesystem in the mount configuration:
[[[configuration cyclecloud.mounts.external_filer]]]
type = nfs
mountpoint = /mnt/exports/external_filer
address = 54.83.20.2
Default shares
By default, most CycleCloud cluster types include at least one shared drive mounted at /shared and /mnt/exports/shared. For clusters that need a simple shared filesystem, this mount is often sufficient.
Many cluster types also include a second NFS mount at /sched and /mnt/exports/sched which is reserved for use by the chosen scheduler. In general, applications shouldn't access this mount.
The mount configurations for the default shares reserve filesystem names cyclecloud.mounts.shared
and cyclecloud.mounts.sched
. You can modify the default configurations for these shares, but changing them might cause unexpected behavior because many cluster types rely on the default mounts.
Disabling NFS mounts
You can disable Azure CycleCloud NFS mounts by setting the disabled
attribute to true. You can also disable the default shares this way:
[[[configuration]]]
cyclecloud.mounts.sched.disabled = true
cyclecloud.mounts.shared.disabled = true
cshared.server.legacy_links_disabled = true
Many clusters assume a shared storage device is available cluster-wide at /shared. If you use these configurations, enable a file server and mount it on each cluster node with:
[[[configuration cyclecloud.mounts.external_shared]]]
type = nfs
mountpoint = /shared
export_path = /mnt/raid/export
address = 54.83.20.2
Mount an Azure Managed Lustre Filesystem
Azure CycleCloud clusters have built-in support for mounting Azure Managed Lustre.
To create a new Azure Managed Lustre Filesystem (AMLFS) for use in your cluster, see the AMLFS documentation.
To mount an existing AMLFS:
[[[configuration cyclecloud.mounts.lustre_data]]]
type = lustre
address = 10.4.0.14
mountpoint = /lustre_data
The required address
attribute specifies the hostname or IP of the AMLFS.
The required mountpoint
attribute specifies the path to mount the AMLFS on the cluster nodes.
Optionally, use the export_path
attribute to mount existing subdirectories within the AMLFS. For a newly created AMLFS, the only existing path is /
. If you don't set export_path
, it defaults to tcp:/lustrefs/
(AMLFS mount points must be prefixed with tcp:/lustrefs
).
For example, if you create the /data
path in your Lustre filesystem, you can mount data
as follows:
[[[configuration cyclecloud.mounts.lustre_data]]]
type = lustre
address = 10.4.0.14
mountpoint = /lustre_data
export_path = tcp:/lustrefs/data/
options = noatime, flock
Use the optional options
attribute to add mount options for an AMLFS mount. If you don't specify options
, it defaults to noatime, flock
.
[!NOTE] Lustre performs best if nodes unmount the filesystem before shutting down. We strongly recommend that you enable Termination Notifications for nodes that mount an AMLFS filesystem. CycleCloud registers a shutdown script that cleanly unmounts the filesystem when a node terminates. The script runs if you enable Termination Notifications.
Mount configuration options
Option | Definition |
---|---|
type | REQUIRED Set the type attribute to nfs for NFS mounts or lustre for AMLFS mounts. This setting differentiates these mounts from volume mounts and other shared filesystem types. |
export_path | Set the location of the export on the remote filesystem. The export_path must already exist on the remote filesystem. If you don't specify an export_path, the mountpoint of the mount is used as the export_path. |
mountpoint | Set the location where the filesystem is mounted after applying any additional configuration. If the directory doesn't already exist, it's created. |
cluster_name | Set the name of the CycleCloud cluster that exports the filesystem. If you don't set this option, the node's local cluster is assumed. |
address | The explicit hostname or IP address of the filesystem. If you don't set this value, the search process tries to find the filesystem in a CycleCloud cluster. |
options | Any non-default options to use when mounting the filesystem. |
disabled | If set to true , the node doesn't mount the filesystem. |
Note
Most schedulers don't support changing the hostname scheme.