Pattern - SMB Filestore
The SMB protocol, as supported in windows and implemented in Windows Server and Samba products, is a TCP-based protocol for mounting filestores and remote printers.
Features
- TCP protocol for connecting to remote filestores.
- Versions of the protocol for many versions of windows.
- Implementations built in to windows
- Some Linux support
Advantages
- Works well with Windows.
- Integrates with Windows NT authentication (a derivative of Kerberos)
- TCP-based protocols can work over long-haul links
- Endpoints can detect loss of the remote server (especially if clients set SO-KEEPALIVE when opening the sockets)
- Windows 2000 and later has support for offline filesystems, which can cache part of a filesystem when offline, resynchronising when online.
- Disks can be mounted per-user, by issuing NET USE commands.
- Some failover is possible.
Disadvantages
- The Windows Explorer GUI handless missing/slow SMB servers very badly; the whole GUI can lock up. It is not good at working with unreliable or long-haul servers.
- Failure handling is mostly built in to the OS; it is very hard to add application-level policy.
- Security of offline files may be weak, laptops need to encrypt this part of their disk.
- As Active Directory is an extension of Kerberos, it may not work with standard Kerberos clients and servers.
- As a logged in user needs to mount the disks, it is hard for machines to mount disks until a user is logged in.
- The SMB protocol is continually changing; Samba follows but there may be surprises.
SmartFrog support
It is trivial to implement a component that executes a NET USE command; this can mount a disk for that specific user.