The File Server Remote VSS Protocol (FSRVP) was recently defined by Microsoft. It allows for SMB clients to remotely request the creation, exposure and destruction of share snapshots.
Aside from support in Windows Server 2012, preliminary FSRVP server support has also been implemented for Samba.
FSRVP client support in cifs.ko would allow for Btrfs style snapshot behaviour on SMB filesystem mount-points, e.g:
cifs filesystem snapshot create /mnt/win2k12share /mnt/win2k12share/my_snapshot
- user-space cifs binary issues BTRFSIOCSNAP_CREATE style ioctl to kernel
- kernel connects to the FssagentRpc SMB named pipe
- kernel dispatches FSRVP requests to create and expose a snapshot of win2k12_share
- kernel mounts the newly exposed snapshot share under /mnt/win2k12share/mysnapshot
- user-space stores corresponding shadow-copy GUIDs
cifs filesystem snapshot delete /mnt/win2k12share/mysnapshot
- user-space retrieves corresponding shadow-copy GUIDs for my_snapshot
- kernel unmounts my_snapshot
- kernel dispatches FSRVP requests to destroy the snapshot
- user-space removes the corresponding shadow-copy GUIDs
Note: There are a bunch of underscores in the above text that have been unintentionally marked-up, see source.
Looking for mad skills in:
cifs smb snapshot snapper
This project is part of:
Hack Week 10
This project is one of its kind!