NFS¶
Maintains a NFS share to access a data pool from multiple VMs. The NFS share is bound to one project and one datacenter location.
Components¶
nfs_rg_share
nfs_rg_client
Configuration¶
The NFS configuration is fully managed and located in
/etc/exports
for the NFS server and /etc/fstab
for the NFS
clients.
The NFS server is by default set up to run in sync mode, so any system call that writes data to files on the NFS share causes that data to be flushed to the server before the system call returns control to user space. This provides greater data cache coherence among clients, but at a significant performance cost.
The NFS clients are connected in hard
mode to ensure data consistency. In
addition we use an automount unit, to avoid applications unexpectedly running
without access to NFS due to mounting issues at boot time. If NFS is absent
applications will experience infinite blocking or receive explicit errors
when accessing NFS-backed paths.
flyingcircus.roles.nfs_rg_share.clientFlags
List of strings that are applied as options for every client.
Default: ["rw" "sync" "root_squash" "no_subtree_check"]
Interaction¶
All NFS clients mount the NFS share at /mnt/nfs/shared
. This directory is
readable and writable by any service user. Application may use this directory to
store their data to be available across multiple VMs.
The NFS server stores its data at /srv/nfs/shared
. This directory is also
readable and writable by any service user. We recommend not to directly access
this directory if there is no special need to do so, but to also use the NFS
client component on the server VM.