一、安装前主机准备操作
1. 挂载磁盘(ext4格式)
# 创建/data文件夹
cd /
mkdir data
# 查看数据盘
df -h
fdisk -l
# 创建分区
parted -s -a optimal /dev/vdb mklabel gpt -- mkpart primary ext4 1 -1
# 格式化磁盘
mkfs.ext4 /dev/vdb
# 查看磁盘的UUID
lsblk -f
# 编辑/etc/fstab 文件,添加nodelaalloc挂载参数
vi /etc/fstab
写入文件
UUID=aa30ca38-c3f3-4ea7-a249-5c63ee73c4eb /data ext4 defaults,nodelalloc,noatime 0 2
# 挂载
mount -a
# 执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc,则表示已生效
mount -t ext4
查询返回值
/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
2.关闭系统swap
TiDB 运行需要有足够的内存。如果内存不足,不建议使用 swap 作为内存不足的缓冲,因为这会降低性能。建议永久关闭系统 swap。
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p
3. 关闭防火墙
# 检查防火墙状态
sudo systemctl status firewalld.service
# 关闭防火墙服务
sudo systemctl stop firewalld.service
# 关闭防火墙自动启动服务
sudo systemctl disable firewalld.service
4. 时间同步
# 下载安装ntpdate
sudo yum install ntp ntpdate
# 启动 ntpdate
sudo systemctl start ntpd.service
# 设置开机自动启动
sudo systemctl enable ntpd.service
-----------------------------------------------
# 设置同步地址
ntpdate -u cn.pool.ntp.org
# 启动服务
service ntpd start
# 将系统时间同步到硬件时钟
hwclock --systohc(或-w)
二、配置操作系统优化参数
1. 查看透明大页的开启状态
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# [always] madvise never 表示透明大页处于启用状态
2. 查看数据目录所在磁盘的 I/O 调度器
cat /sys/block/sd[bc]/queue/scheduler
noop [deadline] cfq
noop [deadline] cfq
# noop [deadline] cfq 表示磁盘的 I/O 调度器使用 deadline
3. 查看磁盘的唯一标识 ID_SERIAL
udevadm info --name=/dev/sdb | grep ID_SERIAL
E: ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81
E: ID_SERIAL_SHORT=6d0946606d79f90025f3e09a0c1f9e81
# /dev/sdb是挂载的磁盘名
4. 查看 cpufreq 模块选用的节能策略
cpupower frequency-info --policy
analyzing CPU 0:
current policy: frequency should be within 1.20 GHz and 3.10 GHz.
The governor "powersave" may decide which speed to use within this range.
5. 配置系统优化参数
使用 tuned(推荐) 1.执行tuned-adm list命令查看当前操作系统的 tuned 策略。
tuned-adm list
2.创建新的 tuned 策略。
mkdir /etc/tuned/balanced-tidb-optimal/
vi /etc/tuned/balanced-tidb-optimal/tuned.conf
[main]
include=balanced
[cpu]
governor=performance
[vm]
transparent_hugepages=never
[disk]
devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81)
elevator=noop
include=balanced表示在现有的 balanced 策略基础上添加操作系统优化配置。
3.应用新的 tuned 策略。
tuned-adm profile balanced-tidb-optimal
6. 执行以下命令修改 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
7. 配置用户的 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
8. 手动配置 SSH免密
在安装tidb数据库的Linux主机中创建tidb用户,设置密码为tidb。 配置好中控机与其他tidb主机节点之间的ssh免密.
三、安装 numactl 工具
1. 在线安装numactl 工具
在生产环境中,因为硬件机器配置往往高于需求,为了更合理规划资源,会考虑单机多实例部署 TiDB 或者 TiKV。NUMA 绑核工具的使用,主要为了防止 CPU 资源的争抢,引发性能衰退
yum -y install numactl
# 工具名称
numactl.x86_64 0:2.0.12-5.el7
2. 离线安装numactl 工具
#numactl工具下载地址
http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/numactl-2.0.12-5.el7.x86_64.rpm
# 安装numactl工具
rpm -ivh numactl-2.0.12-5.el7.x86_64.rpm
四、在中控机上部署
1. 下载离线包
在官方下载页面选择对应版本的 TiDB server 离线镜像包 https://pingcap.com/zh/product-community/
# 离线安装包
tidb-community-server-v5.2.2-linux-amd64.tar.gz
# 数据备份工具
tidb-community-toolkit-v5.2.2-linux-amd64.tar.gz
2. 执行以下命令安装 TiUP 组件
tar xzvf tidb-community-server-v5.2.2-linux-amd64.tar.gz
sh tidb-community-server-v5.2.2-linux-amd64/local_install.sh
# 如果是使用tidb用户安装。使用这个命令
source /home/tidb/.bash_profile
# 如果是使用root用户安装。使用这个命令
source /root/.bash_profile
# 查看tiup的位置
which tiup
3. 初始化集群拓扑文件
集群初始化配置文件可以通过 TiUP 工具在中控机上面创建 YAML 格式配置文件,例如 topology.yaml
tiup cluster template > topology.yaml
执行 vi topology.yaml,查看配置文件的内容:
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
server_configs: {}
pd_servers:
- host: 10.0.1.4
- host: 10.0.1.5
- host: 10.0.1.6
tidb_servers:
- host: 10.0.1.7
- host: 10.0.1.8
- host: 10.0.1.9
tikv_servers:
- host: 10.0.1.1
- host: 10.0.1.2
- host: 10.0.1.3
monitoring_servers:
- host: 10.0.1.4
grafana_servers:
- host: 10.0.1.4
alertmanager_servers:
- host: 10.0.1.4
4. 检查和自动修复风险
# 执行 deploy 命令前,先使用 check 及 check --apply 命令,检查和自动修复集群存在的潜在风险:
tiup cluster check ./topology.yaml --user tidb -p
tiup cluster check ./topology.yaml --apply --user tidb -p
tidb用户为Linux主机的用户,密码为tidb。
5. 执行部署命令
# 执行部署命令
tiup cluster deploy tidb-test v5.2.2 ./topology.yaml --user tidb -p
6. 查看 TiUP 管理的集群情况
tiup cluster list
TiUP 支持管理多个 TiDB 集群,该命令会输出当前通过 TiUP cluster 管理的所有集群信息,包括集群名称、部署用户、版本、密钥信息等:
Starting /home/tidb/.tiup/components/cluster/v1.5.0/cluster list
Name User Version Path PrivateKey
---- ---- ------- ---- ----------
tidb-test tidb v5.2.2 /home/tidb/.tiup/storage/cluster/clusters/tidb-test /home/tidb/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa
7. 检查 tidb-test 集群情况
#执行如下命令检查 tidb-test 集群情况
tiup cluster display tidb-test
预期输出包括 tidb-test 集群中实例 ID、角色、主机、监听端口和状态(由于还未启动,所以状态为 Down/inactive)、目录信息。
# 启动集群
tiup cluster start tidb-test
当这个集群状态展示都是UP时,那么恭喜你,你已经完成了tidb数据库的离线安装。
五、在面板上查看集群状态
1.查看 TiDB Dashboard
在浏览器中输入:http://{IP地址}:2379/dashboard 登录用户和口令为 TiDB 数据库 root 用户和口令。如果你修改过数据库的 root 密码,则以修改后的密码为准,默认密码为空。 主页面显示 TiDB 集群中节点信息
2. 查看 Grafana 监控
在浏览器中输入:http://{IP地址}:3000/login
通过 {Grafana-ip}:3000登录 Grafana 监控,默认用户名及密码为 admin/admin。
点击 Overview 监控页面检查 TiDB 端口和负载监控信息