https://docs-archive.pingcap.com/zh/tidb/v6.0/check-before-deployment
本文介绍部署 TiDB 前的环境检查操作,以下各项操作按优先级排序。
生产环境部署,建议使用 EXT4 类型文件系统的 NVME 类型的 SSD 磁盘存储 TiKV 数据文件。这个配置方案为最佳实施方案,其可靠性、安全性、稳定性已经在大量线上场景中得到证实。
使用 root
用户登录目标机器,将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc
和 noatime
挂载参数。nodelalloc
是必选参数,否则 TiUP 安装时检测无法通过;noatime
是可选建议参数。
以 /dev/nvme0n1
数据盘为例,具体操作步骤如下:
查看数据盘。
创建分区。
格式化文件系统。
查看数据盘分区 UUID。
本例中 nvme0n1p1
的 UUID 为 c51eb23b-195c-4061-92a9-3fad812cc12f
。
编辑 /etc/fstab
文件,添加 nodelalloc
挂载参数。
挂载数据盘。
执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc
,则表示已生效。
TiDB 运行需要有足够的内存。如果内存不足,不建议使用 swap 作为内存不足的缓冲,因为这会降低性能。建议永久关闭系统 swap。
要永久关闭 swap,可执行以如下命令:
本段介绍如何关闭目标主机防火墙配置,因为在 TiDB 集群中,需要将节点间的访问端口打通才可以保证读写请求、数据心跳等信息的正常的传输。在普遍线上场景中,数据库到业务服务和数据库节点的网络联通都是在安全域内完成数据交互。如果没有特殊安全的要求,建议将目标节点的防火墙进行关闭。否则建议按照端口使用规则,将端口信息配置到防火墙服务的白名单中。
检查防火墙状态(以 CentOS Linux release 7.7.1908 (Core) 为例)
关闭防火墙服务
关闭防火墙自动启动服务
检查防火墙状态
TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性。目前解决授时的普遍方案是采用 NTP 服务,可以通过互联网中的 pool.ntp.org
授时服务来保证节点的时间同步,也可以使用离线环境自己搭建的 NTP 服务来解决授时。
采用如下步骤检查是否安装 NTP 服务以及与 NTP 服务器正常同步:
执行以下命令,如果输出 running
表示 NTP 服务正在运行:
若返回报错信息 Unit ntpd.service could not be found.
,请尝试执行以下命令,以查看与 NTP 进行时钟同步所使用的系统配置是 chronyd
还是 ntpd
:
若发现系统既没有配置 chronyd
也没有配置 ntpd
,则表示系统尚未安装任一服务。此时,应先安装其中一个服务,并保证它可以自动启动,默认使用 ntpd
。
如果你使用的系统配置是 chronyd
,请直接执行步骤 3。
执行 ntpstat
命令检测是否与 NTP 服务器同步:
如果输出 synchronised to NTP server
,表示正在与 NTP 服务器正常同步:
以下情况表示 NTP 服务未正常同步:
以下情况表示 NTP 服务未正常运行:
执行 chronyc tracking
命令查看 Chrony 服务是否与 NTP 服务器同步。
如果该命令返回结果为 Leap status : Normal
,则代表同步过程正常。
如果该命令返回结果如下,则表示同步过程出错:
如果该命令返回结果如下,则表示 Chrony 服务未正常运行:
如果要使 NTP 服务尽快开始同步,执行以下命令。可以将 pool.ntp.org
替换为你的 NTP 服务器:
如果要在 CentOS 7 系统上手动安装 NTP 服务,可执行以下命令:
在生产系统的 TiDB 中,建议对操作系统进行如下的配置优化:
采用如下步骤检查操作系统的当前配置,并配置系统优化参数:
执行以下命令查看透明大页的开启状态。
执行以下命令查看数据目录所在磁盘的 I/O 调度器。假设在 sdb、sdc 两个磁盘上创建了数据目录。
执行以下命令查看磁盘的唯一标识 ID_SERIAL
。
执行以下命令查看 cpufreq 模块选用的节能策略。
配置系统优化参数
方法一:使用 tuned(推荐)
执行 tuned-adm list
命令查看当前操作系统的 tuned 策略。
Current active profile: balanced
表示当前操作系统的 tuned 策略使用 balanced,建议在当前策略的基础上添加操作系统优化配置。
创建新的 tuned 策略。
include=balanced
表示在现有的 balanced 策略基础上添加操作系统优化配置。
应用新的 tuned 策略。
方法二:使用脚本方式。如果已经使用 tuned 方法,请跳过本方法。
执行 grubby
命令查看默认内核版本。
执行 grubby --update-kernel
命令修改内核配置。
执行 grubby --info
命令查看修改后的默认内核配置。
修改当前的内核配置立即关闭透明大页。
配置 udev 脚本应用 IO 调度器策略。
应用 udev 脚本。
创建 CPU 节能策略配置服务。
应用 CPU 节能策略配置服务。
执行以下命令验证透明大页的状态。
执行以下命令验证数据目录所在磁盘的 I/O 调度器。
执行以下命令查看 cpufreq 模块选用的节能策略。
执行以下命令修改 sysctl 参数。
执行以下命令配置用户的 limits.conf 文件。
对于有需求,通过手动配置中控机至目标节点互信的场景,可参考本段。通常推荐使用 TiUP 部署工具会自动配置 SSH 互信及免密登录,可忽略本段内容。
以 root
用户依次登录到部署目标机器创建 tidb
用户并设置登录密码。
执行以下命令,将 tidb ALL=(ALL) NOPASSWD: ALL
添加到文件末尾,即配置好 sudo 免密码。
以 tidb
用户登录到中控机,执行以下命令。将 10.0.1.1
替换成你的部署目标机器 IP,按提示输入部署目标机器 tidb
用户密码,执行成功后即创建好 SSH 互信,其他机器同理。新建的 tidb
用户下没有 .ssh
目录,需要执行生成 rsa 密钥的命令来生成 .ssh
目录。如果要在中控机上部署 TiDB 组件,需要为中控机和中控机自身配置互信。
以 tidb
用户登录中控机,通过 ssh
的方式登录目标机器 IP。如果不需要输入密码并登录成功,即表示 SSH 互信配置成功。
以 tidb
用户登录到部署目标机器后,执行以下命令,不需要输入密码并切换到 root
用户,表示 tidb
用户 sudo 免密码配置成功。
本段主要介绍如何安装 NUMA 工具。在生产环境中,因为硬件机器配置往往高于需求,为了更合理规划资源,会考虑单机多实例部署 TiDB 或者 TiKV。NUMA 绑核工具的使用,主要为了防止 CPU 资源的争抢,引发性能衰退。
安装 NUMA 工具有两种方法:
方法 1:登录到目标节点进行安装(以 CentOS Linux release 7.7.1908 (Core) 为例)。
方法 2:通过 tiup cluster exec
在集群上批量安装 NUMA。
使用 TiUP 安装 TiDB 集群,参考使用 TiUP 部署 TiDB 集群完成 tidb-test
集群的部署。如果本地已有集群,可跳过这一步。
执行 tiup cluster exec
命令,以 sudo
权限在 tidb-test
集群所有目标主机上安装 NUMA。
你可以执行 tiup cluster exec --help
查看的 tiup cluster exec
命令的说明信息。