Nfs – How to hide shadow-copies in NFS shares

filesnfssambavss

I have a Ubuntu server with both samba and nfs-server.

The server does snapshotting for the exported directory
and the samba server uses the snapshots to emulate
shadow copies. ( vfs objects = shadow_copy )

When I export the same directory via NFS, the clients
see the snapshot directories. Thus, a NFS client gets
a messed-up directory listing containing lots of
entries like @GMT-2012.01.31-13.00.01

How can I hide those subdirectories from NFS clients?

Thanks!

Best Answer

It's more of a hindsight suggestion, but in general you should place snapshots of directory dir residing in a parentdir in parentdir or in subdirectory of parentdir, not in dir. So that you'd have directory hierarchy similar to this:

parentdir
├── dir
│   ├── Apps
│   └── Clients
└── snapshots
    ├── @GMT-2012.01.30-13.00.01
    │   ├── Apps
    │   └── Clients
    └── @GMT-2012.01.31-13.00.01
        ├── Apps
        └── Clients

shadow_copy2 from Samba does support setting where the directory with snapshots resides, so you can redirect it to parentdir/snapshots, like this:

[share]
...
path = parentdir/dir
vfs object = shadow_copy2
shadow:snapdir = parentdir/snapshot
shadow:basedir = parentdir/dir

or if you want to export Apps from the above example as a share, then you can use configuration like this:

[Apps]
...
path = parentdir/dir/Apps
vfs object = shadow_copy2
shadow:snapdir = parentdir/snapshot
shadow:basedir = parentdir/dir