假设我们有 2 台服务器,一台位于美国西部,另一台位于美国东部。是否可以将它们合并为一台服务器?
*单个服务器如:共享 ssh,我可以从同一个 ssh 连接和共享存储控制 2 个服务器,我可以从一个 ftp 客户端访问它们两个。(例如全局 /home 目录)
研究结果只给我留下了:ssh:如何设置受信任的 ssh。对于共享空间:仅限于本地网络,这对我没什么帮助。
那么问题是:这有可能吗?或者我还是最好保持现状。
答案1
免责声明:我不是分布式文件系统或操作系统方面的专家,也从未使用过它们。我从未真正觉得我需要它们中的任何一个,也不想承担维护它们带来的额外开销。但我读过关于它们的文章。所以这是我的一点看法。
我可以通过同一个 ssh 连接控制 2 台服务器
从技术上讲,根据定义,需要有两个连接。SSH 不是多播协议。但是,如果您愿意切换到分布式操作系统(例如,地狱)。您可以通过 SSH 连接到其中一台机器的 NIC,并使用操作系统的同步协议将一台机器上所做的更改传播到另一台机器,从而实现您的目标。
现在,如果这看起来太多了(确实可能),你能设置共享目录(nfs
例如,使用 。samba
出于安全原因,我不建议这样做)。共享 SSH 实际上没有多大意义,尽管您可以使用非标准 SSH 客户端,该客户端一次将 SSH 命令分派给多个客户端,其中有几个易于谷歌搜索的选项(multissh
包括好多其它的)。
搜索字符串“通过 ssh 同时控制多台机器”让我一堆有用的信息在 duckduckgo 上。
或者我还是最好保持它们原样。
上面提到的多 ssh 工具不会造成任何性能损失,并且不需要对服务器进行任何特殊配置,所以如果你想开始使用其中一种工具,没有理由不这样做,但是
网络文件系统会降低您的速度。文件系统的性能在很大程度上取决于 I/O 延迟,而最高的 I/O 延迟来自网络。目前,当其中一台服务器想要检索文件时,它只需要通过同一数据中心(即同一栋大楼内)内的高速连接访问共享驱动器。如果您将文件系统分布在两台机器上,那么它们的同步将始终需要数据包通过不可靠的链路穿越整个国家。即使假设连接完美,并且假设数据包没有处理延迟,每次也会多花几毫秒(由于光速的物理限制)。通常,如果您要使用文件共享或分布式文件系统,您希望将其限制在同一栋大楼内的机器上。否则,延迟将成为一个非常烦人的问题。
分布式操作系统可能是也可能不是一个好主意。首先,据我所知,它们都没有被广泛使用或被广泛用作软件支持平台,因此您需要接受一个事实,即您想要运行的任何程序都可能无法在您选择的操作系统上运行。对于科学计算应用程序 - 如果您希望进行大量的数字运算,并将其分解为一堆独立的、资源密集型的子任务,而这些子任务不需要进行太多通信 - 分布式操作系统是一个好主意。但是,同样,您也可以使用同一数据中心的机器来执行此操作。或者只需使用一台性能强两倍的机器。