写点什么

【TiDB 8.1】 社区版尝鲜之集群离线部署 - 基于国产 OS-openEuler22.03 SP3

  • 2024-07-05
    北京
  • 本文字数:5951 字

    阅读完需:约 20 分钟

作者: Acdante 原文来源:https://tidb.net/blog/5cca6d37


【前言】由于近期有 TiDB 测试需求,刚好赶上 8.1 新版本发布前夕,在各群内咨询后,表妹提示马上发布 8.1 版本了,可以等等,于是本来计划 5 月 23 日先上 5.7 版本的,延后等到 5 月 24 日周五晚上,8.1 新版本发布可下载了,第一时间就下载,进行测试环境集群部署。等待下载的过程中,刚好晚饭没吃,煎饺搞起来,那叫一个鲜美哦。


TiDB 8.1 测试集群规划: 计划部署 14 节点包含主要组件的准生产集群。


TiDB 8.1.0 LTS 版本在性能、扩展性、稳定性、SQL 和数据库管理等方面进行了显著的功能增强,具体 TiDB 8.1- LTS 版本的新特性和各种强大功能,详见https://tidb.net/blog/4efefe7b文章。接下来就展示一下整个搭建过程还是比较顺手。

0x00.TiDB 8.1 部署前置条件

操作系统及平台要求

参照官方指导文档,TiDB 软件和硬件环境建议配置 | PingCAP 文档中心


在 v8.1 LTS 版本中,针对不同操作系统和 CPU 架构的组合,TiDB 提供不同级别质量标准的支持。


  • 在以下操作系统以及对应的 CPU 架构组合上,TiDB 可满足企业级生产质量的要求,产品特性经过全面且系统化的验证:ARM 和通用 x86 均可部署。这里没看到阿里龙蜥操作系统的测试,后续有机会也想测试看看。


| 操作系统 | 支持的 CPU 架构 | | :—————————————————————— | :—————– | | Red Hat Enterprise Linux 8.4 及以上的 8.x 版本 | - x86_64 - ARM 64 | | - Red Hat Enterprise Linux 7.3 及以上的 7.x 版本 - CentOS 7.3 及以上的 7.x 版本 | - x86_64 - ARM 64 | | Amazon Linux 2 | - x86_64 - ARM 64 | | Rocky Linux 9.1 及以上的版本 | - x86_64 - ARM 64 | | 麒麟欧拉版 V10 SP1/SP2 | - x86_64 - ARM 64 | | 统信操作系统 (UOS) V20 | - x86_64 - ARM 64 | | openEuler 22.03 LTS SP1/SP3 | - x86_64 - ARM 64 |

0x01.TiDB 8.1 集群节点规划

| | | | | | | | || – | ———– | — | – | — | —- | —————— | —- || 序号 | 角色 | CPU | 内存 | 系统盘 | 数据盘 | 操作系统版本 | 部署类型 || 1 | TiDB 服务器 | 8 | 32 | 50 | 1T | OpenEuler22.03 SP3 | 虚拟机 || 2 | TiDB 服务器 | 8 | 32 | 50 | 1T | OpenEuler22.03 SP3 | 虚拟机 || 3 | TiDB 服务器 | 8 | 32 | 50 | 1T | OpenEuler22.03 SP3 | 虚拟机 || 4 | TiKV 服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 5 | TiKV 服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 6 | TiKV 服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 7 | PD 服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 8 | PD 服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 9 | PD 服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 10 | TiFlash 服务器 | 16 | 32 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 11 | TiFlash 服务器 | 16 | 32 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 12 | TiDB 集群监控服务器 | 8 | 16 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 13 | TICDC | 8 | 32 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 || 14 | TICDC | 8 | 32 | 50 | 300G | OpenEuler22.03 SP3 | 虚拟机 |

0x02.openeuler-22.03-SP3 系统环境准备

部署服务器节点规划


测试环境,准备十四台虚拟机,均统一采用 openeuler 22.03 SP3 最新版本,最小化安装,关闭 selinux/firewalld 防火墙,配置 NTP,关闭透明大页,关闭主要节点 SWAP,同网段,磁盘分区统一 GPT-EXT4,按要求挂载。操作系统部署过程略过,简单放两张图。


【注意】如果主机内存偏小,关闭系统 swap 可能会更容易触发 OOM 问题,可参考以如下方法将 swap 优先级调低,但不做永久关闭:


echo "vm.swappiness = 0">> /etc/sysctl.confsysctl -p
复制代码


OS 安装图 1:



OS 安装完成图 2:



/data1 数据盘挂载图 3:



其他系统要求按照规范操作即可


注意:最小化安装操作系统,确保 tar 命令、numactl 命令正常安装

0x03.TiDB V8.1.0 社区版下载


