记一次 TiDB v7.1 版本生产环境的完整搭建流程

原创
2023/10/23 00:00
阅读数 20

作者: 随缘天空 原文来源:https://tidb.net/blog/1053fcd8

本文包含以下内容:

1、安装的硬件要求

2、安装前环境检查及系统优化

3、集群搭建

4、服务访问

1、硬件要求

tidb集群搭建对服务器的cpu和内存有要求,过低的配置可能会导致搭建失败或影响集群性能

tidb安装硬件要求.png

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`
    

磁盘分区uuid图.png

  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`
    

ntp服务图.png

     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

tiup安装图.png

  • 声明全局环境变量。 source ${your_shell_profile}

声明环境变量图.png

     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
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部