Skip to content

Commit 3bec6c8

Browse files
committed
Update
1 parent 6e55560 commit 3bec6c8

14 files changed

+749
-17
lines changed

tiup/tiup-command-uninstall.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ tiup uninstall <component1>:<version> [component2...N] [flags]
1919

2020
## 选项
2121

22-
### --all (boolean, 默认 false)
22+
### --allboolean, 默认 false
2323

2424
卸载指定组件的全部已安装版本,省略 `<version>` 时使用。
2525

26-
### --self (boolean,默认 false)
26+
### --selfboolean,默认 false
2727

2828
卸载 TiUP 自身:删除所有从镜像上下载过来的数据,但会保留 TiUP 及其组件产生的数据,数据存放在 TIUP_HOME 指定的文件夹中,若未设置过 TIUP_HOME,则默认值为 ~/.tiup/。
2929

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
---
2+
title: tiup cluster check
3+
aliases: ['/docs-cn/dev/tiup/tiup-component-cluster-check/']
4+
---
5+
6+
# tiup cluster check
7+
8+
对于严肃的生产环境,在正式上线之前需要进行一系列检查,来确保集群拥有最好的表现,为了简化人工检查的步骤,tiup-cluster 提供了 `check` 子命令,该命令用于检查指定集群的机器硬件和软件环境是否满足正常运行条件。
9+
10+
## 检查项列表
11+
12+
### 操作系统版本
13+
14+
检查部署机操作系统发行版和版本:目前仅支持部署在 CentOS 7 的操作系统上,之后随兼容性改进可能增加更多系统版本。
15+
16+
### CPU EPOLLEXCLUSIVE
17+
18+
检查部署机 CPU 是否支持 EPOLLEXCLUSIVE。
19+
20+
### numactl
21+
22+
检查部署机是否安装 numactl,若用户配置绑核,则必须安装 numactl。
23+
24+
### 系统时间
25+
26+
检查部署机系统时间是否同步:将部署机系统时间与中控机对比,偏差超出某一阈值后报错。
27+
28+
### 时间同步服务
29+
30+
检查部署机是否配置了时间同步服务:即 ntpd 是否在运行
31+
32+
### Swap 分区
33+
34+
检查部署机是否启用 Swap 分区:建议禁用 Swap 分区
35+
36+
### 内核参数
37+
38+
检查各项内核参数的值:
39+
40+
- net.ipv4.tcp_tw_recycle: 0
41+
- net.ipv4.tcp_syncookies: 0
42+
- net.core.somaxconn: 32768
43+
- vm.swappiness: 0
44+
- vm.overcommit_memory: 0 or 1
45+
- fs.file-max: 1000000
46+
47+
### THP(透明大页)
48+
49+
检查部署机是否启用透明大页:建议禁用透明大页。
50+
51+
### 系统 Limits
52+
53+
检查 /etc/security/limits.conf 中各项 limit 值:
54+
55+
```
56+
<deploy-user> soft nofile 1000000
57+
<deploy-user> hard nofile 1000000
58+
<deploy-user> soft stack 10240
59+
```
60+
61+
其中 `<deploy-user>` 为部署、运行 TiDB 集群的用户,最后一列的数值为要求达到的最小值。
62+
63+
### SELinux
64+
65+
检查 SELinux 是否启用:建议用户禁用 SELinux。
66+
67+
### 防火墙
68+
69+
检查 FirewallD 服务是否启用:建议用户禁用 FirewallD 或为 TiDB 集群各服务添加允许规则。
70+
71+
### irqbalance
72+
73+
检查 irqbalance 服务是否启用:建议用户启用 irqbalance 服务。
74+
75+
### 磁盘挂载参数
76+
77+
检查 ext4 分区的挂载参数:确保挂载参数包含 nodelalloc,noatime 选项。
78+
79+
### 端口占用
80+
81+
检查部署机上是否已有进程占用了端口:检查拓扑中定义的端口(包括自动补全的默认端口)在部署机上是否已被占用。
82+
83+
> **注意:**
84+
>
85+
> 端口占用检查假设集群尚未启动,如果检查的是已经部署并启动的集群,那么端口占用检查一定会失败,因为端口确实被占用了。
86+
87+
### CPU 核心数
88+
89+
检查部署机 CPU 信息:建议生产级群 CPU 逻辑核心数 >= 16
90+
91+
> **注意:**
92+
>
93+
> 默认不检查 CPU 核心数,需要通过选项 `--enable-cpu` 启用。
94+
95+
### 内存大小
96+
97+
检查部署机的内存大小:建议生产集群总内存容量 >= 32Gb。
98+
99+
> **注意:**
100+
>
101+
> 默认不检查内存大小,需要通过选项 `--enable-mem` 启用。
102+
103+
### fio 磁盘性能测试
104+
105+
使用 fio 测试 data_dir 所在磁盘的性能,包括三个测试项目:
106+
107+
- fio_randread_write_latency
108+
- fio_randread_write
109+
- fio_randread
110+
111+
> **注意:**
112+
>
113+
> 默认不进行 fio 磁盘性能测试,需要通过选项 `--enable-disk` 启用。
114+
115+
## 语法
116+
117+
```sh
118+
tiup cluster check <topology.yml | cluster-name> [flags]
119+
```
120+
121+
若集群尚未部署,需要传递将用于部署集群的 [tompology.yml](/tiup/tiup-cluster-topology-reference.md) 文件,tiup-cluster 会根据该文件的内容连接到对应机器去检查。若集群已经部署,则可以使用集群的名字 `<cluster-name>` 作为检查对象。
122+
123+
> **注意:**
124+
>
125+
> 若传递的是集群名字,则需要配合 `--cluster` 选项使用。
126+
127+
## 选项
128+
129+
### --apply(boolean,默认 false)
130+
131+
尝试自动修复失败的检查项,目前仅会尝试修复以下项目:
132+
133+
- SELinux
134+
- 防火墙
135+
- irqbalance
136+
- 内核参数
137+
- 系统 Limits
138+
- THP(透明大页)
139+
140+
### --cluster(boolean,默认 false)
141+
142+
tiup-cluster 支持对未部署的集群进行检查,也支持对已部署的集群进行检查,命令格式:
143+
144+
```sh
145+
tiup cluster check <topology.yml | cluster-name> [flags]
146+
```
147+
148+
若选择的格式为 `tiup cluster check <cluster-name>` 则必须加上该选项:`tiup cluster check <cluster-name> --cluster`
149+
150+
### --enable-cpu(boolean,默认 false)
151+
152+
默认情况下 tiup-cluster 不检查 CPU 核心数,该选项用于启用 CPU 核心数检查。
153+
154+
### --enable-disk(boolean,默认 false)
155+
156+
默认情况下 tiup-cluster 不进行 fio 磁盘性能测试,该选项用于启用 fio 磁盘性能测试。
157+
158+
### --enable-mem
159+
160+
默认情况下 tiup-cluster 不检查内存大小,该选项用于启用内存大小检查。
161+
162+
### -u, --user(string,默认为当前执行命令的用户)
163+
164+
指定连接目标机器的用户名,该用户在目标机器上需要有免密 sudo root 的权限。
165+
166+
> **注意:**
167+
>
168+
> 仅当 `--cluster` 选项为 false 时该选项有效,否则该值固定为部署集群时拓扑文件中指定的用户名。
169+
170+
### -i, --identity_file(string,默认 ~/.ssh/id_rsa)
171+
172+
指定连接目标机器的密钥文件。
173+
174+
> **注意:**
175+
>
176+
> 仅当 `--cluster` 选项为 false 时该选项有效,否则该值固定为 `${TIUP_HOME}/storage/cluster/clusters/<cluster-name>/ssh/id_rsa`
177+
178+
### -p, --password(boolean,默认 false)
179+
180+
在连接目标机器时使用密码登陆:
181+
- 对于指定了 `--cluster` 的集群,密码为部署集群时拓扑文件中指定的用户的密码
182+
- 对于未指定 `--cluster` 的集群,密码为 `-u/--user` 参数指定的用户的密码
183+
184+
### --help(boolean,默认 false)
185+
186+
输出帮助信息。
187+
188+
## 输出
189+
190+
输出含有以下字段的表格:
191+
192+
- Node:目标节点
193+
- Check:检查项
194+
- Result:检查结果(Pass/Warn/Fail)
195+
- Message:结果描述
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: tiup cluster deploy
3+
aliases: ['/docs-cn/dev/tiup/tiup-component-cluster-deploy/']
4+
---
5+
6+
# tiup cluster deploy
7+
8+
命令 `tiup cluster deploy` 用于部署一个全新的集群。
9+
10+
## 语法
11+
12+
```sh
13+
tiup cluster deploy <cluster-name> <version> <topology.yaml> [flags]
14+
```
15+
16+
- `<cluster-name>` 表示新集群的名字,不能和现有集群同名
17+
- `<version>` 为要部署的 TiDB 集群版本号,如 `v4.0.9`
18+
- `<topology.yaml>` 为事先编写好的[拓扑文件](/tiup/tiup-cluster-topology-reference.md)
19+
20+
## 选项
21+
22+
### -u, --user(string,默认为当前执行命令的用户)
23+
24+
指定连接目标机器的用户名,该用户在目标机器上需要有免密 sudo root 的权限。
25+
26+
### -i, --identity_file(string,默认 ~/.ssh/id_rsa)
27+
28+
指定连接目标机器的密钥文件。
29+
30+
### -p, --password(boolean,默认 false)
31+
32+
在连接目标机器时使用密码登陆,不可和 `-i/--identity_file` 同时使用。
33+
34+
### --ignore-config-check(boolean,默认 false)
35+
36+
在二进制文件部署之后,会对 TiDB,TiKV 和 PD 组件执行配置检查,检查方式为 `<binary> --config-check <config-file>`,其中 `<bianry>` 为部署的二进制文件的路径,`<config-file>` 为根据用户配置生成的配置文件。
37+
38+
如果想要跳过该项检查,可以使用该选项。
39+
40+
### --no-labels(boolean,默认 false)
41+
42+
当两个或多个 TiKV 部署到同一台机器时,会存在一个风险:由于 PD 无法感知集群的拓扑结构,可能将一个 region 的多个副本调度到一台物理机上的不同 TiKV,这样这台物理机就成为了单点。为了避免这种情况,用户可以通过 label 来告诉 PD 不要将相同的 region 调度到同一台机器上(配置方式参考[通过拓扑 label 进行副本调度](/schedule-replicas-by-topology.labels.md))。
43+
44+
但是对于测试环境,可能并不在意是否将一个 region 的副本调度到了同一台机器上,这个时候可以使用 `--no-labels` 来绕过检查。
45+
46+
### --skip-create-user(boolean,false)
47+
48+
在部署集群时,tiup-cluster 会先检查拓扑文件中指定的用户名是否存在,如果不存在就会创建一个。指定 `--skip-create-user` 选项后不再检查用户是否存在,直接跳过创建步骤。
49+
50+
### --help(boolean,默认 false)
51+
52+
输出帮助信息。
53+
54+
## 输出
55+
56+
部署日志。
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: tiup cluster display
3+
aliases: ['/docs-cn/dev/tiup/tiup-component-cluster-display/']
4+
---
5+
6+
# tiup cluster display
7+
8+
## 介绍
9+
10+
如果想查看集群中每个组件的运行状态,逐一登录到各个机器上查看显然很低效。因此,tiup-cluster 提供了 `tiup cluster display` 命令来高效完成这件工作。
11+
12+
## 语法
13+
14+
```sh
15+
tiup cluster display <cluster-name> [flags]
16+
```
17+
18+
`<cluster-name>` 为要操作的集群名字,如果忘记集群名字可查看[集群列表](/tiup/tiup-component-cluster-list.md)
19+
20+
## 选项
21+
22+
### --dashboard(boolean,默认为 false)
23+
24+
默认情况会展示整个集群的所有节点信息,加上该选项后仅展示 dashboard 的信息。
25+
26+
### -N, --node(strings,默认为 [],表示所有节点)
27+
28+
指定要查询的节点,不指定则表示所有节点。该选项的值为以逗号分割的节点 ID 列表,节点 ID 为[集群状态](/tiup/tiup-component-cluster-display.md)表格的第一列。
29+
30+
> **注意:**
31+
>
32+
> 若同时指定了 `-R, --role`,那么将查询他们的交集中的服务状态。
33+
34+
### -R, --role strings(strings,默认为 [],表示所有角色)
35+
36+
指定要查询的角色,不指定则表示所有角色。该选项的值为以逗号分割的节点角色列表,角色为[集群状态](/tiup/tiup-component-cluster-display.md)表格的第二列。
37+
38+
> **注意:**
39+
>
40+
> 若同时指定了 `-N, --node`,那么将查询他们的交集中的服务状态。
41+
42+
### --help(boolean,默认 false)
43+
44+
输出帮助信息。
45+
46+
## 输出
47+
48+
- 集群名称
49+
- 集群版本
50+
- SSH 客户端类型
51+
- Dashboard 地址
52+
- 含有以下字段的表格:
53+
- ID:节点 ID,由 IP:PORT 构成
54+
- Role:该节点部署的服务角色(如 tidb, tikv 等)
55+
- Host:该节点对应的机器 IP
56+
- Ports:服务占用的端口号
57+
- OS/Arch:该节点的操作系统和机器架构
58+
- Status:该节点服务当前的状态
59+
- Data Dir:服务的数据目录,`-` 表示没有数据目录
60+
- Deploy Dir:服务的部署目录
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: tiup cluster import
3+
aliases: ['/docs-cn/dev/tiup/tiup-component-cluster-import/']
4+
---
5+
6+
# tiup cluster import
7+
8+
## 介绍
9+
10+
在 TiDB 4.0 以前的版本,集群基本是通过 TiDB Ansible 部署的,TiUP Cluster 提供了 `import` 命令用于让这些集群过渡到 TiUP Cluster 组件接管。
11+
12+
> **注意:**
13+
>
14+
> 1. TiDB Ansible 配置导入到 TiUP 中管理后,不能再通过 TiDB Ansible 对集群进行操作,否则可能因元信息不一致造成冲突
15+
> 2. 对于满足以下情况之一的 TiDB Ansible 部署的集群,暂不支持导入:
16+
> a. 启用了 `TLS` 加密功能的集群
17+
> b. 纯 KV 集群(没有 TiDB 实例的集群)
18+
> c. 启用了 `Kafka` 的集群
19+
> d. 启用了 `Spark` 的集群
20+
> e. 启用了 `Lightning` / `Importer` 的集群
21+
> f. 仍使用老版本 '`push`' 的方式收集监控指标(从 3.0 默认为 '`pull`' 模式,如果没有特意调整过则可以支持)
22+
> g. 在 `inventory.ini` 配置文件中单独为机器的 `node_exporter` / `blackbox_exporter` 通过 `node_exporter_port` / `blackbox_exporter_port` 设置了非默认端口(在 `group_vars` 目录中统一配置的可以兼容)
23+
24+
## 语法
25+
26+
```sh
27+
tiup cluster import [flags]
28+
```
29+
30+
## 选项
31+
32+
### -d, --dir string(string, 默认 当前目录)
33+
34+
指定 TiDB Ansible 所在目录。
35+
36+
### --ansible-config(string,默认 "./ansible.cfg")
37+
38+
指定 Ansible 的配置文件路径。
39+
40+
### --inventory string(string,默认 "inventory.ini")
41+
42+
指定 ansible inventory 文件的名字。
43+
44+
### --no-backup(boolean,默认 false)
45+
46+
默认情况下,import 成功之后会将 `--dir` 指定的目录里所有内容备份到 `${TIUP_HOME}/.tiup/storage/cluster/clusters/{cluster-name}/ansible-backup` 下面。该选项用于禁用这个步骤,这在该目录下有多个 inventory 文件(部署了多个集群)的时候很有用。
47+
48+
### --rename(string,默认为空)
49+
50+
重命名导入的集群。默认集群名为 inventory 中指定的 cluster_name。
51+
52+
### --help(boolean,默认 false)
53+
54+
输出帮助信息。
55+
56+
## 输出
57+
58+
import 过程的 debug 信息。

0 commit comments

Comments
 (0)