https://cn.pingcap.com/product-community/




节点部署规划


0x04.TiDB V8.1.0 集群 Tiup 离线部署

tar xzvf tidb-community-server-v8.1.0-linux-amd64.tar.gz && sh tidb-community-server-v8.1.0-linux-amd64/local_install.sh       


 && \


> sh tidb-community-server-v8.1.0-linux-amd64/local_install.sh && \


> source /home/tidb/.bash_profile


注意:解压目录如果在 /tmp 目录,需要修改系统默认删除 tmp 文件规则,或者直接放在非 /tmp 目录下解压,会影响到后续 tiup 等管理命令使用



初始化结果:


0x05. 配置 TiDB Cluster 集群拓扑文件

配置参考官方手册,修改了文件路径


注意:如需大小写敏感,需提前定义 new_collation_enabled 改为 enable,如有后续调整需求,无法后续调整,只能重建迁移



# # 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: "/data1/tidb-deploy"  data_dir: "/data1/tidb-data"
# # Monitored variables are applied to all the machines.monitored: node_exporter_port: 9100 blackbox_exporter_port: 9115 # deploy_dir: "/data1/tidb-deploy/monitored-9100" # data_dir: "/data1/tidb-data/monitored-9100" # log_dir: "/data1/tidb-deploy/monitored-9100/log"
# # Server configs are used to specify the runtime configuration of TiDB components.# # All configuration items can be found in TiDB docs:# # - TiDB: https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file# # - TiKV: https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file# # - PD: https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file# # All configuration items use points to represent the hierarchy, e.g:# # readpool.storage.use-unified-pool# ## # You can overwrite this configuration via the instance-level `config` field.
server_configs: tidb: log.slow-threshold: 300 tikv: # server.grpc-concurrency: 4 # raftstore.apply-pool-size: 2 # raftstore.store-pool-size: 2 # rocksdb.max-sub-compactions: 1 # storage.block-cache.capacity: "16GB" # readpool.unified.max-thread-count: 12 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 cdc: # capture-session-ttl: 10 # sorter.sort-dir: "/tmp/cdc_sort" # gc-ttl: 86400
pd_servers: - host: 192.XX.XX.X46 # ssh_port: 22 # name: "pd-1" # client_port: 2379 # peer_port: 2380 # deploy_dir: "/data1/tidb-deploy/pd-2379" # data_dir: "/data1/tidb-data/pd-2379" # log_dir: "/data1/tidb-deploy/pd-2379/log" # numa_node: "0,1" # # The following configs are used to overwrite the `server_configs.pd` values. # config: # schedule.max-merge-region-size: 20 # schedule.max-merge-region-keys: 200000 - host: 192.XX.XX.X47 - host: 192.XX.XX.X48
tidb_servers: - host: 192.XX.XX.X43 # ssh_port: 22 # port: 4000 # status_port: 10080 # deploy_dir: "/data1/tidb-deploy/tidb-4000" # log_dir: "/data1/tidb-deploy/tidb-4000/log" # numa_node: "0,1" # # The following configs are used to overwrite the `server_configs.tidb` values. # config: # log.slow-query-file: tidb-slow-overwrited.log - host: 192.XX.XX.X44 - host: 192.XX.XX.X45
tikv_servers: - host: 192.XX.XX.X40 # ssh_port: 22 # port: 20160 # status_port: 20180 # deploy_dir: "/data1/tidb-deploy/tikv-20160" # data_dir: "/data1/tidb-data/tikv-20160" # log_dir: "/data1/tidb-deploy/tikv-20160/log" # numa_node: "0,1" # # The following configs are used to overwrite the `server_configs.tikv` values. # config: # server.grpc-concurrency: 4 # server.labels: { zone: "zone1", dc: "dc1", host: "host1" } - host: 192.XX.XX.X41 - host: 192.XX.XX.X42
tiflash_servers: - host: 192.XX.XX.X49 data_dir: /data1/tidb-data/tiflash-9000 deploy_dir: /data1/tidb-deploy/tiflash-9000 - host: 192.XX.XX.X50 data_dir: /data1/tidb-data/tiflash-9000 deploy_dir: /data1/tidb-deploy/tiflash-9000
cdc_servers: - host: 192.XX.XX.X53 port: 8300 deploy_dir: "/data1/tidb-deploy/cdc-8300" data_dir: "/data1/tidb-data/cdc-8300" log_dir: "/data1/tidb-deploy/cdc-8300/log" # gc-ttl: 86400 # ticdc_cluster_id: "cluster1" - host: 192.XX.XX.X54 port: 8300 deploy_dir: "/data1/tidb-deploy/cdc-8300" data_dir: "/data1/tidb-data/cdc-8300" log_dir: "/data1/tidb-deploy/cdc-8300/log" # gc-ttl: 86400 # ticdc_cluster_id: "cluster2"
monitoring_servers: - host: 192.XX.XX.X52 # ssh_port: 22 # port: 9090 # deploy_dir: "/data1/tidb-deploy/prometheus-8249" # data_dir: "/data1/tidb-data/prometheus-8249" # log_dir: "/data1/tidb-deploy/prometheus-8249/log"
grafana_servers: - host: 192.XX.XX.X52 # port: 3000 # deploy_dir: /data1/tidb-deploy/grafana-3000
alertmanager_servers: - host: 192.XX.XX.X52 # ssh_port: 22 # web_port: 9093 # cluster_port: 9094 # deploy_dir: "/data1/tidb-deploy/alertmanager-9093" # data_dir: "/data1/tidb-data/alertmanager-9093" # log_dir: "/data1/tidb-deploy/alertmanager-9093/log"

