简短的回答是明确的“不”。其他人在上面已经说过了。
那些说“是”的人没有回答这个问题,而是一个不同的问题。如果 EFS 只是一个 NFS 服务,那么它不是最初所说的问题的答案。 EFS 是否“在所有区域推出”都没有关系,因为您可以完全创建自己的 NFS 实例,并让多台服务器挂载 NFS。这并不是什么新鲜事,我们在 1992 年就已经这样做了。 SMB 和 sshfs,所有这些都只是将驱动器挂载为远程文件系统的方法。
那些说“你为什么要这样做”或“一切都会以眼泪收场”的人是错误的。几十年来,我们一直在将多个磁盘安装到多个服务器。如果您曾经使用过 SAN(存储区域网络),那么通常通过 FibreChannel SAN 将同一设备连接到多个节点的能力是完全正常的。因此,任何在十年前在虚拟化/云服务器普及之前运行过服务器的人都会对此有所了解。
很快出现了集群文件系统,其中两个系统可以读取和写入完全相同的卷。我相信这已经从历史上的 VAX 和 Alpha VMS 时代开始了。集群文件系统使用分布式互斥方案能够直接操作块。
将同一个磁盘挂载到多个节点的优势在于速度和减少单点故障。
现在,集群文件系统并没有在“消费者”托管业务中大受欢迎,这是事实。而且它们很复杂并且有一些陷阱。但是您甚至不需要集群文件系统来使用连接到多个计算节点的磁盘。如果你想要一个只读驱动器怎么办?您甚至不需要集群文件系统!您只需将与只读 (ro) 相同的物理设备放入您的 /etc/fstab 中。然后您安装到 2 或 10 个 EC2 服务器,所有这些服务器都可以直接从该设备读取!
在构建快速扩展的农场时,云服务器领域有一个明显的用例。您可以准备好您的主系统磁盘,并为每台服务器使用一个非常小的启动和配置磁盘。你甚至可以让它们全部从同一个启动盘启动,在读写模式下重新挂载 / 之前,你可以插入一个 3 层的 Union-FS:
- 主只读系统磁盘,带有引导、内核和用户空间
安装
- 一个配置文件系统,只有几个文件
(主要在 /etc 中)特定于单个服务器。这
磁盘可以被另一台服务器写出以准备启动
新实例。这里的示例文件将是 /etc/hostname 并且只是
每个节点需要保持不同的配置文件非常少。
- 您可能根本不需要的可写磁盘可能只是
/tmp 作为内存文件系统。
所以,是的,这个问题很有意义,不幸的是,答案(仍然)是“否”。并且没有 NFS 并不能很好地替代该用例,因为它会惩罚系统磁盘中的所有读取活动。但是,从 NFS 系统磁盘进行网络引导是实现上述用例的唯一替代方法。不幸的是,由于设置网络启动代理和 NFS 比访问同一个物理块设备要复杂得多。
PS:我本来想提交一个较短的版本作为 cmets,但我不能因为愚蠢的 51 学分门槛,所以我必须用同样的基本“否”写一个答案,但要包括我的观点为什么这是一个没有得到应有答案的相关问题。
PPS:我刚刚在 StackExchange 上发现有人提到 iSCSI。 iSCSI 有点像 NFS,但在逻辑上像 FibreChannel SAN。您可以访问(和共享)物理块设备。这将使启动磁盘共享更容易,因此您无需设置可能很挑剔的 bootd 网络启动。但是在 AWS 上,也没有可用的网络启动。