我有在不同机器上运行 nginx 和 php fpm 的虚拟机,现在我使用一种非常愚蠢的手动同步目录的方法,因为集群不是那么大。但是,我周围有另一台服务器,我想将其用作共享存储设备。
到目前为止,我了解到我可以通过带有 ocfs2 文件系统的 iscsi 提供存储。困扰我的是初始设置需要提前指定每个节点,然后添加一个节点,我需要关闭 o2cb 以应用更改。
目标是通过 iscsi 为 nginx 和 php-fpm 节点提供共享存储(所以我不必进行复制),但是节点的数量可以根据集群的负载而增长。
想法1:也许我可以通过主机为我的虚拟机提供存储,所以只有主机直接处理ocfs2?这样节点是已知的。
OCFS2 是一个集群文件系统,它假定它用于复制的每个块设备都是相同的。它是为与 nginx 之类的用例非常不同的用例而设计的,在 nginx 中,数据的锁定和排序在参与节点之间极具凝聚力。
这需要大量开销,但对于运行多个对同一数据集进行修改的工作人员可能非常有益。这是我们希望在存储中尽量避免的模式,尽管有时会变得有用。这不是那个时候。
此实施将受益于中央 NFS 或 SMB 共享,而不是由 iSCSI 支持的集群 FS。这样,每个 Nginx 工作人员都可以访问相同的目录。他们最好不要尝试同时写入同一个文件,但如果您确实需要这样做,您可以确保您使用的是 NFS >v4.1 或 SMB >v3.x。两者都比以前的版本更好地处理锁定。
您可以简单地将您的第三台服务器设置为 NFS 服务器,这比在该用例中使用 OCFS2 更有意义。OCFS2 在快速 SAN 存储或实时复制的存储(如 DRBD)之上更好。