复制代码

0x06.TiDB 集群部署前预检查

执行集群部署前,先执行配置文件和前置条件检查


tiup cluster check ./topology.yaml --user root -p
复制代码


可执行自动修复相关风险:tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]修复日志:
复制代码



检查通过日志:



0x07. 离线部署 TiDB 集群

部署命令


tiup cluster deploy tidb-cluster v8.1.0 ./topology.yaml --user root -p
复制代码





出现 Cluster `tidb-cluster` deployed successfully, you can start it with command: `tiup cluster start tidb-cluster –init`


即表明 TiDB 离线集群已经完成部署,下一步可进行集群启动


集群状态检查:


tiup cluster display tidb-cluster可看到集群的各个角色组件status目前仍然为Down状态,需要进行集群安全启动
复制代码


0x08.TiDB V8.1.0 集群启动

安全模式启动集群


[tidb@ticluster ~]$ tiup cluster start tidb-cluster --init
复制代码


启动后,会有一个初始密码,需要记录。


。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Start 192.168.XX.XX3 success        Start 192.168.XX.XX6 success        Start 192.168.XX.XX2 success        Start 192.168.XX.XX7 success        Start 192.168.XX.XX1 success        Start 192.168.XX.XX9 success        Start 192.168.XX.XX4 success        Start 192.168.XX.XX0 success+ [ Serial ] - UpdateTopology: cluster=tidb-clusterStarted cluster `tidb-cluster` successfullyThe root password of TiDB database has been changed.The new password is: 'PASSWORD—******PASSWORD'.Copy and record it to somewhere safe, it is only displayed once, and will not be stored.The generated password can NOT be get and shown again.
复制代码


验证集群状态


tiup cluster display tidb-cluster
复制代码


可以看到 PD、DB、KV 等相关组件 STATUS 均已经变为 UP 状态,说明集群启动成功,可以进行连接,且可以看到 TiDB 集群的 Dashboard URL 和 Grafana URL,可以通过两个管理平台,web 可视化检查集群组件和相关性能监控信息。


0x09.TiDB 集群管理和监控面板

自带监控和 web 管理面板,这点我认为 TiDB 是做的不错的,免去了后续单独安装各类监控的步骤,对客户对 DBA 都是非常友好。

集群监控面板

监控面板:Grafana TRL:默认端口:http://Monitoring_Server_IP:3000


界面展示:



集群管理面板

集群管理面板:默认 URL:默认端口:http://TiDB_PD_Role_IP:2379/dashboard




0x10. 问题一、无 tar 命令

Error: stderr: bash: line 1: tar: command not found: executor.ssh.execute_failed: Failed to execute command over SSH for 'root@192.168.XX.XX0:22' {ssh_stderr: bash: line 1: tar: command not found, ssh_stdout: , ssh_command: export LANG=C; PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin; tar --no-same-owner -zxf /tmp/tiup/bin/insight-v0.4.2-linux-amd64.tar.gz -C /tmp/tiup/bin && rm /tmp/tiup/bin/insight-v0.4.2-linux-amd64.tar.gz}, cause: Process exited with status 127
Verbose debug logs has been written to /home/tidb/.tiup/logs/tiup-cluster-debug-2024-05-24-22-07-52.log.
复制代码


以上报错原因为 openEuler 系统为最小化安装配置,无 *tar* 命令,无法正常执行 tar 命令,预检查失败,报错节点安装 tar 命令后正常通过检查

0x11. 问题二、numactl 命令不可用


Fail 为必须解决通过项,节点安装 numactl 即可


发布于: 刚刚阅读数: 3
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
【TiDB 8.1】 社区版尝鲜之集群离线部署-基于国产OS-openEuler22.03 SP3_版本测评_TiDB 社区干货传送门_InfoQ写作社区