本文包含以下内容:
1、安装的硬件要求
2、安装前环境检查及系统优化
3、集群搭建
4、服务访问
1、硬件要求
tidb集群搭建对服务器的cpu和内存有要求,过低的配置可能会导致搭建失败或影响集群性能
2、安装前环境检查及系统优化
为了保证安装顺利和集群的性能,安装前我们需要对环境做一些检查,以便使用tiup check命令检查时能顺利的通过校验检查以及优化一些系统参数,以便保证安装后集群的性能。此流程主要分为5大步。第一:磁盘挂载,第二:关闭防火墙,第三:检测及关闭系统swap,第四:检测及安装NTP服务,第五: 操作系统检查及参数优化
- 磁盘挂载:
1、查看数据盘 fdisk -l
2、创建分区 parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
3、格式化文件系统 mkfs.ext4 /dev/nvme0n1p1
4、查看数据盘分区 UUID lsblk -f
5、编辑 /etc/fstab
文件,添加 nodelalloc
挂载参数。 执行如下命令进入fstab文件,然后将文本添加到最后一行并保存
vi /etc/fstab
文本:
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
上述的uuid要换成步骤4中机器实际的uuid,/data1换成服务器上实际被挂载的目录
6、挂载数据盘 mount -a
7、执行以下命令
,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc
,则表示已生效。
mount -t ext4
- 关闭防火墙
1、关闭命令:systemctl stop firewalld.service
2、关闭自启动:systemctl disable firewalld.service
3、检查防火墙状态 systemctl status firewalld.service
- 检测及关闭系统swap
执行如下命令关闭:
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p
- 检测及安装NTP服务
TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性
1、执行以下命令,如果输出running表示 NTP 服务正在运行 sudo systemctl status ntpd.service
2、若返回报错信息Unit ntpd.service could not be found.,请尝试执行以下命令,以查看与NTP进行时钟同步所使用的系统配置是chronyd还是ntpd:
sudo systemctl status chronyd.service
如果输出synchronised to NTP server,表示正在与 NTP 服务器正常同步 如果系统使用的是ntpd时间同步服务,可忽略第4步
4、执行chronyc tracking命令查看 Chrony 服务是否与 NTP 服务器同步。
chronyc tracking
注意:该操作仅适用于使用 Chrony 的系统,不适用于使用 NTPd 的系统。 如果该命令返回结果如下,则表示 Chrony 服务未正常运行:需要手动启动该服务 启动chronyd服务并设置自启动:
systemctl start chronyd 启动服务 systemctl status chronyd 查看状态 systemctl enable chronyd 设置开机自启
- 操作系统检查及参数优化
此流程和官网的基本一致,不再详细介绍,可参考官网https://docs.pingcap.com/zh/tidb/stable/check-before-deployment第5步的配置系统优化参数
3、集群搭建
此流程主要包含tiup工具安装、声明全局环境变量、安装 TiUP 的 cluster 组件、添加集群配置文件、check环境检查、部署和启动等操作。
- 下载并安装TiUP。
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
- 声明全局环境变量。
source ${your_shell_profile}
TiUP 安装完成后会提示对应 Shell profile 文件的绝对路径。在执行以下 source 命令前,需要将 ${your_shell_profile} 修改为 Shell profile 文件的实际位置
- 安装 TiUP 的 cluster 组件。
tiup cluster
- 添加集群配置文件
安装集群前,需要先创建集群的拓扑文件,此处可以直接先在本地创建好,比如topo.yanl,复制以下内容,然后传到服务器即可。文件中路径和ip根据实际情况声明,配置文件中的host换成实际安装的ip地址,多节点时最好每个节点安装到不同的服务器上,比如有三个tikv节点,需要三台不同的服务器。
# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy" #该路径最好换成磁盘上实际挂载的目录下,比如/xxx/tidb-deploy
data_dir: "/tidb-data" #该路径最好换成磁盘上实际挂载的目录下,比如/xxx/tidb-data
# # Monitored variables are applied to all the machines.
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
server_configs:
tidb:
log.slow-threshold: 1000
tikv:
readpool.storage.use-unified-pool: false
readpool.coprocessor.use-unified-pool: true
pd:
schedule.leader-schedule-limit: 4
schedule.region-schedule-limit: 2048
schedule.replica-schedule-limit: 64
pd_servers:
- host: 10.0.0.1
- host: 10.0.0.1
- host: 10.0.0.1
tidb_servers:
- host: 10.0.0.1
- host: 10.0.0.1
tikv_servers:
- host: 10.0.0.1
- host: 10.0.0.1
- host: 10.0.0.1
monitoring_servers:
- host: 10.0.0.1
grafana_servers:
- host: 10.0.0.1
alertmanager_servers:
- host: 10.0.0.1
- 执行部署命令前,先检查环境是否满足要求
tiup cluster check ./topo.yaml
如果报错:Error:none of ssh password,identity file ,SSH_AUTH_SOCK specified,改成如下命令,
tiup cluster check ./topo.yaml --user root -p
然后输入密码即可检查环境。如果环境检查不通过,使用如下命令自行修复
tiup cluster check ./topo.yaml --apply --user root -p
尽量保证检查的结果result栏为pass状态,如果没有绑核,numa绑核对应的那栏失败可以不用太关心,但是其他栏尽量都通过,最不济是warning状态
- 部署:
命令如下:
tiup cluster deploy <cluster-name> <version> ./topo.yaml --user root -p
- 启动集群:
tiup cluster start <cluster-name>
4、服务访问
安装 MySQL 客户端。如果已安装 MySQL 客户端则可跳过这一步骤。
yum -y install mysql
访问 TiDB 数据库,密码为空,也可以使用数据库客户端连接
mysql -h 10.0.1.1 -P 4000 -u root
访问 TiDB 的 Grafana 监控:
通过 http://{grafana-ip}:3000 访问集群 Grafana 监控页面,默认用户名和密码均为 admin。
访问 TiDB 的 Dashboard:
通过 http://{pd-ip}:2379/dashboard 访问集群 TiDB Dashboard 监控页面,默认用户名为 root,密码为空。
执行以下命令查看集群的拓扑结构和状态:
tiup cluster display <cluster-name>
到此,集群服务搭建完成,可以正常使用。
以下为集群操作的几个常用命令
停止组件
例如,下列命令只停止 TiDB 组件:
tiup cluster stop ${cluster-name} -R tidb
停止组件中的某一个节点
tiup cluster stop ${cluster-name} -N 10.0.6.194:9090
启动组件中的某一个节点
tiup cluster start ${cluster-name} -N 10.0.6.194:9090
更改组件的配置后,重启组件
tiup cluster reload ${cluster-name} -R 组件名,比如tiup cluster reload tidb-pro -R tidb