参考官网:https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements
一、在 TiKV 部署目标机器上添加数据盘 EXT4 文件系统挂载参数
生产环境部署,建议使用 EXT4 类型文件系统的 NVME 类型的 SSD 磁盘存储 TiKV 数据文件。这个配置方案为最佳实施方案,其可靠性、安全性、稳定性已经在大量线上场景中得到证实。

使用 root 用户登录目标机器,将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc 和 noatime 挂载参数。nodelalloc 是必选参数,否则 TiUP 安装时检测无法通过;noatime 是可选建议参数。

注意:

如果你的数据盘已经格式化成 ext4 并挂载了磁盘,可先执行 umount /dev/nvme0n1p1 命令卸载,从编辑 /etc/fstab 文件步骤开始执行,添加挂载参数重新挂载即可。

以 /dev/nvme0n1 数据盘为例,具体操作步骤如下:

1. 查看数据盘。
fdisk -l

2. 创建分区。
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1

注意:

使用 lsblk 命令查看分区的设备号:对于 nvme 磁盘,生成的分区设备号一般为 nvme0n1p1;对于普通磁盘(例如 /dev/sdb),生成的的分区设备号一般为 sdb1。

3.格式化文件系统。
mkfs.ext4 /dev/nvme0n1p1

4. 查看数据盘分区 UUID
lsblk -f
5. 编辑 /etc/fstab 文件,添加 nodelalloc 挂载参数。
vi /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2

6. 挂载数据盘。
mkdir /data1 && \ 
mount -a
7. 执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc,则表示已生效。
mount -t ext4 /dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)

8. 关闭系统 swap:
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p

9. 检查防火墙状态
firewall-cmd --state
systemctl status firewalld.service
10. 关闭防火墙服务
sudo systemctl stop firewalld.service
11. 关闭防火墙自动启动服务
sudo systemctl disable firewalld.service

12. 检查防火墙状态
sudo systemctl status firewalld.service

TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性

13. 安装ntp
yum install -y ntp
启动服务
systemctl start ntpd.service
systemctl status ntpd.service #查看状态
systemctl enable ntpd.service #开机自动启动启用

14. 配置 SSH 互信及 sudo 免密码

以 root 用户依次登录到部署目标机器创建 tidb 用户并设置登录密码。
useradd tidb && \
passwd tidb
CJk2w3e4r5t@q
执行以下命令,将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾,即配置好 sudo 免密码
visudo

%tidb ALL=(ALL) NOPASSWD: ALL

以 tidb 用户登录到中控机,执行以下命令。将 10.0.1.1 替换成你的部署目标机器 IP,按提示输入部署目标机器 tidb 用户密码,执行成功后即创建好 SSH 互信,其他机器同理

ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1

以 tidb 用户登录中控机,通过 ssh 的方式登录目标机器 IP。如果不需要输入密码并登录成功,即表示 SSH 互信配置成功。

ssh 10.0.1.1

以 tidb 用户登录到部署目标机器后,执行以下命令,不需要输入密码并切换到 root 用户,表示 tidb 用户 sudo 免密码配置成功。
sudo -su root

15. 安装 numactl 工具
登录到目标节点进行安装
sudo yum -y install numactl
通过 TiUP 的 cluster 执行完 exec 命令来完成批量安装
tiup cluster exec --help
将 tidb-test 集群所有目标主机通过 sudo 权限执行安装命令
tiup cluster exec tidb-test --sudo --command "yum -y install numactl"

二、TiUP 部署 TiDB 集群
1. 在中控机上安装 TiUP 组件
使用普通用户登录中控机,以 tidb 用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成:

执行如下命令安装 TiUP 工具:
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

2。 按如下步骤设置 TiUP 环境变量
重新声明全局环境变量:
source .bash_profile
确认 TiUP 工具是否安装:
which tiup
3. 安装 TiUP cluster 组件
tiup cluster
4. 如果已经安装,则更新 TiUP cluster 组件至最新版本:
tiup update --self && tiup update cluster
预期输出 “Update successfully!” 字样。

5. 验证当前 TiUP cluster 版本信息。执行如下命令查看 TiUP cluster 组件版本
tiup --binary cluster

三、编辑初始化配置文件,安装最小拓扑架构配置,请查看官方详细最小配置模板
https://docs.pingcap.com/zh/tidb/stable/minimal-deployment-topology

四、执行部署命令
注意:

通过 TiUP 进行集群部署可以使用密钥或者交互密码方式来进行安全认证:
如果是密钥方式,可以通过 -i 或者 --identity_file 来指定密钥的路径;
如果是密码方式,可以通过 -p 进入密码交互窗口;
如果已经配置免密登陆目标机,则不需填写认证。
一般情况下 TiUP 会在目标机器上创建 topology.yaml 中约定的用户和组,以下情况例外:
topology.yaml 中设置的用户名在目标机器上已存在。
在命令行上使用了参数 --skip-create-user 明确指定跳过创建用户的步骤。

tiup cluster deploy tidb-test v4.0.0 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]

以上部署命令中:

通过 TiUP cluster 部署的集群名称为 tidb-test
部署版本为 v4.0.0,最新版本可以通过执行 tiup list tidb 来查看 TiUP 支持的版本
初始化配置文件为 topology.yaml
--user root:通过 root 用户登录到目标主机完成集群部署,该用户需要有 ssh 到目标机器的权限,并且在目标机器有 sudo 权限。也可以用其他有 ssh 和 sudo 权限的用户完成部署。
[-i] 及 [-p]:非必选项,如果已经配置免密登陆目标机,则不需填写。否则选择其一即可,[-i] 为可登录到目标机的 root 用户(或 --user 指定的其他用户)的私钥,也可使用 [-p] 交互式输入该用户的密码
如果需要指定在目标机创建的用户组名,可以参考这个例子。

预期日志结尾输出会有 Deployed cluster `tidb-test` successfully 关键词,表示部署成功。

验证centos是否支持 KVM centos支持nvme吗_数据盘

 

五、查看 TiUP 管理的集群情况
tiup cluster list
TiUP 支持管理多个 TiDB 集群,该命令会输出当前通过 TiUP cluster 管理的所有集群信息,包括集群名称、部署用户、版本、密钥信息等

验证centos是否支持 KVM centos支持nvme吗_文件系统_02

六、检查部署的 TiDB 集群情况
执行如下命令检查 tidb-test 集群情况
tiup cluster display tidb-test

验证centos是否支持 KVM centos支持nvme吗_数据库_03

预期输出包括 tidb-test 集群中实例 ID、角色、主机、监听端口和状态(由于还未启动,所以状态为 Down/inactive)、目录信息。

七、启动集群
tiup cluster start tidb-test
预期结果输出 Started cluster `tidb-test` successfully 标志启动成功。

验证centos是否支持 KVM centos支持nvme吗_用户登录_04

八、验证集群运行状态
通过 TiUP 检查集群状态
tiup cluster display tidb-test

验证centos是否支持 KVM centos支持nvme吗_验证centos是否支持 KVM_05

预期结果输出,注意 Status 状态信息为 Up 说明集群状态正常

执行如下命令登录数据库
mysql -u root -h 192.168.1.67 -P 4000

访问 TiDB 的 Grafana 监控:
通过 http://192.168.1.66:3000 访问集群 Grafana 监控页面,默认用户名和密码均为 admin。
登录需要修改密码:Grafana1234

访问 TiDB 的 Dashboard:
通过 http://192.168.1.70:2379/dashboard 访问集群 TiDB Dashboard 监控页面,默认用户名为 root,密码为空。