我可以在 glusterfs 上运行 mysqld 吗?

我可以在 glusterfs 上运行 mysqld 吗?

最近在玩glusterfs。

我想尝试在 glusterfs 上运行 mysqld,方式与运行DRBD 上的 MySQL

我熟悉 MySQL 复制以及使用该方法代替这种方法的优势,并且我也了解 MongoDB 和其他 NoSQL 解决方案。

然而,如果我可以保留 MySQL 原样并复制底层文件系统,那么对于我即将开展的几个特定项目来说,这将是一个简单的解决方案。

这是可能的吗?如果可以的话我可以在哪里找到方法?

答案1

由于很长时间没有答复,我通过反复试验才找到答案。

答案是:是的,我可以在 glusterfs 上运行 mysqld。

我在 Ubuntu 上进行了设置,简要步骤如下:

真正的问题在于 MySQL 如何处理锁。

但是,您可以将所有这些交给 glusterfs 来处理,以便许多 mysqld 进程(在不同的节点上运行)可以访问 /mnt/glusterfs 上的相同数据库文件。你需要仔细阅读

答案2

理论上可以。但在实践中,尤其是考虑到性能,Gluster 手册建议不要将其用于复制 DB 文件或其他细粒度 I/O 系统。

在这里查看 Gluster 官方概述:

http://docs.gluster.org/en/latest/Install-Guide/Overview/#is-gluster-going-to-work-for-me-and-what-i-need-it-to-do

Gluster 适合我吗?我需要它做什么?

... 另一方面,在组合中添加足够多的 Gluster 服务器后,由于该技术的横向扩展特性,一些人发现我们的性能优于其他解决方案 - Gluster 不支持所谓的“结构化数据”,即实时 SQL 数据库。当然,使用 Gluster 备份和恢复数据库是没问题的 - Gluster 传统上在使用至少 16KB 的文件大小时效果更好(最佳点在 128KB 左右)。

再次,如果您想要 MySQL 复制,我建议:

  1. 使用传统的 MySQL 主/从复制 https://dev.mysql.com/doc/refman/5.7/en/replication.html

  2. 使用 Codership Galera 集群,该集群现已在所有版本的 MySQL 中实现,例如 Oracle MySQL 或 MariaDB

答案3

在 K8 集群上尝试了此操作。MySQL 在容器内运行,GlusterFS 直接安装在节点上(非容器化)。MySQL 容器具有亲和性设置,始终在与 GFS 相同的节点上运行,使用 K8 的原生 GFS 卷驱动程序安装卷。

即使启用了 NGINX FastCGI (PHP-FPM) 缓存,WordPress 网站仍会遇到随机高延迟。切换到 MySQL 容器的 hostPath 卷后,延迟问题便消失了。

答案4

我不知道您为什么要从不同的 MySQL 服务器进程访问相同的数据库文件,但如果原因是性能,您应该看看 Galera。

http://www.codership.com/content/using-galera-cluster

集成在 Maria DB 和 Percona XTRA DB 集群中

相关内容