What are junction paths?
Applies to
- ONTAP 9
- Clustered Data ONTAP 8
- NAS
Question(s) and Answer(s)
Volume junctions function to join individual volumes together, into a single logical namespace, in order to enable data access to NAS clients.
When NAS clients access data by traversing a junction, the junction appears to be an ordinary directory. A junction is formed when a volume is mounted to a mount point below the root, and is used to create a file-system tree. The top of a file-system tree is always the root volume, which is represented by a slash (/
). A junction leads from a directory in one volume to the root directory of another volume.
- Although specifying a junction point is optional when a volume is created, data in the volume cannot be exported (NFS) and a share cannot be created (CIFS) until the volume is mounted to a junction point in the namespace.
- A volume that was not mounted during volume creation can be mounted post its creation.
- New volumes can be added to the namespace at any time by mounting them to a junction point.
- Mounted volumes can be unmounted; however, unmounting a volume disrupts new NAS sessions to all the data in the volume and to all the volumes mounted at the child junction points beneath the unmounted volume.
- Due to the NFS filehandles referencing the volume MSID as described in Bug 465129, existing NFS sessions can continue to access all data in a volume even after the volume is removed from the SVM namespace.
- Junction points can be created directly below a parent volume junction, or they can be created on a directory within a volume.
- Snapshot copy access does not traverse junctions.
- A volume can be mounted to the namespace of its Vserver in one place.
For example, a typical volume junction configuration with the above-mentioned namespace architecture might appear similar to the following configuration, where there are three insertion points to the root volume of the SVM. Two insertion points are directories named 'data
' and 'projects
'. One insertion point is a junctioned volume named 'audit
'
::> volume show -vserver vs1 -junction
Junction Junction
Vserver Volume Active Junction Path Path Source
------- ------------- --------- -------------------- -----------
vs1 audit true /audit RW_volume
vs1 audit_logs1 true /audit/logs1 RW_volume
vs1 audit_logs2 true /audit/logs2 RW_volume
vs1 audit_logs3 true /audit/logs3 RW_volume
vs1 eng true /data/eng RW_volume
vs1 mktg1 true /data/mktg1 RW_volume
vs1 mktg2 true /data/mktg2 RW_volume
vs1 project1 true /projects/project1 RW_volume
vs1 project2 true /projects/project2 RW_volume
vs1 vs1_root - / -
A junction path can be defined during volume creation, or an existing volume can be modified with a junction path.
::> volume create -vserver vserver_name -volume volume_name –aggregate aggregate_name -size -security-style {ntfs|unix|mixed} -junction-path junction_path
Security style - Choose if the following apply:
UNIX:
- The file system is managed by a UNIX administrator.
- The majority of users are NFS clients.
- An application accessing the data uses a UNIX user as the service account.
NTFS:
- The file system is managed by a Windows administrator.
- The majority of users are SMB clients.
- An application accessing the data uses a Windows user as the service account.
Mixed:
- The file system is managed by both UNIX and Windows administrators and users consist of both NFS and SMB clients.
Run the following command to mount a volume:
::> volume mount -vserver vserver_name -volume volume_name -junction-path junction_path
Run the following command to unmount a volume:
::> volume unmount -vserver vserver_name -volume volume_name