0

We are planning to use some of the features that ZFS has, such as:

  1. Snapshots.
  2. Hierarchy of file systems (each user will have his own).
  3. Custom user properties.
  4. Clones.

Is it possible to share all this functionality via NFS to Linux client machines?

UPD: So if it is not possible via NFS, what NFS-like protocol should we use?

Illarion Kovalchuk
  • 443
  • 1
  • 3
  • 11
  • You can certainly share the file system(s) over NFS, including any snapshot(s). But Linux doesn't play so well with ZFS to begin with, and I don't know of any way to manage any of these features remotely. – Chris S Nov 02 '10 at 13:04
  • 1
    Perhaps do you mean don't play so well with NFS, don't you ? – jlliagre Nov 02 '10 at 13:29

2 Answers2

2

I have read Gnu/Linux NFS implementation, especially version 4, is not that reliable but anyway:

  1. Snapshots: They are accessible through the .nfs directory.

  2. Clones: As long as the sharenfs property is inherited, they are automatically visible to clients.

  3. Hierarchy of file systems (each user will have his own): Yes, although this is not that much specific to ZFS.

  4. Custom user properties: Like other zfs properties, they aren't accessible through NFS.

Note that most administrative tasks (file system/clones creation/deletion/configuration) must be done on the server side but snapshot management (creation/renaming/removal) might be delegated to remote users through the .zfs directory if they are granted the required privileges with the "zfs allow" command.

jlliagre
  • 8,861
  • 18
  • 36
  • So if it is not possible via NFS, what NFS-like protocol should we use? – Illarion Kovalchuk Nov 02 '10 at 13:39
  • 1
    What feature(s) are you referring to ? – jlliagre Nov 02 '10 at 15:36
  • Users should be able to create snapshots of their fs, to set/get custom properties on individual files, folders and to access clones made from snapshots, if needed – Illarion Kovalchuk Nov 03 '10 at 09:26
  • NFS Users can create snapshots of their file systems when granted the required privilege and they can also access clones. ZFS custom properties apply to file systems, not files or directories. What kind of properties are you thinking of ? – jlliagre Nov 03 '10 at 10:40
2

You can create snapshots through NFS by creating directories in the .zfs directory of each dataset. That special directory can be hidden or not (but still accessible).

ZFS is a hierarchical filesystem, just create individual datasets for each user within other datasets (e.g department/user1 department/user2 etc). They will inherit the properties or you can overwrite those too.

With clones you can save some disk space. If all your users need a initial set of files in their directories, put them in a dataset, snapshot it and clone for each user. You won't be able to delete the snapshot while there are clones depending on it.

Custom dataset properties and clones must be managed from the server side. As far as I know, there are proprietary plug-ins that export ZFS specifics to VMware and the like. There is not a distributed FS protocol that will allow that though. You could create a web front-end and let users manipulate them.

gtirloni
  • 5,746
  • 3
  • 25
  • 52