写点什么

在华为 Kylin V10 SP1 操作系统,HUAWEI,Kunpeng 920 CPU(4Cores) 单机上模拟部署生产环境 TiDB 集群

  • 2022 年 7 月 11 日
  • 本文字数:3633 字

    阅读完需:约 12 分钟

作者: Chenqi 原文来源:https://tidb.net/blog/0cacc3df

TiDB 集群部署

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

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

1. 准备环境

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


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


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

1.1 最小规模的 TiDB 集群拓扑规划

| 实例 | 个数 | IP | 配置 || ——- | – | —————————————– | ———————————————————— || PD | 1 | 192.168.0.131 | 默认端口 || TiKV | 3 | 192.168.0.131 192.168.0.131 192.168.0.131 | 避免端口和目录冲突 || TiDB | 1 | 192.168.0.131 | 默认端口 || TiFlash | 1 | 192.168.0.131 | 默认端口 (这里不配置 TiFlash 实例) || Monitor | 1 | 192.168.0.131 | Grafana:3003 (默认 3000)、 Prometheus:9099(默认 9090),默认端口 Ambari 已占用 |


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

1.2 部署主机软件和环境要求配置

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


$ cat initTiDB.sh #!/bin/bashclose_swap() {        echo "检测及关闭系统 swap"        sudo echo "vm.swappiness = 0" >> /etc/sysctl.conf        swapoff -a && swapon -a        sysctl -p        echo "系统 swap 已关闭"}close_firewall() {        echo "关闭及检测目标部署机器的防火墙"        sudo systemctl stop firewalld.service        sudo systemctl disable firewalld.service        sudo systemctl status firewalld.service        echo "目标部署机器的防火墙已关闭"}ntp_service() {        #read -p "Please input a ntp_server_ip:" ntp_server_ip        #sudo systemctl stop ntpd.service        #sudo ntpdate ${ntp_server_ip}         sudo systemctl restart ntpd.service        sudo systemctl enable ntpd.service        echo "检查ntp服务器的连通性"        ntpq -p}csop() {        echo "配置系统优化参数..."        echo "查看当前操作系统的 tuned 策略"        tuned-adm list        echo "创建新的 tuned 策略"        mkdir /etc/tuned/balanced-tidb-optimal/        touch /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "[main]" > /etc/tuned/balanced-tidb-optimal/tuned.conf        echo "include=balanced" >> /etc/tuned/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 profile balanced-tidb-optimal        echo "验证透明大页的状态: 是否为never"        cat /sys/kernel/mm/transparent_hugepage/enabled        echo "验证数据目录所在磁盘的 I/O 调度器:是否为noop "        cat /sys/block/sd[bc]/queue/scheduler        echo "查看 cpufreq 模块选用的节能策略: performance模式"        cpupower frequency-info --policy        echo "如果是虚拟机或者云主机,则不需要调整,命令输出通常为 Unable to determine current policy"        echo "配置系统参数优化完成..."}modify_sysctl() {        echo "修改 sysctl 参数..."        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 参数完成..."}limits_conf() {        echo "配置用户的 limits.conf 文件"        echo "tidb           soft    nofile          1000000" >>/etc/security/limits.conf        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/limits.conf        echo "limits.conf 文件配置完成"}useradd_tidb() {        echo "增加tidb用户"        sudo useradd tidb        sudo sh -c 'echo "tidb ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'        echo "password"        sleep 6        sudo passwd tidb}echo "TiDB 环境与系统配置检查开始..."echo "1.close_swap Start"close_swapecho "close_swap End"echo " "echo "2.close_firewall Start"close_firewallecho "close_firewall End"echo " "echo "3.ntp_service Start"ntp_serviceecho "ntp_service End"echo " "echo "4.csop Start"csopecho "csop End"echo " "echo "5.modify_sysctl Start"modify_sysctlecho "modify_sysctl End"echo " "echo "6.limits_conf Start"limits_confecho "limits_conf End"echo " "echo "7.useradd_tidb Start"useradd_tidbecho "useradd_tidb End"echo " "echo "TiDB 环境与系统配置检查完成......"
复制代码

2. 实施部署

2.1 部署管理工具 TiUP

  • 下载并安装 (在线):

  • 声明全局环境变量:

  • 安装 TiUP 的 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配置文件:

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

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

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

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

  • 执行集群部署命令:


按照引导来完成部署。


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


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


  # 集群启动  tiup cluster start tidbsingle
复制代码

2.3 访问集群

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

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

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


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

  • 访问 TiDB 的 Grafana 监控:

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


2.4 管理集群

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

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

  • 执行以下命令停止集群:

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


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

TiDB 社区官网:https://tidb.net/ 2021.12.15 加入

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

评论

发布
暂无评论
在华为 Kylin V10 SP1操作系统,HUAWEI,Kunpeng 920 CPU(4Cores)单机上模拟部署生产环境TiDB集群_集群管理_TiDB 社区干货传送门_InfoQ写作社区