Percona XtraDB 集群与 GlusterFS

Percona XtraDB 集群与 GlusterFS

我们正在部署一个具有 4 个节点的 GlusterFS 集群,并且我们希望在其上部署具有 4 个节点的 Percona XtraDB 集群,每个节点都会有一个来自 GlusterFS 的挂载文件夹,每个挂载都将是一个单独的文件夹,而不是共享的。

GlusterFS 的总大小约为 6TB - 8TB,我们计划在接下来的两个月部署中将其扩展到 20TB。该卷将有 4 个 NFS 导出,每个 Percona XtraDB 集群节点一个。

这些是我们目前的计划,我需要的是建议是否推荐这种设置,或者更好的是,您对这样的设置有什么建议?GlusterFS 集群将会运行,因为我们有其他服务器将共享一些文件(这不是它的主要目的,这些文件很少被访问,但这些文件需要放在该集群上)。我们需要一个数据库集群来实现高可用性和负载平衡,我们正在考虑使用主 glusterfs 作为数据库存储。我们知道在所有节点上使用相同的数据库文件不是一个好主意,这就是我们将有 4 个 NFS 挂载的原因,每个数据库节点一个。

我希望您能理解我的观点,并能针对此需求提供一些好的建议。顺便说一句,所有服务器都将是最新版本的 Ubuntu Server。

提前致谢。

答案1

我已经这样做了,就是这样

但 ...

... 由于 XtraDB ON TOP of gluster 的结果好坏参半,

最后,这个东西被转移到一个带有 ProxySQL 的三头 Percona 集群中,你的如果没有“高延迟”的 glusterFS 层,数据库速度将会快得多 (至少在具有“实时响应”的生产数据库场景中,如果您可以等到下周或下个月通过邮件发送结果,那么应该没问题)


→ 在两种场景(分散卷、集群 XtraDB)中使用非偶数,如 3 5 7 等等(或在 gluster 中使用仲裁卷)以防止 Quorum/SplitBrain 问题

→ 在 gluster 中部署 bitrot 功能

*→ 尽可能使用 ECC 内存,建议最小尺寸公式:

{ 1GB(daemon/cache) + ( 1GB RAM * TBytes storage ) }

→ 还要记住,为了在特定场景中提高性能以及使用过多锁定(数据库使用)时,NFS 挂载可能比原生 gluster mount 表现更好

一般提示:

另一个线程,其中规定

从我的经验来看,性能差异很大。将我的 Web 应用程序从 FUSE 切换到 NFS 后,加载时间从 1.5 秒减少到 4 秒以下。此外,我今天尝试提取一些档案,在 FUSE 上似乎需要 4-5 倍的时间

基准例子在这里

基准1 基准2

答案2

集群的每个节点都必须使用自己的空间,而不能共享文件。GlusterFS 应该用作弹性存储,以消除共享磁盘的大小限制。Percona XtraDB Cluster 可以扩展性能,但不能扩展数据库大小,因此如果您计划拥有庞大的数据库(大小),则可以使用 GlusterFS,否则我只会使用本地存储,SSD 本地存储甚至更好。

相关内容