Skip to content

Mount points

Mounting a remote directory onto a client container — from a data container, a layer master, or an external NFS server, with NFS or GlusterFS Native.

Mount points are the client side of file sharing on Stack Harbor PaaS. Where exports declare what a storage container is making available, mount points declare what a client container wants to consume — and the platform handles the wiring between the two.

A mount point connects a local directory on the client container to a remote directory on a server. After the mount, the client can read and write the remote files as if they were local. The connection survives restarts; the platform persists mount entries with the container.

Client protocols

Two client protocols are supported:

  • NFS — available on every container type. Mature, well-understood, lower overhead. The default choice.
  • GlusterFS Native — only available against a GlusterFS cluster server. Native replication and failover semantics, recommended when write performance under concurrent load or data safety dominates.

The protocol picker only appears in the dialog when the server is a GlusterFS cluster. For everything else, NFS is the only option.

Creating a mount point

  1. Click Config next to the client container or layer. (Mounting at the layer level applies the mount to every node in the layer.)

  2. Switch to Mount Points in the left menu.

  3. Click Mount in the toolbar.

  4. Pick the operation type:

    • Data Container — the server is a node in the same account (typically a Shared Storage Container).
    • Master Container — the server is the master node of the current layer. Used to share data among nodes of the same layer.
    • External Server — the server is outside the account. You provide its IP or domain.
  5. Fill in the details for the chosen type:

    • Mount Point — the local path on the client where the remote data will appear. If the directory does not exist, it is created.
    • NFS Server (Data Container) — pick the source node from the dropdown.
    • NFS Server (Master Container) — auto-filled with the layer’s master.
    • NFS Server (External Server) — the external IP or domain of the server.
    • Remote Path — the directory on the server.
    • Client Type (only when the server is GlusterFS) — choose NFS or Gluster Native.
    • Mount to all nodes — when on, applies the mount to every node in the layer, including future ones. Auto-enabled for Master Container mounts.
    • Read Only — when on, the client cannot modify the remote files.
  6. Click Add.

If the chosen data container is not a dedicated Shared Storage Container, expect a one-time delay of a couple of minutes the first time you mount — the platform installs the NFS client software on the source container.

Reserved paths

The local mount point path has restrictions. It cannot start with /proc, /dev, /sys, /run, or be equal to:

/, /bin, /lib, /lib64, /lib32, /usr, /usr/bin, /usr/sbin, /usr/lib, /usr/lib64

The exact list varies by region. Pick a path under your application’s own directory tree to stay safely out of the way.

After the mount

The mount appears in the list. From there:

  • Double-click the row, or pick Navigate to directory, to open the mounted folder in the file manager.
  • Unmount removes the connection. The local mount point directory is left in place but empty.

When you navigate into the mount, you see the same content as on the remote server. If the mount is at the layer level, you can switch between nodes using the dropdown in the left menu — the content is the same on all of them.

Write permissions

If you granted read-write at mount time, that is only half of the story. The folder on the server must also let the user inside the client container write to it.

Container stacks default to different users — root on some, jelastic on others. If the UID/GID inside the client does not match the ownership of the folder on the server, writes fail with EACCES even though the NFS-level permission is rw.

The fix is on the server: connect over SSH and adjust the ownership:

chown {uid}:{gid} {path}

where:

  • {uid} — user name or ID, from /etc/passwd on the client container.
  • {gid} — group name or ID, from /etc/group on the client container.
  • {path} — the directory the client is writing to.

Where to go from here

  • Storage exports — the server side of the same operation, initiated from the storage container.
  • External NFS storage — when the server is outside the account.
  • NFS — protocol-level notes, default mount options, and limitations.
  • GlusterFS — when to pick Gluster Native over NFS as the client protocol.