在部署或扩容 TiDB Data Migration (DM) 集群时,需要提供一份拓扑文件来描述集群拓扑,同样,修改配置也是通过编辑拓扑文件来实现的,区别在于修改配置时仅允许修改部分字段。
拓扑文件示例参考。
文件结构
一个 DM 集群的拓扑文件可能包含以下区块:
- global:集群全局配置,其中一些是集群的默认值,可以在实例里面单独配置
- server_configs:组件全局配置,可单独针对每个组件配置,若在实例中存在同名配置项,那么以实例中配置的为准
- master_servers:DM master 实例的配置,用来指定 DM 组件的 master 服务部署到哪些机器上
- worker_servers:DM worker 实例的配置,用来指定 DM 组件的 worker 服务部署到哪些机器上
- monitoring_servers:用来指定 Prometheus 部署在哪机器上,TiUP 支持部署多台 Prometheus 实例,但真实投入使用的只有第一个
- grafana_servers:Grafana 实例的配置,用来指定 Grafana 部署在哪台机器上
- alertmanager_servers:Alertemanager 实例的配置,用来指定 Alertmanager 部署在哪些机器上
global
global
区块为集群的全局配置,包含以下字段:
user
:以什么用户来启动部署的集群,默认值:"tidb",如果<user>
字段指定的用户在目标机器上不存在,会自动尝试创建group
:自动创建用户时指定用户所属的用户组,默认和<user>
字段值相同,若指定的组不存在,则自动创建ssh_port
:指定连接目标机器进行操作的时候使用的 SSH 端口,默认值:22deploy_dir
:每个组件的部署目录,默认值:"deploy",其应用规则如下:- 如果在实例级别配置了绝对路径的
deploy_dir
,那么实际部署目录为该实例设定的deploy_dir
- 对于每个实例,如果用户未配置
deploy_dir
,其默认值为相对路径<component-name>-<component-port>
- 如果
global.deploy_dir
为绝对路径,那么组件会部署到<global.deploy_dir>/<instance.deploy_dir>
目录 - 如果
global.deploy_dir
为相对路径,那么组件会部署到/home/<global.user>/<global.deploy_dir>/<instance.deploy_dir>
目录
- 如果在实例级别配置了绝对路径的
data_dir
:数据目录, 默认值:"data",其应用规则如下:- 如果在实例级别配置了绝对路径的
data_dir
,那么实际数据目录为该实例设定的data_dir
- 对于每个实例,如果用户未配置
data_dir
,其默认值为<global.data_dir>
- 如果
data_dir
为相对路径,那么组件数据将放到<deploy_dir>/<data_dir>
中,其中<deploy_dir>
的计算规则请参考deploy_dir
字段的应用规则
- 如果在实例级别配置了绝对路径的
log_dir
:数据目录, 默认值:"log",其应用规则如下:- 如果在实例级别配置了绝对路径的
log_dir
,那么实际日志目录为该实例设定的log_dir
- 对于每个实例,如果用户未配置
log_dir
,其默认值为<global.log_dir>
- 如果
log_dir
为相对路径,那么组件日志将放到<deploy_dir>/<log_dir>
中,其中<deploy_dir>
的计算规则请参考deploy_dir
字段的应用规则
- 如果在实例级别配置了绝对路径的
os
:目标机器的操作系统,该字段决定了向目标机器推送适配哪个操作系统的组件,默认值:linuxarch
: