华为 Kylin V10 SP1 操作系统上模拟部署 TiDB 集群的实践

网友投稿 311 2024-03-06



TiDB 集群部署

在单机上模拟部署生产环境集群

适用场景:希望用单台 Linux 服务器,体验 TiDB 最小的完整拓扑的集群,并模拟生产环境下的部署步骤。

*** Kylin V10 SP1 操作系统上模拟部署 TiDB 集群的实践

1. 准备环境

准备一台部署主机,确保其软件满足需求:

Linux 类机器:这里采用的是*** Kylin V10 SP1操作系统,HUAWEI,Kunpeng 920CPU(4Cores)

Linux 操作系统开放外网访问,用于下载 TiDB 及相关软件安装包

1.1 最小规模的 TiDB 集群拓扑规划实例个数IP配置PD1192.168.0.131默认端口TiKV3192.168.0.131 192.168.0.131 192.168.0.131避免端口和目录冲突TiDB1192.168.0.131默认端口TiFlash1192.168.0.131默认端口 (这里不配置 TiFlash实例)Monitor1192.168.0.131Grafana:3003 (默认3000)、 Prometheus:9099(默认9090),默认端口Ambari已占用

拓扑文件配置模板:(topo.yaml)

global: user: "tidb" ssh_port: 22 ssh_type: monitored: node_exporter_port: 9100 blackbox_exporter_port: 9115 deploy_dir: /data/tidb/tidb-deploy/monitor-9100 data_dir: /data/tidb/tidb-data/monitor-9100 orage.use-unified-pool: false   readpool.coprocessor.use-unified-pool: true pd:   replication.enable-placement-rules: true   replication.location-labels: ["host"]   deploy_dir: /data/tidb/tidb-deploy/pd-2379   data_dir: /data/tidb/tidb-data/pd-2379   log_dir: /data/tidb/tidb-deploy/pd-2379/log   arch: arm64   os: linux tidb_servers: - host: 192.168.0.131   ssh_port: 22   port: 4000   status_port: 10080   deploy_dir: /data/tidb/tidb-deploy/tidb-4000 _port: 22 port: 20160 status_port: 20180 deploy_dir: /data/tidb/tidb-deploy/tikv-20160 data_dir: /data/tidb/tidb-data/tikv-20160 log_dir: /data/tidb/tidb-deploy/tikv-20160/log config:   server.labels:     host: logic-host-1 arch: arm64 os: linux - host: 192.168.0.131 ssh_port: 22 port: 20161 status_port: 20181 deploy_dir: /data/tidb/tidb-deploy/tikv-20161 data_dir: /data/tidb/tidb-data/tikv-20161 log_dir: /data/tidb/tidb-deploy/tikv-20161/log config:   server.labels:     host: logic-host-2 arch: arm64 os: linux - host: 192.168.0.131 ssh_port: 22 port: 20162 status_port: 20182 deploy_dir: /data/tidb/tidb-deploy/tikv-20162 data_dir: /data/tidb/tidb-data/tikv-20162 log_dir: /data/tinitoring_servers: - host: 192.168.0.131   ssh_port: 22   port: 9099   deploy_dir: /data/tidb/tidb-deploy/prometheus-9099   data_dir: /data/tidb/tidb-data/prometvers: - host: 192.168.0.131   ssh_port: 22   port: 3003   deploy_dir: /data/tidb/tidb-deploy/grafana-3003   arch: arm64   os: linux   username: admin   password: admin   anonymous_enable: false   root_url: ""   domain: ""1.2 部署主机软件和环境要求配置

根据 TiDB 软硬件环境配置建议优化系统配置,可直接执行脚本进行初始化硬件环境:

$ cat initTiD        sudo systemctl stop firewalld.service        sudo systemctl disable firewalld.service        sudo systemctl status firewalld.service        echo "目标部署机器的防火墙已关闭" } csop() {        echo "配置系统优化参数..."        echo "查看当前操作系统的 tuned 策略"       tuned-adm list        echo "创建新的 tuned 策略"        mkdir /etc/tuned/balan/balanced-tidb-optimal/tuned.conf        echo "[cpu]" >> /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "governor=performance" >> /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "[vm]" >> /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "transparent_hugepages=never" >> /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "[disk]" >> /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "elevator=noop" >> /etc/tuned/balanced-tidb-optimal/tuned.conf                echo "新的 tuned 策略创建完成. 查看请执行 cat /etc/tuned/balanced-tidb-optimal/tuned.conf"        echo "应用新的 tuned 策略"       tuned-adm pr        echo "fs.file-max = 1000000">> /etc/sysctl.conf        echo "net.core.somaxconn = 32768">> /etc/sysctl.conf        echo "net.ipv4.tcp_tw_recycle = 0">> /etc/sysctl.conf        echo "net.ipv4.tcp_syncookies = 0">> /etc/sysctl.conf        echo "vm.overcommit_memory = 1">> /etc/sysctl.conf        echo "执行 sysctl -p 命令在不重启的情况下使配置生效"       sysctl -p        echo "修改 sysctl 参数完成..."    echo "tidb           hard   nofile         1000000" >>/etc/security/limits.conf        echo "tidb           soft   stack         32768" >>/etc/security/limits.conf        echo "tidb           hard   stack         32768" >>/etc/security/limitd tidb        sudo sh -c echo "tidb ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers        echo "password"        sleep 6        sudo passwd tidb }

2. 实施部署

2.1 部署管理工具 TiUP

下载并安装 (在线):

curl --proto =https --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

声明全局环境变量:

source /home/tidb/.bash_profile

安装 TiUP 的 cluster 组件:

tiup cluster tiup update --self && tiup update cluster

注:由于模拟多机部署,需要通过 root 用户调大 sshd 服务的连接数限制:

修改 /etc/ssh/sshd_configMaxSessions 调至 20。

cat /etc/ssh/sshd_config | grep MaxSessions sudo vim /etc/ssh/sshd_config # 查找 MaxSessions 并修改数量 ,默认是10 ,我个人修改为 30 了   :/MaxSessions # vim ESC模式下查找关键词2.2 创建并启动集群

提前规划:

集群名称:tidbsingle

TiDB 版本:v5.0.0 ,可以通过 tiup list tidb 命令来查看当前支持部署的 TiDB 版本

TiDB 部署空间:该规模集群初始化时会占用21.1G左右磁盘空间,需要有基础保障。

按照拓扑文件配置模板创建topo.yaml配置文件:

su tidb touch topo.yaml

执行部署前检查 (check)集群存在的潜在风险:

tiup cluster check ./topo.yaml --user tidb

执行部署前自动修复 (check --apply)集群存在的潜在风险:

tiup cluster check ./topo.yaml --apply --user tidb

上边两个步骤出现的一些潜在风险,在测试集群中可以不处理!

值得一提的是:上面的检查会出现不支持麒麟系统的提示,可以不用管,官方人员说可以支持麒麟和鲲鹏系统,实验也是支持的。

执行集群部署命令:

tiup cluster deploy tidbsingle v5.0.0 ./topo.yaml --user tidb -p

按照引导来完成部署。

这种模式的集群部署第一次需要执行以下方式进行初始化启动:

tiup cluster start tidbsingle --init # 服务启动超时情况出现的话,先按照提示查看日志文件,根据 welcome 和 error 关键词定位异常;如果是单纯的超时可以多试几次

第一次初始化启动会提示数据库root用户的初始密码;之后每次集群启动就不需要指定 --init

# 集群启动 tiup cluster start tidbsingle2.3 访问集群

MySQL 客户端(黑屏模式)连接,因为TiDB兼容MySQL,这种模式当下流行且方便:

mysql -h 192.168.0.131 -P 4000 -u root -p Enter password: 这里输入第一次初始化启动生成的密码!

这里引入 数据库root用户的修改:

# 使用 mysql 库 use mysql; # select User,Host,authentication_string from mysql.user; # 修改密码为xxxxxxxxxx alter user root@% identified by password; # 刷新 flush privileges; # 退出连接 exit

数据库连接应用连接,按照MySQL模式进行连接配置:

因为这里采用的是云服务器,所以IP不一样是正常情况!

访问 TiDB 的 Grafana 监控:

通过 http://{ip}:3003/login访问集群 Grafana 监控页面,默认用户名和密码在拓扑文件中设置均为 admin(默认)。

访问 TiDB 的 Dashboard:

通过http://{IP}:2379/dashboard/#/signin访问集群 TiDB Dashboard 监控页面,默认用户名为 root,密码为数据库密码。

2.4 管理集群

执行以下命令确认当前已经部署的集群列表:

tiup cluster list

执行以下命令查看集群的拓扑结构和状态:

tiup cluster display tidbsingle

执行以下命令停止集群:

tiup cluster stop tidbsingle

执行以下命令销毁集群(数据全丢,注意执行条件):

tiup cluster destroy tidbsingle

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:十大理由告诉你为什么选择TiDB是最佳选择
下一篇:单机8个NUMA节点如何玩转 TiDB AMD EPYC服务器上的 TiDB 集群最优部署拓扑探索
相关文章