准备工作

第零步:规划集群所有物理节点的FQDN,将规划好的FQDN分别添加到每个物理节点的/etc/hostname;修改每个物理节点的/etc/hosts,将所有集群物理节点的IP与FQDN的对应添加好。【如部署了DNS,请联系网络管理员在DNS上做好相关配置】

第一步:如果搭建集群的物理节点中,存有之前的测试数据、装过1.X的版本,或者装过其他版本的TDengine,请先将其删除,并清空所有数据,具体步骤请参考博客《TDengine多种安装包的安装和卸载》
注意1:因为FQDN的信息会写进文件,如果之前没有配置或者更改FQDN,且启动了TDengine。请一定在确保数据无用或者备份的前提下,清理一下之前的数据(rm -rf /var/lib/taos/*);
注意2:客户端也需要配置,确保它可以正确解析每个节点的FQDN配置,不管是通过DNS服务,还是 Host 文件。

第二步:建议关闭所有物理节点的防火墙,至少保证端口:6030 - 6042的TCP和UDP端口都是开放的。强烈建议先关闭防火墙,集群搭建完毕之后,再来配置端口;

第三步:在所有物理节点安装TDengine,且版本必须是一致的,但不要启动taosd。安装时,提示输入是否要加入一个已经存在的TDengine集群时,第一个物理节点直接回车创建新集群,后续物理节点则输入该集群任何一个在线的物理节点的FQDN:端口号(默认6030);

第四步:检查所有数据节点,以及应用程序所在物理节点的网络设置:

  1. 每个物理节点上执行命令hostname -f,查看和确认所有节点的hostname是不相同的(应用驱动所在节点无需做此项检查);
  2. 每个物理节点上执行ping host, 其中host是其他物理节点的hostname, 看能否ping通其它物理节点; 如果不能ping通,需要检查网络设置, 或/etc/hosts文件(Windows系统默认路径为C:\Windows\system32\drivers\etc\hosts),或DNS的配置。如果无法ping通,是无法组成集群的;
  3. 从应用运行的物理节点,ping taosd运行的数据节点,如果无法ping通,应用是无法连接taosd的,请检查应用所在物理节点的DNS设置或hosts文件;
  4. 每个数据节点的End Point就是输出的hostname外加端口号,比如h1.taosdata.com:6030

第五步:修改TDengine的配置文件(所有节点的文件/etc/taos/taos.cfg都需要修改)。假设准备启动的第一个数据节点End Point为 h1.taosdata.com:6030, 其与集群配置相关参数如下:

  1. // firstEp 是每个数据节点首次启动后连接的第一个数据节点
  2. firstEp h1.taosdata.com:6030
  3. // 必须配置为本数据节点的FQDN,如果本机只有一个hostname, 可注释掉本配置
  4. fqdn h1.taosdata.com
  5. // 配置本数据节点的端口号,缺省是6030
  6. serverPort 6030
  7. // 使用场景,请参考《Arbitrator的使用》的部分
  8. arbitrator ha.taosdata.com:6042

一定要修改的参数是firstEp和fqdn。在每个数据节点,firstEp需全部配置成一样,但fqdn一定要配置成其所在数据节点的值。其他参数可不做任何修改,除非你很清楚为什么要修改。

加入到集群中的数据节点dnode,涉及集群相关的下表11项参数必须完全相同,否则不能成功加入到集群中。

#配置参数名称含义
1numOfMnodes系统中管理节点个数
2mnodeEqualVnodeNum一个mnode等同于vnode消耗的个数
3offlineThresholddnode离线阈值,超过该时间将导致Dnode离线
4statusIntervaldnode向mnode报告状态时长
5arbitrator系统中裁决器的end point
6timezone时区
7locale系统区位信息及编码格式
8charset字符集编码
9balance是否启动负载均衡
10maxTablesPerVnode每个vnode中能够创建的最大表个数
11maxVgroupsPerDb每个DB中能够使用的最大vgroup个数