TiDB部署

参照官方教程  https://learn.pingcap.com/learner/course/30002

本次部署TIDB 共包含1个TIDB,3个PD,3个TIKV

Linux版本 CentOS-7-x86_64-Minimal-2009.iso

TiDB版本v1.5.4

虚拟机环境配置:

TiDB部署_第1张图片

这里记得把网络打开 ,自动配置就好,不然一会装好了还得单配置网卡信息

TiDB部署_第2张图片

 TiDB部署_第3张图片

安装tiup

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

TiDB部署_第4张图片

生效全局变量

source /root/.bash_profile

安装cluster组件

tiup cluster

更新tiup工具 以及 cluster组件

tiup update --self && tiup update cluster

查看版本

tiup --binary cluster

生成集群拓扑文件

tiup cluster template > topology.yaml

 修改集群节点 vi topology.yaml

TiDB部署_第5张图片

TiDB部署_第6张图片

TiDB部署_第7张图片

Tiflash 目前没有,就先注释了 

TiDB部署_第8张图片

 TiDB部署_第9张图片

配置完后 系统检查一下

tiup cluster check ./topology.yaml --apply --user root -p

TiDB部署_第10张图片

好多问题啊 红色的全是检查不通过的

用这个手册配置一下,这个是装好系统后需要配置的,我试试不配能不能行,果然不行,检查不通过,还是老老实实配一下吧TiDB Environment and System Configuration Check | PingCAP Docshttps://docs.pingcap.com/tidb/stable/check-before-deployment

 TiDB部署_第11张图片

一.在部署 TiKV 的目标机器上使用选项挂载数据盘 ext4 文件系统

查看数据盘

fdisk -l

TiDB部署_第12张图片

创建分区

parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1

这个由于只有一块磁盘,每次分区的时候总提示正在使用 无法分区,然后又加了一块磁盘 sdb sdb格式化就好了

parted -s -a optimal /dev/sdb mklabel gpt -- mkpart primary ext4 1 -1

TiDB部署_第13张图片

虚拟机添加sdb磁盘如下:

 TiDB部署_第14张图片

TiDB部署_第15张图片

TiDB部署_第16张图片

TiDB部署_第17张图片

TiDB部署_第18张图片

TiDB部署_第19张图片

 TiDB部署_第20张图片

TiDB部署_第21张图片

 将数据盘格式化为ext4文件系统

mkfs.ext4 /dev/sdb

 查看数据盘的分区UUID

lsblk -f

TiDB部署_第22张图片

 编辑/etc/fstab文件并添加nodelalloc挂载选项

vi /etc/fstab

TiDB部署_第23张图片

挂载数据盘

mkdir /data1 && \
mount -a

使用以下命令检查

mount -t ext4

 二.检查并禁用系统交换

echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p

三.检查并停止目标机器的防火墙服务

检查防火墙状态

sudo firewall-cmd --state
sudo systemctl status firewalld.service

停止防火墙服务

sudo systemctl stop firewalld.service

禁用防火墙服务的自动启动

sudo systemctl disable firewalld.service

 检查防火墙状态

sudo systemctl status firewalld.service

TiDB部署_第24张图片

.检查并安装NTP服务

手动安装NTP服务

sudo yum install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service

检查NTP服务是否安装,与NTP服务器同步是否正常

运行以下命令。如果返回running,则 NTP 服务正在运行

sudo systemctl status ntpd.service

 执行ntpstat命令检查NTP服务是否与NTP服务器同步

ntpstat

TiDB部署_第25张图片

五.检查和配置操作系统的最佳参数

执行以下命令查看THP是开启还是关闭:

cat /sys/kernel/mm/transparent_hugepage/enabled

如果[always] madvise never是输出,则启用 THP。你需要禁用它

 执行以下命令可以查看数据目录所在磁盘的I/O Scheduler。假设您在 sdb 和 sdc 磁盘上都创建了数据目录:

cat /sys/block/sd[bc]/queue/scheduler

如果noop [deadline] cfq是输出,则磁盘的 I/O 调度程序处于deadline模式。您需要将其更改为noop

执行以下命令查看ID_SERIAL磁盘

udevadm info --name=/dev/sdb | grep ID_SERIAL
E: ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81
E: ID_SERIAL_SHORT=6d0946606d79f90025f3e09a0c1f9e81这个在我都虚拟机上是查不出来的

 执行以下命令查看cpufreq模块的电源策略

