gpt4 book ai didi

docker - 使用 glusterfs 在 docker swarm 中持久化数据

转载 作者:IT老高 更新时间:2023-10-28 21:43:59 25 4
gpt4 key购买 nike

我有一个带有很多容器的 docker swarm,但特别是:

  • mysql
  • mongodb
  • 流利
  • Elasticsearch

我的问题是,当一个节点发生故障时,管理器会丢弃当前容器并在另一个节点中创建一个新容器。所以每次即使使用 docker 卷,我也会丢失存储在该特定容器中的持久数据。

所以我将在我的集群上创建四个分布式 glusterfs 卷,并将它们作为 docker 卷安装到我的容器中。

这是解决我的问题的正确方法吗?

如果是,我应该为我的 glusterfs 卷使用什么类型的文件系统?

此方法是否存在性能问题?

最佳答案

GlusterFS 不是为所有容器解决此问题的正确方法,因为 Gluster 不支持“结构化数据”,如 GlusterFS Install Guide 中所述。 :

Gluster does not support so called “structured data”, meaning live, SQL databases. Of course, using Gluster to backup and restore the database would be fine - Gluster is traditionally better when using file sizes at of least 16KB (with a sweet spot around 128KB or so).

对此的一种解决方案是对数据库中的数据进行主从复制。MySQL 和 mongoDB 都支持这一点(如 herehere 所述),大多数常见的 DBMS 也是如此。

主从复制基本上是指数据库的 2 个或更多副本,其中一个是主副本,其余的将是从副本。所有的写操作都发生在主服务器上,所有的读操作都发生在从服务器上。任何写入主服务器的数据都将由主服务器复制到从服务器。一些 DBMS 还提供了一种方法来检查主服务器是否发生故障并在发生这种情况时选择新的主服务器,但我认为并非所有 DBMS 都这样做。

您也可以设置 Galera Cluster ,但据我所知,这只支持 MySQL。

我原以为您可以将 GlusterFS 用于 Fluentd 和 Elasticsearch,但我对其中任何一个都不熟悉,所以我不能肯定地说。我想这将取决于他们如何存储他们收集的任何数据(如果他们收集任何数据的话)。

关于docker - 使用 glusterfs 在 docker swarm 中持久化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48330969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com