![结合两个云服务器存储来为应用程序(apache)提供通用存储](https://linux22.com/image/745032/%E7%BB%93%E5%90%88%E4%B8%A4%E4%B8%AA%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AD%98%E5%82%A8%E6%9D%A5%E4%B8%BA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%88apache%EF%BC%89%E6%8F%90%E4%BE%9B%E9%80%9A%E7%94%A8%E5%AD%98%E5%82%A8.png)
我的团队需要 2 个具有通用存储的应用服务器。
我们当前的云提供商没有 SAN;因此我们希望利用每个应用服务器的本地存储。2 个应用服务器分别配备了 200GB 的 NVME 存储。我们需要大约 50GB 的存储空间用于操作系统。
如何利用剩余空间,实现两台服务器的CMS文件共用存储/单一文件夹?
如果有什么不清楚的地方请告诉我,我会尽量说得更准确。
答案1
这个问题很难完全回答。这完全取决于你的目标和期望。
以下是 4 种潜在的解决方案,它们变得越来越复杂,并且需要更多定期关注:
快捷又粗糙的解决方案是简单地在 cron 作业上运行 rsync(每分钟?),并将文件复制到服务器并从服务器复制文件。这有点危险,因为您最终可能会在两个地方修改文件,最终陷入混乱。
更复杂的是,您可以通过设置一个 bash 脚本来inotifywait
等待文件/目录被修改,然后在发生修改后立即进行 rsync,从而帮助减少两个服务器都可能修改文件的潜在时间。
更复杂的是,您可以使用文件系统框架,例如“glusterfs”,它可以在大型环境中复制文件。此选项不适合周末战士。由于轻微的配置错误,它可能会失败(我经历过),并带来无穷无尽的麻烦。当正确配置和设置时,它可以工作得非常好。
最后,您可以走极端,使用类似 的方法在服务器之间进行块级复制drbd
,这(在大多数情况下)是极端的路线。在我自己的数据中心,我已设置了复制的块存储设备,并在 HA 虚拟环境中使用 NFS 取得了巨大成功。存储阵列可能随时死机,而运行在其上的虚拟机永远不会出现超过几毫秒的延迟。