partition – ln -s vs mount –bind

使用ln -s或mount -bind之间有什么实际区别吗?

我想将一些文件夹移动到另一个分区,而不改变它们的守护进程设置,并想知道我应该采取什么方法.

我更喜欢ln -s,因为它需要最少的设置(没有/ etc / fstab修改),但也许有一个原因,它不常见?

解决方法

当然好.如果你执行ln -s你创建一个符号链接,这是一个指向某个文件系统对象的 inode,这就是为什么符号链接可以遍历文件系统而硬链接不能:硬链接没有自己的inode.

如果使用–bind挂载文件系统,则为设备或文件系统创建第二个挂载点.

如果您将符号链接设想为重定向,那么设想 – 绑定已挂载的文件系统作为创建另一个数据网关.

符号链接和绑定坐骑是一个完全不同的球赛.

–bind mount对我来说似乎更健壮,它可能比使用符号链接快一点.另一方面,使用符号链接没有严重的缺点,因为性能命中率很小(如果它存在的话).

编辑:我一直在考虑这个问题,而且性能影响可能会比我原先想象的要大一些.如果您的应用程序读取了许多不同的文件,那么每个打开的新文件都需要额外的读取.一些研究here表明我的假设是正确的,所以如果你在那里运行IO重型应用程序,请考虑使用–bind选项安装在符号链接解决方案之上.

它不常见的原因可能是符号链接在ls中可见,而绑定挂载仅在查看/ proc / mounts或/ etc / mtab时可见(这是mount命令的作用,如果它没有参数执行).除此之外,我认为没有任何问题.不过,如果有,我会感兴趣.

另外:ln -s的另一个问题是,对于某些应用程序,当路径被取消引用时,如果它“期望”某些项目位于特定位置,则可能导致应用程序无效.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...