1.2 MySQL集群管理架构

本节提供 MySQL Cluster Manager、其组件及其部署的架构概述。

MySQL Cluster Manager 是一个分布式客户端/服务器应用程序,由两个主要组件组成。MySQL Cluster Manager 代理是一组管理 NDB Cluster 节点的一个或多个代理进程,MySQL Cluster Manager 客户端为代理的管理功能提供命令行界面。

代理人。  MySQL Cluster Manager 代理由在构成给定管理站点的主机上运行的所有 MySQL Cluster Manager 代理进程的集合组成。MySQL Cluster Manager 代理进程是一个守护进程,它在集群中使用的每个主机上运行。在 MySQL Cluster Manager 中,没有单一的中央服务器或进程;所有代理协作管理整个集群。这意味着任何连接的代理都可用于执行影响整个集群的任务。

每个代理进程负责管理在代理所在主机上运行的 MySQL NDB Cluster 节点。MySQL NDB Cluster 管理和 SQL 节点由 MySQL Cluster Manager 代理直接管理;使用集群管理节点间接管理集群数据节点。

MySQL Cluster Manager 代理处理的管理职责包括:

  • 启动、停止和重新启动集群节点

  • 集群配置变更

  • 集群软件升级

  • 主机和节点状态报告

  • 故障集群节点的恢复

创建、执行初始配置或启动集群需要在所有集群主机上运行代理进程。集群启动后,即使一个或多个代理进程失败,它也会继续运行。但是,必须重新启动任何失败的代理进程,然后才能执行其他集群管理功能。

客户。  MySQL Cluster Manager 客户端是用于访问 MySQL Cluster Manager 代理的软件应用程序。在 MySQL Cluster Manager 中,客户端实际上只不过是mysql命令行客户端,从连接到 MySQL Cluster Manager 代理所需的选项开始。MySQL Cluster Manager 1.4.8 及更高版本包含一个 mcm客户端,以便于使用;该客户端包含一个脚本,该脚本充当 具有这些选项 的mysql客户端的包装器。

举例来说,我们展示了如何部署 MySQL Cluster Manager 以与在 4 台主机上运行的 MySQL NDB Cluster 一起使用。下图说明了这一点:

图 1.1 MySQL Cluster Manager 部署

内容在周围的文字中描述。

在此示例集群中,其中两台主机各有一个管理服务器 ( ndb_mgmd ) 和一个 SQL 节点 ( mysqld );其他 2 台主机各有两个数据节点 ( ndbd )。但是,无论集群节点在主机之间的分布如何,每个主机上都必须运行一个 MySQL Cluster Manager 代理进程。

MySQL Cluster Manager 客户端可用于从构成集群所属的管理站点的任何主机访问代理。此外,客户端可以在任何计算机上使用,只要网络连接到至少一台运行代理进程的主机。客户端本身运行的计算机不需要是这些主机之一。客户端可以在不同时间连接到管理站点内不同主机上的不同代理进程并使用它们来执行集群管理功能。