UNIX 中硬挂载与软挂载的优缺点是什么?

Aar*_*n K 32 linux unix nfs mount

这个问题可能因发行版而异,但总的来说,在 UNIX 世界中使用硬安装或软安装的优点/缺点是什么?

是否在某些情况下更有益或用途相当普遍?

duf*_*703 24

硬安装通常用于块资源,如本地磁盘或 SAN。软挂载通常用于 NFS 或 CIFS 等网络文件协议。

软挂载的优点是,如果您的 NFS 服务器不可用,内核将在预配置的一段时间后超时 I/O 操作。缺点是如果您的 NFS 驱动程序缓存数据并且软安装超时,您的应用程序可能不知道对 NFS 卷的哪些写入实际上已提交到磁盘。


hay*_*lci 10

硬安装和“intr”(可中断)是一个很好的折衷方案(对于 2.6.25 之前的内核,请参阅 Ryan Horrisberger 的评论)。应用程序不会因为成功写入而被愚弄,但如果有东西堵塞了管道,您可以杀死它们。

  • intr 选项在 linux 上的最新版本中已弃用和忽略:http://linux.die.net/man/5/nfs:在内核 2.6.25 之后不推荐使用 intr / nointr 挂载选项。只有 SIGKILL 可以中断这些内核上挂起的 NFS 操作,如果指定,则忽略此挂载选项以提供与旧内核的向后兼容性。 (9认同)

Tim*_*ost 6

使用某种网络文件系统(nfs 或保险丝)的硬安装可能(有时)在尝试重新建立断开的连接时永远阻塞。这意味着,每个尝试访问该挂载的进程都会进入磁盘睡眠 (D),直到设备再次可用或系统重新启动。

磁盘睡眠不能被中断或杀死。它就像僵尸进程的僵尸。

简而言之,永远不要对网络文件系统使用硬挂载。如果 I/O 不可用,您希望文件系统失败(立即,使用系统调用的进程)。否则,如果 FS 失败,他们声称的内存也可能会泄漏。