This question may vary between distros but, in general, what are the advantages/disadvantages of using a hard or soft mount in the UNIX world?
Are there certain situations where one is more beneficial or are the uses fairly universal?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
A hard mount is generally used for block resources like a local disk or SAN. A soft mount is usually used for network file protocols like NFS or CIFS.
The advantage of a soft mount is that if your NFS server is unavailable, the kernel will time out the I/O operation after a pre-configured period of time. The disadvantage is that if your NFS driver caches data and the soft mount times out, your application may not know which writes to the NFS volumes were actually committed to disk.
A hard mount using some kind of network file system (nfs or fuse) can (sometimes) block forever while trying to re-establish a broken connection. This means, every process trying to access that mount goes into disk sleep (D) until the device is available again or the system is rebooted.
Disk sleep can not be interrupted or killed. Its like the zombie of zombie processes.
In short, do not use hard mounts for network file systems, ever. You want the file system to fail (immediately, to processes using syscalls) if I/O is not possible. Otherwise, the memory that they claim may as well be leaked if the FS fails.
soft is only used by people who don't understand the princip of nfs. soft/hard depends on the usage of the filesystem. for mission critical application use always hard mounts to prevent file corruption (this is the reason why it is default for most systems). for ro filesystem it is safe to use soft and therfor preferred. by the way nfsv4 no longer support soft....