在UNIX中,硬安装和软安装有哪些优缺点?


23

这个问题在发行版之间可能会有所不同,但是,总的来说,在UNIX世界中使用硬或软挂载有哪些优缺点?

在某些情况下,一种方法更有益吗?还是用途普遍?

Answers:


21

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

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


8

硬安装和“ intr”(可中断)是一个不错的折衷方案(对于2.6.25之前的内核,请参见Ryan Horrisberger的评论)。该应用程序不被误认为成功写入,但是如果某些东西阻塞了管道,您可以杀死它们。


8
intr选项已在Linux的最新版本中从以下版本中弃用并被忽略:linux.die.net/man/5/nfs:内核2.6.25之后不推荐使用intr / nointr挂载选项。只有SIGKILL可以中断这些内核上的挂起的NFS操作,如果指定,则忽略此安装选项以提供与旧内核的向后兼容性。
Ryan Horrisberger

5

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

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

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


我同意您关于硬安装的一般建议。但是,一些在NFS上部署VMWare的人建议使用硬盘安装。我不是100%地了解为什么要这么做,但是在实施之前需要仔细考虑和研究。
duffbeer703

鉴于硬盘安装会永远挂起,并且在过去的日子里,由于NFS硬盘安装,计算机有时会在重新启动时挂起,难道就不可能在硬盘安装上丢失数据吗?想象一下,您的NFS文件服务器出现故障,现在您的客户端无法访问它,它们完全混乱,您重新启动它们...它们潜在的写操作都消失了。早在软安装存在之前,硬安装就导致重新启动计算机的问题。如果您在客户端之前启动了文件服务器,则该客户端将挂起。有时,我们必须对它们重新通电。人们会犯错误。今天仍然是一个问题吗?
Mike S

@MikeS有许多这样的设置可以很愉快地运行。您永远不会知道在实验室或工厂中会遇到什么,在这些实验室或工厂中,已有数十年历史的机器仍在愉快地控制设备。对于从事现代工作的人们来说,这并不是什么大问题。但是,是的,硬安装可能会花费您的数据(软安装也可能会花费您的数据)-但是任何不使用电池后备缓存I / O的网络文件系统都有相同的潜在问题。硬安装会使自动检测和恢复变得更加糟糕。
蒂姆·波斯特

2

只有不了解nfs原理的人才能使用soft。软/硬取决于文件系统的用法。对于关键任务应用程序,请始终进行硬安装以防止文件损坏(这是大多数系统默认使用的原因)。对于ro文件系统,可以安全地使用soft和therfor作为首选。顺便说一下,nfsv4不再支持软...。


nfsv4不再支持软吗?根据手册页,“所有版本支持的选项这些选项可与任何NFS版本一起使用。soft / hard确定NFS请求超时后NFS客户端的恢复行为。如果未指定任何选项(或者如果未指定如果指定了soft选项,则将无限期地重试NFS请求。如果指定了soft选项,则在发送了重传重传后,NFS客户端将使NFS请求失败,从而导致NFS客户端向调用应用程序返回错误。参见linux.die.net/man/5/nfs
Mike S

我认为您在与自己矛盾……“软件仅由不了解的人使用...”和“对于ro文件系统,使用软件是安全的...”另请参见上面的@Tim Post帖子。
Mike S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.