我有一个分布在 3 台服务器上的 Web 应用程序。这 3 台服务器需要共享存储来访问文件。由于 iSCSI 只是一种协议,而不是文件系统,因此它不会实现任何锁定文件的功能;因此,如果我按原样连接它,我就会销毁所有数据。
根据我的研究,我需要这些 LUN 上有一个实际的文件系统才能按我打算的方式运行。
那该如何工作?如何为 LUN 实现文件系统?
使用的操作系统:Ubuntu 16.* 或 18.*
答案1
您需要某种集群文件系统或分布式锁管理器,以避免并发写入对您的文件系统造成元数据损坏。
StarWind 论坛上对这个问题进行了很好的总结。
https://forums.starwindsoftware.com/viewtopic.php?f=5&t=1392
答案2
一般来说,您需要一个集群才能在多个系统之间共享存储(除非您希望其中一个系统充当文件服务器)。
我其实不知道任何事物关于在 Ubuntu 上构建集群,但这看起来很有希望:http://manpages.ubuntu.com/manpages/cosmic/man7/ocfs2.7.html。
答案3
因此,经过一番研究,我想出了一些解决方案,这些解决方案对于那些想要建立远程存储或集群的人来说很有趣。
重新考虑您的网络和需求。我遇到的一件事是设置具有集群感知文件系统的 iscsi 不是一件容易的事。此外,GFS 和 OCFS2 没有可供公众使用的详尽的故障排除指南。对于 OCFS2,您需要是 Oracle 的客户并拥有一个有效的支持帐户。GFS2 也是如此。如果您是 Centos 用户,那么您只能使用在线教程,并且无法获得支持。
无论如何,这很可能超出了您的预算。考虑将 NFS 用于业余爱好-中小型企业。它设置起来更容易,网上有大量文档。
如果您确实需要在多台机器之间共享 iscsi LUN,那么有 3 种解决方案可供选择。Oracles OCFS2、Red Hat GFS2、VMFS。这 3 种都是集群感知文件系统。OCFS2 设置起来更简单,但需要您访问不免费的 Oracle 支持,GFS2 不像 OCFS2 那么简单,因为您必须手动设置它的部分内容,但它也使其更具可定制性。ad VMFS 非常适合与您的 ESXI 服务器一起使用,以将您的 VM 机器保留在那里。
我希望这能帮助一些用户在将来决定您的网络和存储的实际需求时。我个人选择 NFS 作为存储,并使用专用 iscsi 到 ESXI 服务器进行映像引导。