In UNIX systems, mounting filesystems can be done using either hard or soft options, each with distinct behaviors that impact system reliability and performance. The fundamental difference lies in how they handle server failures or network disruptions.
Hard mounts provide stronger consistency guarantees:
# Example hard mount in /etc/fstab
server:/export/data /mnt/data nfs rw,hard,intr 0 0
- Advantages:
- Guarantees data integrity by retrying indefinitely
- Better for critical operations where data consistency is paramount
- Preferred for database storage or transactional systems - Disadvantages:
- Can cause processes to hang indefinitely during network partitions
- May require manual intervention to recover frozen processes
Soft mounts offer more flexibility but weaker guarantees:
# Example soft mount configuration
mount -t nfs -o soft,timeo=30,retrans=3 server:/home /mnt/home
- Advantages:
- Prevents indefinite hangs by failing after retries
- Better for interactive systems where responsiveness is critical
- Suitable for non-critical data like user home directories - Disadvantages:
- Potential data corruption if writes fail during timeout
- Higher risk of silent failures going unnoticed
Benchmarking shows significant differences:
# Simple IOPS test comparison
dd if=/dev/zero of=/mnt/hard/testfile bs=1M count=1000
dd if=/dev/zero of=/mnt/soft/testfile bs=1M count=1000
Hard mounts typically show 15-20% lower throughput during network instability but more consistent performance under normal conditions.
- Use hard mounts for:
- Database filesystems (Oracle, PostgreSQL)
- Financial transaction systems
- Any application where data integrity > availability - Consider soft mounts for:
- User home directories
- Development environments
- Read-heavy workloads where stale data is acceptable
For hung NFS processes on hard mounts:
# List processes waiting on NFS
lsof | grep -i nfs | grep -i DEL
# Alternative using /proc
find /proc/*/fd -ls | grep -i nfs
In UNIX systems, mounting filesystems can be done using either hard
or soft
options, each with distinct behaviors:
# Hard mount example
mount -o hard server:/share /mnt/nfs
# Soft mount example
mount -o soft,timeo=30 server:/share /mnt/nfs
Advantages:
- Guarantees data consistency - retries indefinitely until successful
- Better for critical operations where data integrity is paramount
- Default behavior for many enterprise storage systems
Disadvantages:
- Can cause processes to hang indefinitely during network outages
- May lead to system unresponsiveness if server becomes unavailable
- Not suitable for unreliable networks
Advantages:
- Fails after specified retries (configurable via
timeo
parameter) - Prevents application hangs during temporary network issues
- Better for non-critical data or read-only operations
Disadvantages:
- Potential data corruption if writes fail silently
- Not recommended for database operations
- May require additional error handling in applications
Benchmarking shows significant differences in timeout behavior:
# Measure timeout impact
time dd if=/mnt/nfs/largefile of=/dev/null bs=1M
Hard mounts typically show more consistent throughput but can exhibit severe latency spikes during network issues.
For mission-critical systems:
mount -o hard,intr,noatime,nodev,nosuid server:/critical /mnt/important
For temporary or development environments:
mount -o soft,timeo=60,retrans=3 server:/dev /mnt/temp
- Use hard mounts for financial systems, databases, and transaction logs
- Consider soft mounts for web content, media files, and temporary data
- Always monitor NFS stats with
nfsstat -m
- Combine with HA solutions for critical mounts
When experiencing mount issues:
# Check current mounts
mount | grep nfs
# View NFS statistics
cat /proc/fs/nfsfs/servers