cpupower frequency-info --policy

配置操作系统的最佳参数

tuned-adm list

TiDB部署_第26张图片

 创建一个新的调整配置文件

mkdir /etc/tuned/virtual-guest-tidb-optimal/
vi /etc/tuned/virtual-guest-tidb-optimal/tuned.conf
[main]
include=virtual-guest
[cpu]
governor=performance
[vm]
transparent_hugepages=never
[disk]
devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81) 这个不清楚怎么才能查到  这里我就不写了 这行删掉
elevator=noop

应用新调整的配置文件

tuned-adm profile virtual-guest-tidb-optimal

TiDB部署_第27张图片

 执行以下命令以验证 THP 状态

cat /sys/kernel/mm/transparent_hugepage/enabled

执行以下命令验证数据目录所在磁盘的I/O Scheduler

cat /sys/block/sd[bc]/queue/scheduler

执行以下命令查看cpufreq模块的电源策略

cpupower frequency-info --policy

执行以下命令修改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
sysctl -p

执行以下命令配置用户的limits.conf文件

cat << EOF >>/etc/security/limits.conf
tidb           soft    nofile          1000000
tidb           hard    nofile          1000000
tidb           soft    stack          32768
tidb           hard    stack          32768
EOF

六.手动配置SSH互信和sudo无密码

分别使用root用户账号登录目标机器,创建tidb用户并设置登录密码

useradd tidb && \passwd tidb

要配置不带密码的 sudo,请运行以下命令,并添加tidb ALL=(ALL) NOPASSWD: ALL到文件末尾

visudo
tidb ALL=(ALL) NOPASSWD: ALL

使用tidb用户登录中控机,运行以下命令。替换10.0.1.1为您的目标机器的IP,并tidb根据提示输入目标机器的用户密码。执行该命令后,SSH 互信已经建立。这也适用于其他机器。新创建的tidb用户没有该.ssh目录。要创建这样的目录,请执行生成 RSA 密钥的命令。要在中控机上部署 TiDB 组件,需要为中控机和中控机配置互信

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1

使用tidb用户账号登录中控机,使用登录目标机IP ssh。如果不需要输入密码也能成功登录,则说明SSH互信配置成功。

ssh 10.0.1.1

使用tidb用户登录目标机器后,运行以下命令。如果不需要输入密码,可以切换到root用户,那么sudo无密码tidb用户就配置成功了。

sudo -su root

TiDB部署_第28张图片

七.安装numactl工具

 登录目标节点进行安装。以 CentOS Linux 7.7.1908 (Core) 版本为例

sudo yum -y install numactl

运行exec命令 usingtiup cluster批量安装

tiup cluster exec --help

说明:要使用 sudo 权限对tidb-test集群中的所有目标机器执行安装命令,请运行以下命令

tiup cluster exec tidb-test --sudo --command "yum -y install numactl"

--------------------------准备工作完结--------------------------

上边这些准备工作做完了,又重新检查一下能否安装,发现还是有问题

TiDB部署_第29张图片

一个是swap is enabled  一个是will try to 'start irqbalance.service' 

禁用swap:

Vi /etc/fstab 
注释掉下面这行
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

临时关闭:

swapoff -a

开启irabalance  :

systemctl start irqbalance

TiDB部署_第30张图片

这个虚拟机在安装的时候 给的是1核  irqbalance怎么起都起不来,后来又加了1核 就好了 真坑 

TiDB部署_第31张图片

 禁用thp:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

TiDB部署_第32张图片

 终于检查通过了  真不容易 我的天

根据拓扑文件 部署tidb

tiup cluster deploy tidb-test v5.0.0 ./topology.yaml --user root -p

TiDB部署_第33张图片

 TiDB部署_第34张图片

TiDB部署_第35张图片

 查看集群信息

tiup cluster list

TiDB部署_第36张图片

 查看集群状态

tiup cluster display tidb-test

TiDB部署_第37张图片

 启动tidb

tiup cluster start tidb-test

TiDB部署_第38张图片

启动之后再看一下状态 一切正常

TiDB部署_第39张图片

参考文档:TiDB 简介 | PingCAP Docs了解 TiDB 数据库。TiDB部署_第40张图片https://docs.pingcap.com/zh/tidb/stable

你可能感兴趣的:(TiDB,数据库)