GBase 8a数据库集群支持多个管理节点,但一般建议根据对外负载数量,使用3-9个管理节点即可。本文对管理节点个数的选择,给出一些思考建议。
目录导航
节点数确定
方法1,根据并发情况
1、管理节点数量 1.1 管理节点与数据节点数量无关。 一般按并发数来评估。可以按照单节点20-30个并发来计算,SQL并发100个的情况下配置3个或者5个coordinator节点即可。一般建议不超过9个,否则浪费了系统资源,也增加了运维成本。 1.2 最少3个 管理节点数量出于投票考虑,最好是奇数,考虑高可用,因此建议coordinator节点最少3个。 1.3 管理节点数量建议为单数 为保证管理节点内部投票机制,建议为单数。 2、管理节点资源占用 2.1、CPU 不超过数据节点CPU负载的10%。 管理节点负责SQL解析和调度,以及发送最终结果给调用端,不负责具体的数据处理和计算。 如数据节点CPU使用率预计在70%以内,可以将管理节点和数据节点部署到一起。 2.2、磁盘。 普通SQL操作不占用磁盘(日志除外,这部分忽略吧),SQL使用的数据直接在数据节点间传送,不通过管理节点。最终返回结果的数据从数据节点通过网络接收后,直接转发给调用者,不落地文件。 例外:如客户启用了服务器端游标(server cursor),实现【前后双向移动】,则管理节点需要占用本地磁盘来生成临时表(默认在/tmp目录下)实现该功能,此时需要根据实际业务数据量来评估占用的磁盘。 偶尔使用一次的百万行以内的可以忽略。 2.3、网络 除非通过管理节点导出或传入大量数据,比如超大SQL语句查询,或者返回超大结果集的查询,需要占用网络来接收和发送数据,其它场景可忽略。特别是不低于万兆网络下。 节点多时,网络延迟不能高,特别是性能要求高的场景。
方法2、根据数据节点数量
根据集群规模和,Coordinator节点个数建议3~11的奇数个。
如小规模集群(data节点数<=10)设置3个coordinator节点;
中等规模集群(data节点数在[10,30]之间)设置5个coordinator节点;
大规模集群(data节点数在[30,100]之间)设置7或9个coordinator节点;
超大规模集群(data节点数>=100)设置9或11个coordinator节点。
集群节点最少数量确定
整体无高可用,无数据备份
1个节点:包括管理(gcware),调度(gcluster)和计算(gnode)
整体无高可用,有数据备份
2个节点:2个管理(gcware),2个调度(gcluster)和2个计算(gnode)。
任意一个节点故障,都会导致集群不可用,但数据不会丢失。
整体有高可用,有数据备份
3个节点:包括3个管理(gcware),2个调度(gcluster)和2个计算(gnode)。(只需要2台大容量的数据节点)
或者
3个节点:包括3个管理(gcware),3个调度(gcluster)和3个计算(gnode)。(需要3台大容量的数据节点)
其中所有节点可以任意坏一个,数据不丢失,服务不中断。