mysql cluster

MySql的集群

MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。(注意,要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM)。

一个mysql的cluster主要由三部分组成:

1、sql层的sql服务器节点:就是单个的mysql服务器

2、storage层的NDB节点:这种节点主要是实现底层数据存储功能,来保存cluster的数据。最初的NDB数据是保存在内存中的,但是最新的已经减小了这种限制。可以选择数据是全部加载到内存,还是紧紧加载索引。每一个NDB节点保存完整数据的一个fragment,也就是一个数据分片。所以,只要配置得当,mysql不会在存储层出现单点故障问题。一般来说,NDB节点被组织成一个一个的NDB group,一个group实际上就是一组存有完全相同物理数据的NDB节点群。

NDB各个节点对数据的组织,可能每个节点都保存全部的数据,也可能只保存完整数据的一部分。主要由节点数据和参数来控制。在下面要说的管理节点上,有config.ini的配置文件,其中有NoOfReplicas这个参数,指定每一份数据被冗余存储在不同节点上的份数。一般至少应该设置为2,也只需要设置为2,因为两个节点同时down的概率是很低的。当然如果内存和机器足够多的话,也可以设置大一点,进一步减少出现故障的机会。

3、负责管理各个节点的Manage节点主机

对集群中各个节点的管理工作。包括集群的配置、启动和关闭各个节点、对节点进行常规维护以及实施数据的备份等。管理节点会获取整个cluster的全部节点的状态以及错误信息,并将这些信息反馈给整个集群中的其他所有节点。由于管理节点保存了整个cluster的信息以及负责了基本沟通工作,所以必须是第一个启动的节点。

管理节点只安装db_mgm和ndb_mamd两个程序即可。

【MySql性能调优与架构设计】第16章有详细的环境搭建介绍。

个人认为,管理节点容易出现单点故障。

cluster启动顺序:管理节点、NDB节点、SQL节点。其中NDB节点在维护的时候,可以通过管理节点关闭。但是SQL节点不行。

由于cluster是一个分布式的系统,而且所有的访问都至少要经过两个节点:一个sql节点和一个ndb节点,所以节点之间的带宽要有保证,而且不同节点之间的性能不要差太多,避免某一个节点过早的成为性能瓶颈。

你可能感兴趣的:(sql,mysql,集群,服务器,分布式计算,存储)