本地挂载远程分区?

本地挂载远程分区?

我有一个 Web 服务器,我想将 Web 应用程序的一些静态文件移到远程服务器,但仍可访问它们。

有没有办法让 (服务器 A) 挂载 (服务器 B) 上的文件夹,就像它是本地驱动器一样?或者只是挂载分区?基本上,这样我的 Web 应用就可以通过 /mount/remotefolder 之类的方式写入远程驱动器?

两台服务器都运行 CentOS,但位于两个地理位置不同的位置。

答案1

sshfs就是你要找的。 http://fuse.sourceforge.net/sshfs.html -- 您甚至可以使用fstab条目在启动时自动挂载它,或者将其设置为不挂载,但之后您可以直接mount /pre/defined/mount/point挂载它。 sshfs可能会很慢,但绝对安全。它需要fuse处于活动状态,要么作为内核模块/编译到内核中,要么作为用户空间程序。

我的中有以下几行.bashrc

alias xxr-sfs="sshfs xxr:/var/www/localhost/htdocs ~/xxr"

并在我的文件xxr中定义:~/.ssh/config

Host xxr
HostName xxr
user mark

(显然,为了保护我的隐私,上述内容已被重新命名)

然后,如果我想安装它,我只需输入xxr-sfsto mount 它。

答案2

我认为,对你的问题的简短回答是 NFS。或者,对于更复杂的设置,你可以让两个服务器共享一个 DRBD 卷。

但是,我想知道 HTTP 作为文件访问协议有什么问题?服务器 B 不能拥有自己的 Web 服务器并为自己提供文件吗?拆分您的 Web 应用程序,以便处理文件的部分驻留在服务器 B 上?

更新:

我没有仔细阅读 OP。如果“地理位置不同”意味着延迟时间较长,则 drbd 和 nfs 可能都不是最佳选择,具体取决于具体用例。如果两个位置之间的延迟时间超过 50 毫秒,我会尝试使用不同的 Web 服务器,让它们都直接与最终用户通信(如果可能)。

相关内容