0
1
1
0
专栏/.../

WiFi万能钥匙鲲鹏服务器部署 TiDB 集群实战指南

 TiDBer_yangxi  发表于  2025-05-29

一、环境准备

1. 硬件要求

  • 服务器架构:鲲鹏服务器(ARM架构),TiDB 官方明确支持 ARM 架构服务器部署
  • 推荐配置(生产环境):
    • TiDB节点:16核+ / 32GB+ 内存 / SAS 硬盘 / 万兆网卡
    • PD节点:4核+ / 8GB+ 内存 / SSD 硬盘 / 万兆网卡
    • TiKV节点:8核+ / 32GB+ 内存 / SSD 硬盘(建议 NVMe)

2. 操作系统

  • 版本信息
NAME="openEuler"
VERSION="24.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS-SP1)"
ANSI_COLOR="0;31"
  • 需完成以下系统配置

    • 将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc 和 noatime 挂载参数
    • 检测及安装 NTP 服务
    • 创建部署用户tidb,并设置免密sudo,以及ssh免密互信

二、集群部署

使用 TiUP 自动化部署(推荐)

------我这里是联网部署,如果是离线的请参考官方制作离线镜像)

  • tiup安装部署
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source .bash_profile
which tiup
tiup cluster
tiup update --self && tiup update cluster
tiup --binary cluster
  • tidb集群部署
version=v8.5.1
tiup mirror clone tidb-community-server-${version}-linux-arm ${version} --os=linux --arch=arm64
cd tidb-community-server-v8.5.1-linux-arm/
bash local_install.sh 
source /home/tidb/.bash_profile

创建部署文件topology.yaml 我们目前是在一台鲲鹏的服务器上试用

global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/data1/tidb-deploy"
  data_dir: "/data1/tidb-data"
  listen_host: 0.0.0.0
  arch: "arm64"
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:
  tidb:
    log.level: "warn"
    log.file.max-days: 7
    log.slow-threshold: 300
    max-index-length: 12288
    mem-quota-query: 5368709120
    performance.txn-total-size-limit: 5368709120
    prepared-plan-cache.enabled: true
  tikv:
    log.level: "warn"
    storage.block-cache.capacity: 30GB
  pd:
    replication.location-labels:
        - host
pd_servers:
  - host: xx.x.xx.xx
    name: "pd-1"
    deploy_dir: "/data1/tidb-deploy/pd-2379"
    data_dir: "/data1/tidb-data/pd-2379"
    log_dir: "/data1/tidb-deploy/pd-2379/log"
tidb_servers:
  - host: xx.x.xx.xx
    port: 4000
    status_port: 10080
    deploy_dir: "/data1/tidb-deploy/tidb-4000"
    log_dir: "/data1/tidb-deploy/tidb-4000/log"
tikv_servers:
  - host: xx.x.xx.xx
    port: 20160
    status_port: 20180
    deploy_dir: "/data2/tidb-deploy/tikv-20160"
    data_dir: "/data2/tidb-data/tikv-20160"
    log_dir: "/data2/tidb-deploy/tikv-20160/log"
    config:
      log.level: warn
tiflash_servers:
  - host: xx.x.xx.xx
    ssh_port: 22
    tcp_port: 9000
    flash_service_port: 3930
    flash_proxy_port: 20170
    flash_proxy_status_port: 20292
    metrics_port: 8234
    deploy_dir: /data3/tidb-deploy/tiflash-9000
    data_dir: /data3/tidb-data/tiflash-9000
    log_dir: /data3/tidb-deploy/tiflash-9000/log
kvcdc_servers:
  - host: xx.x.xx.xx
    ssh_port: 22
    port: 8600
    data_dir: "/data1/tidb-data/tikv-cdc-8600"
    log_dir: "/data1/tidb-deploy/tikv-cdc-8600/log"
monitoring_servers:
  - host: xx.x.xx.xx
    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: xx.x.xx.xx
    deploy_dir: "/data1/tidb-deploy/grafana-3000"
alertmanager_servers:
  - host: xx.x.xx.xx
    deploy_dir: "/data1/tidb-deploy/alertmanager-9093"
    data_dir: "/data1/tidb-data/alertmanager-9093"
    log_dir: "/data1/tidb-deploy/alertmanager-9093/log"
    config_file: "/data1/tidb-deploy/alertmanager-9093/bin/alertmanager/alertmanager.yml"

安装集群并启动

tiup cluster check ./topology.yaml --user tidb
tiup cluster check ./topology.yaml --apply --user tidb
sudo yum install numactl
tiup cluster check ./topology.yaml --user tidb

2025-05-29_100542.jpg

tiup cluster deploy tidb-test v8.5.1 ./topology.yaml --user tidb
tiup cluster start tidb-test --init

三、集群验证

1. 状态检查

tiup cluster display tidb-test

2025-05-28_174422.jpg

2. 基础功能测试

  • 安装一个mysql客户端
sudo dnf update
sudo dnf install mysql

通过 MySQL 客户端连接

mysql -h xx.x.xx.xx -P 4000 -u root -pxxx
-- 创建测试数据
CREATE DATABASE test;
USE test;
CREATE TABLE user (id INT PRIMARY KEY, name VARCHAR(20));
INSERT INTO user VALUES (1, '鲲鹏用户');
SELECT * FROM user;


-- 创建 TiFlash 副本(列存引擎)
ALTER TABLE user SET TIFLASH REPLICA 1;

四、常见问题解决

问题现象 解决方案
ARM 架构兼容性警告 确认 TiDB 版本 ≥ v5.0(原生支持 ARM)
PD 节点选举异常 检查 NTP 时间同步(偏差需 ≤500ms)
TiKV 存储性能不足 调整 rocksdb.max-background-jobs 参数

五、最佳实践建议

  • 网络优化:建议使用 RDMA 网络(鲲鹏服务器优势)降低 TiKV 延迟
  • 监控体系:集成 Prometheus + Grafana(自动部署)监控 QPS/延迟/存储水位
  • 备份策略:使用 cdc同步数据到备份集群,保证数据安全

0
1
1
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论