准备工作
第零步:规划集群所有物理节点的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);
第四步:检查所有数据节点,以及应用程序所在物理节点的网络设置:
- 每个物理节点上执行命令
hostname -f
,查看和确认所有节点的hostname是不相同的(应用驱动所在节点无需做此项检查); - 每个物理节点上执行
ping host
, 其中host是其他物理节点的hostname, 看能否ping通其它物理节点; 如果不能ping通,需要检查网络设置, 或/etc/hosts文件(Windows系统默认路径为C:\Windows\system32\drivers\etc\hosts),或DNS的配置。如果无法ping通,是无法组成集群的; - 从应用运行的物理节点,ping taosd运行的数据节点,如果无法ping通,应用是无法连接taosd的,请检查应用所在物理节点的DNS设置或hosts文件;
- 每个数据节点的End Point就是输出的hostname外加端口号,比如h1.taosdata.com:6030
第五步:修改TDengine的配置文件(所有节点的文件/etc/taos/taos.cfg都需要修改)。假设准备启动的第一个数据节点End Point为 h1.taosdata.com:6030, 其与集群配置相关参数如下:
// firstEp 是每个数据节点首次启动后连接的第一个数据节点
firstEp h1.taosdata.com:6030
// 必须配置为本数据节点的FQDN,如果本机只有一个hostname, 可注释掉本配置
fqdn h1.taosdata.com
// 配置本数据节点的端口号,缺省是6030
serverPort 6030
// 使用场景,请参考《Arbitrator的使用》的部分
arbitrator ha.taosdata.com:6042
一定要修改的参数是firstEp和fqdn。在每个数据节点,firstEp需全部配置成一样,但fqdn一定要配置成其所在数据节点的值。其他参数可不做任何修改,除非你很清楚为什么要修改。
加入到集群中的数据节点dnode,涉及集群相关的下表11项参数必须完全相同,否则不能成功加入到集群中。
# | 配置参数名称 | 含义 |
---|---|---|
1 | numOfMnodes | 系统中管理节点个数 |
2 | mnodeEqualVnodeNum | 一个mnode等同于vnode消耗的个数 |
3 | offlineThreshold | dnode离线阈值,超过该时间将导致Dnode离线 |
4 | statusInterval | dnode向mnode报告状态时长 |
5 | arbitrator | 系统中裁决器的end point |
6 | timezone | 时区 |
7 | locale | 系统区位信息及编码格式 |
8 | charset | 字符集编码 |
9 | balance | 是否启动负载均衡 |
10 | maxTablesPerVnode | 每个vnode中能够创建的最大表个数 |
11 | maxVgroupsPerDb | 每个DB中能够使用的最大vgroup个数 |