GridFs

GridFs is a Filesystem as a service. It is based on NFS version 4.

Performance Classes

We offer three performance classes based on the Storage Performance Classes.

Performance ClassOperations per Second (r/w)Bandwidth MB/s (r/w)
Filesystem Standard1000 / 1000100 / 100
Filesystem High3000 / 3000200 / 200
Filesystem Insane7500 / 7500300 / 300

Billing

You only pay for the storage used, billed per minute.

Under the hood of NFS we use a copy-on-write (COW) filesystem. Due to this, the typical df command might not give you the actual filesystem usage for which billing is performed. This also means using features like cp --reflink will not directly copy data, because both files point to the same file on disk due to the nature of copy-on-write. Upon starting to change one of the files, you will start seeing an increase of space because the filesystem below will save the diff. Most tools just see the files in the filesystem tree with their file size.

Therefore you might see a difference between a df when mounting the gridFs and the actual usage in the Cloud Panel that is billed.

Versions

gridFs is based on the Network File System (NFS) protocol. We support NFS4, NFS4.1 and NFS4.2.

We recommend using NFS4.2 because it has new features like reflink.

We do not support NFS3 meaning Windows clients are not supported by default.

NFS4.2 Feature - NFS_CLONE

NFS 4.2 introduced a new operation called NFS_CLONE. This allows the client to ask the server to use the --reflink option. The --reflink option allows the user to utilize the copy-on-write filesystem capabilities to instantly create a copy of files. cp is one of the tools which allows this flag. cp --relink only works with NFS 4.2.

Mounting

For mounting NFS you need to install the nfs-common package on your operating system. You can either mount your NFS via /etc/fstab or directly with the mount command:

/etc/fstab:

[IPV6_ADDRESS]:/    /nfs    nfs    defaults,noatime,nodiratime,async    0 0

mount command:

mount [IPV6_ADDRESS]:/ /mnt

By default the gridFs can be mounted from the following IP ranges:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • fcfc::/16 (PaaS Security Zone)

Service Access

Once your gridFs service has been successfully created you can have the possibility to view the Service Access section within the detailed view for your service.

Parameters

We offer the following parameters:

parameterDefault
allowed_ip_ranges192.168.178.1/24
root_squashfalse
anon_uid65534
anon_gid65534

You can change the parameters with the following payload:

{
  "parameters": {
    "root_squash": "true",
    "allowed_ip_ranges": "192.168.178.1/24",
    "anon_uid": "1000",
    "anon_gid": "1000",
  }
}

Root Squash

The parameter root_squash: true will enable the NFS option root_squash. This will change all files created by the user root with the UID/GID 0 to UID/GID anonymous. The parameters anon_uid and anon_gid can be changed to your prefered anonymous UID/GID.

If you choose to use root_squash: false the NFS option no_root_squash is used. This will let you create files from the user root. This removes the mapping from user root to anonymous in the root_squash option. The UID/GID will be 0.

Allowed IP Ranges

The allowed_ip_ranges is a field where you can enter the allowed CIDR block or IP address in CIDR notation:

  • CIDR range: 192.168.178.1/24
  • Single Server: 192.168.178.25/32