无复制的分布式文件系统(例如 glusterfs)

无复制的分布式文件系统(例如 glusterfs)

我有一台控制器服务器和两台 24 SAS 文件服务器阵列。每台文件服务器阵列都设置为一个 ZFS 池,其中有 4 个 RAIDZ2 vdev,每个 vdev 有 6 个驱动器。

最终,我希望能够将控制器服务器用作两个文件服务器的单个挂载点。主要想法是,我的最终用户只需访问一个控制器服务器和一个挂载点,即可跨两个服务器的组合存储容量访问/备份他们的数据。我曾考虑为此使用 glusterfs,但到目前为止,我能够找到的信息似乎是用于生成冗余存储池。在此应用程序中,gluster 被用作分布式镜像 RAID1,这并不真正符合我的需求,因为它会创建另一个不需要的冗余级别。

您建议我如何从托管在不同计算机上的两个 ZFS 池创建非冗余分布式文件系统?有没有办法使用 gluster 来实现这一点,或者是否有其他更适合实现这一点的 NFS?我也考虑过 samba,但我不确定它是否足够安全。我真的很喜欢在控制器上公开托管 ssh 并进行严格的 2FA 身份验证的前景。

答案1

您需要选择分布式卷还是条带化卷。

分布式卷很简单,它会以尽可能平衡的方式散列写入每个节点的所有文件。它不会对文件本身做任何处理,您会在 ZFS“砖块”上看到完整的文件。条带卷会将您的文件分割并将它们作为块分发到节点之间。如果您的内容几乎全部是大型文件(例如视频、磁盘映像和备份),这是一种理想的配置。

到目前为止,您几乎已经了解了,因为创建这种分布式卷的命令就像您所说的那样简单:

gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

当创建条带卷时:

gluster volume create test-volume stripe 4 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

但是,四个条带在抓取文件时会造成很大的开销。只有在处理真正庞大的文件时才会这样做。为了找到一个好的折衷方案,同时仍然适用于大型磁盘映像等,我建议使用分布式条带卷:

gluster volume create test-volume stripe 2 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

该卷将跨两个节点进行条带化,并将条带集分布到另外两个节点。

相关内容