我们正在部署一个具有 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 表现更好
一般提示:
- 阅读有关所有 nfs 挂载选项(如 fsc 、 rsize 、 wsize 、进行故障转移、部署)的手册页计算机断层扫描数据库
- 如果使用保险丝客户端(大文件),使用备份卷文件服务器
- 进行一些性能调整这已经已经在这里问过了
在另一个线程,其中规定
从我的经验来看,性能差异很大。将我的 Web 应用程序从 FUSE 切换到 NFS 后,加载时间从 1.5 秒减少到 4 秒以下。此外,我今天尝试提取一些档案,在 FUSE 上似乎需要 4-5 倍的时间
基准例子在这里
答案2
集群的每个节点都必须使用自己的空间,而不能共享文件。GlusterFS 应该用作弹性存储,以消除共享磁盘的大小限制。Percona XtraDB Cluster 可以扩展性能,但不能扩展数据库大小,因此如果您计划拥有庞大的数据库(大小),则可以使用 GlusterFS,否则我只会使用本地存储,SSD 本地存储甚至更好。