DolphinDB集群如何扩展节点和存储
1. 概述
当系统准备上线前,我们会评估和规划硬件平台的容量,并且尽可能的留出余量。可是现实往往是不能预料的,随着业务的扩张,系统的数据容量和计算能力都会变得不堪重负,我们就不得不面对一个问题:如何为现有系统增加数据容量和计算能力?
由于DolphinDB的节点是集计算和存储于一体的,所以要增加计算能力和数据容量对DolphinDB的集群来讲就是一件事 : 增加节点。当然,DolphinDB也支持对原有的节点单独增加存储。
2. 扩展机制
DolphinDB的集群是由控制节点(Controller),代理节点(Agent),数据节点(Data Node)三个角色组成:
- Controller负责管理集群元数据,提供Web集群管理工具;
- Agent部署在每一台物理机上,负责本机节点的启动和停止;
- Data Node是计算和数据节点。
DolphinDB扩展节点需要修改节点配置文件,通过集群Controller重启来载入新的节点配置,若新节点部署在一台新的物理机上,那么需要部署一个新的Agent服务来负责新物理机上的节点启停。当新的节点启动后,节点的计算能力会即时纳入集群的计算资源来统筹;新增的节点默认会将[Home Dir]/[Data Node Alias]/storage作为数据存储区域,
注意此处 [Home Dir] 本例中通过在启动命令中增加 -home data,意思就是[Home Dir]指向可执行文件同级目录下的/data/目录,所以举例node3的数据存储默认目录就是 /data/node3/storage。
当新节点启动后,该目录会被自动创建并初始化用于存储集群的分布式数据。
若仅对存储空间进行扩展,只需要修改节点配置文件,为指定节点volumes属性增加路径。
3. 方法
扩展节点需要做的工作,首先要让Controller知道需要新增的机器IP和Data Node,这份工作主要是由配置文件来实现,DolphinDB提供以下几个配置文件分别来配置集群信息
- [Controller] controller.cfg: 负责定义控制节点的相关配置,比如IP端口,控制节点连接数上限等
- [Controller] cluster.cfg: 负责集群内每一个节点的个性化配置,比如node3的volumes属性等
- [Controller] cluster.nodes: 定义集群内部的节点和代理清单,控制节点会通过这个文件来获取集群的节点信息
- [Agent] agent.cfg: 定义代理节点相关属性,比如代理节点IP和端口,所属集群控制节点等信息,和代理节点程序一起部署在各台物理机上
然后在新增加的物理机上部署Agent来负责启停本机器的Data Node,而剩下的详细配置工作和节点的启停都可以在Web集群管理界面上方便的完成。
而扩展存储空间的工作,因为volumes属性支持用逗号分隔指定多个存储目录,所以在原有的volumes属性后面追加存储目录即可。
4. 扩展节点
4.1 环境说明
因为具体的操作是在一个已有的集群上做扩容操作,所以这里先了解一下原集群的配置情况。原有服务器4台,操作系统均为ubuntu 16.04,部署了 DolphinDB 0.7 版本
172.18.0.10 : controller
172.18.0.11 : datanode1
172.18.0.12 : datanode2
172.18.0.13 : datanode3
相关文章