nfs
NFS (Network File System) is a common file sharing protocol in Unix-like systems. You can mount JuiceFS on a Linux server first, and then export the JuiceFS mount point (or its subdirectories) through NFS.
Mount JuiceFS
Prepare a Linux host as the NFS server, then create and authenticate your JuiceFS file system by following Quick Start.
For Cloud Service / Enterprise Edition, mount by file system name (instead of Community Edition META-URL style):
# Authenticate once (first mount)
juicefs auth $VOL_NAME --token $TOKEN --access-key $ACCESS_KEY --secret-key $SECRET_KEY
# For on-premises deployment, add --console-url
# juicefs auth $VOL_NAME --token $TOKEN --access-key $ACCESS_KEY --secret-key $SECRET_KEY --console-url http://<console-ip>:8080
# Mount JuiceFS for NFS export
sudo juicefs mount $VOL_NAME /mnt/myjfs --update-fstab --sort-dir
For NFS scenarios, --sort-dir is recommended. Some NFS servers (such as nfsd) paginate readdir results, while JuiceFS does not guarantee directory entry order by default. Enabling --sort-dir helps keep directory traversal stable.
Step 1. Install NFS
Install NFS packages on both server and clients.
Server-side
# Debian / Ubuntu
sudo apt install -y nfs-kernel-server
# RHEL / CentOS / Rocky / AlmaLinux
sudo yum install -y nfs-utils
Client-side
# Debian / Ubuntu
sudo apt install -y nfs-common
# RHEL / CentOS / Rocky / AlmaLinux
sudo yum install -y nfs-utils
Step 2. Create exports
Assume JuiceFS is mounted at /mnt/myjfs, and you want to export /mnt/myjfs/media.
Add this line to /etc/exports:
"/mnt/myjfs/media" *(rw,sync,no_subtree_check,fsid=1)
NFS export syntax:
<Share Path> <Allowed IPs>(options)
For example, to only allow 192.168.1.0/24 and keep root privileges:
"/mnt/myjfs/media" 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash,fsid=1)
Apply and start services:
sudo exportfs -rav
# Debian / Ubuntu
sudo systemctl enable --now nfs-kernel-server
# RHEL / CentOS / Rocky / AlmaLinux
sudo systemctl enable --now nfs-server
Verify from client:
# List exported directories
showmount -e <NFS-SERVER-IP>
# Mount from Linux client (example)
sudo mount -t nfs -o vers=4 <NFS-SERVER-IP>:/mnt/myjfs/media /mnt/media
Share option description
rw: Read/write permission. Userofor read-only.syncandasync:syncwaits for server confirmation before returning,asyncreturns earlier for better performance.no_subtree_check: Disables subtree checks for better compatibility in many scenarios.no_root_squash: Prevents mapping client root to an unprivileged user. Use carefully due to security risk.fsid: File system identifier in NFS. For NFSv4, use unique IDs for exported file systems.
Choosing between async and sync modes
sync improves reliability but usually lowers write performance. With JuiceFS, network latency can make this more obvious.
In most JuiceFS + NFS scenarios, async is recommended. If your workload must use sync, consider using high-performance local cache and enabling writeback mode on the JuiceFS client.

