TiDB >> TiDB测试集群搭建

文章目录

      • TiDB集群搭建(ansible)
        • 简介
        • 机器准备
        • 集群架构
        • 集群版本
        • 部署前准备
        • 中控机配置
        • 节点机器配置
        • 集群部署
        • 集群测试
        • 总结

TiDB集群搭建(ansible)

简介

因工作需要搭建TiDB集群进行测试,所以简单记录下搭建过程,详细部署过程也可以参考官方文档(链接在文末)。

机器准备

  • 10.0.0.29
  • 10.0.0.189
  • 10.0.0.190

现用三台测试机搭建TiDB集群, 以上非真实IP地址。

系统版本:
CentOS Linux release 7.2.1511 (Core)

集群架构

TiDB >> TiDB测试集群搭建_第1张图片

架构示意图

模块实例配置:

  • TiDB x 3
  • PD x 3
  • TiKV x 3

模块组件各三个实例

集群版本

release-2.0-new-binlog

该版本使用新的TiDB-Binlog集群部署方式,不再依赖kafka集群。

部署前准备

确保三台服务器内网互通:

# IP地址文本
$ cat IP.txt
10.0.0.29
10.0.0.189
10.0.0.190

# 三台服务器都查看是否连通
$ cat IP.txt | xargs -i ping -c 1 -q {} |grep loss

1 packets transmitted, 1 received, 0% packet loss, time 0ms
1 packets transmitted, 1 received, 0% packet loss, time 0ms
1 packets transmitted, 1 received, 0% packet loss, time 0ms

中控机配置

用于执行部署操作,可用任意一台节点服务器进行配置

  1. 系统依赖包
$ yum -y install epel-release git curl sshpass`
$ yum -y install python-pip
  1. 创建用户,生成ssh key
# 创建tidb用户
$ useradd -m -d /home/tidb tidb

# 设置密码
$ passwd tidb

# 配置该用户sudo免密规则
$ vim /etc/sudoers
tidb ALL=(ALL) NOPASSWD: ALL

# 切换到tidb用户下,生成ssh key(id_rsa, id_rsa.pub), 直接回车。
$ su - tidb
$ ssh-keygen -t rsa
$ ls ~/.ssh/
authorized_keys  id_rsa  id_rsa.pub  known_hosts
  1. 下载TiDB-Ansible
# 下载版本 release-2.0-new-binlog
# 为方便日后配置管理及数据保存,将部署文件夹拷贝至/data下(root操作)
$ cd /data
$ git clone -b release-2.0-new-binlog https://github.com/pingcap/tidb-ansible.git

# 修改文件夹属主属组
$ chown -R tidb:tidb tidb-ansible
  1. 安装Ansible及依赖
$ su - tidb
$ cd /data/tidb-ansible
$ sudo pip install -r ./requirements.txt

# 安装完成后,查看ansible版本
$ ansible --version
ansible 2.6.16
...

release-2.0版本兼容ansible 2.4 、2.5、2.6,Ansible 及相关依赖版本记录在 tidb-ansible/requirements.txt 文件中。

  1. 配置节点机器ssh互信及sudo规则.
$ cd /data/tidb-ansible
$ vim hosts.ini
[servers]
10.0.0.29
10.0.0.189
10.0.0.190

[all:vars]
username = tidb
...

# 执行playbook,配置节点机器ssh互信和sudo免密规则,该操作需要输入节点机器的root密码
$ ansible-playbook -i hosts.ini create_users.yml -u root -k

节点机器配置

  1. ssh及sudo

详见上一步,无root密码,需手动逐台节点配置。

  1. CPUfreq调节器配置

为让CPU发挥最大性能,需将调节器设置为peformance模式

# 查看系统支持调节器的模式
$ cpupower frequency-info --governors

analyzing CPU 0:
performance powersave

# 查看当前模式
$ cpupower frequency-info --policy

analyzing CPU 0:
1200000 3200000 performance

# 若需要修改则使用以下两种方式
# 命令配置
$ cpupower frequency-set --governor performance

# ansible
$ ansible -i hosts.ini all -m shell -a "cpupower frequency-set --governor performance" -u tidb -b
  1. 数据盘格式化及挂载

由于是测试集群,这块配置先忽略

集群部署

  1. 修改inventory.ini
# 配置集群
$ vim /data/tidb-ansible/inventory.ini

[tidb_servers]
10.0.0.29
10.0.0.189
10.0.0.190

[tikv_servers]
10.0.0.29
10.0.0.189
10.0.0.190

[pd_servers]
10.0.0.29
10.0.0.189
10.0.0.190

[monitoring_servers]
10.0.0.29

[grafana_servers]
10.0.0.29

# node_exporter and blackbox_exporter servers
[monitored_servers]
10.0.0.29
10.0.0.189
10.0.0.190

## Binlog Part
[pump_servers]
10.0.0.29
10.0.0.189
10.0.0.190

## Global variables(修改数据存储目录)
[all:vars]
deploy_dir = /data/tidb/deploy

## Connection
# 修改集群名称
cluster_name = tidb-test

## binlog trigger(开启binlog)
enable_binlog = True

# store slow query log into seperate file
enable_slow_query_log = True
...

以上为配置修改,其余保持默认即可

  1. 关闭初始化中SSD硬盘检测

tidb集群部署需要SSD硬件支持,默认会检测设备,但检测要求过高,测试集群可以先忽略。

$ vim /data/tidb-ansible/bootstrap.yml

# 注释掉下面这部分
#- name: tikv_servers machine benchmark
#  hosts: tikv_servers
#  gather_facts: false
#  roles:
#    - { role: machine_benchmark, when: not dev_mode|default(false) }
  1. 集群部署
# 测试节点间ssh互信, 返回tidb即成功。
$ ansible -i inventory.ini all -m shell -a 'whoami'

# 测试节点间sudo免密
$ ansible -i inventory.ini all -m shell -a 'whoami' -b

# 下载TiDB binary到中控机
$ ansible-playbook local_prepare.yml

# 系统环境初始化,修改内核参数
$ ansible-playbook bootstrap.yml

# 部署TiDB集群软件
$ ansible-playbook deploy.yml

# 启动集群
$ ansible-playbook start.yml

集群测试

通过mysql client连接TiDB集群测试

$ mysql -u root -h 10.0.0.29 -P 4000

测试成功

TiDB >> TiDB测试集群搭建_第2张图片

总结

TiDB集群的官方部署文档,对用户来说相当友好,一些部署或使用中的常见问题也有收录,有需要的朋友们可以阅读官方文档。

你可能感兴趣的:(TiDB)