####################
在 TiKV 部署目标机器上添加数据盘 EXT4 文件系统挂载参数
原因:生产环境部署,建议使用 EXT4 类型文件系统的 NVME 类型的 SSD 磁盘存储 TiKV 数据文件。这个配置方案为最佳实施方案,其可靠性、安全性、稳定性已经在大量线上场景中得到证实。
使用 root
用户登录目标机器,将部署目标机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc
和 noatime
挂载参数。nodelalloc
是必选参数,否则 TiUP 安装时检测无法通过;noatime
是可选建议参数。
使用 lsblk 命令查看分区的设备号:对于 nvme 磁盘,生成的分区设备号一般为 nvme0n1p1;对于普通磁盘(例如 /dev/sdb),生成的的分区设备号一般为 sdb1。
1)查看数据盘。
root@shell>> fdisk -l Disk /dev/nvme0n1: 1000 GB
2)创建分区。
root@shell>> parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
3)格式化文件系统。
root@shell>> mkfs.ext4 /dev/nvme0n1p1
4)查看数据盘分区 UUID。
root@shell>> lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext4 237b634b-a565-477b-8371-6dff0c41f5ab /boot ├─sda2 swap f414c5c0-f823-4bb1-8fdf-e531173a72ed └─sda3 ext4 547909c1-398d-4696-94c6-03e43e317b60 / sr0 nvme0n1 └─nvme0n1p1 ext4 c51eb23b-195c-4061-92a9-3fad812cc12f
5)编辑 /etc/fstab
文件,添加 nodelalloc
挂载参数。
root@shell>> vim /etc/fstab UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
6)挂载数据盘。
root@shell>> mkdir /data1 root@shell>> mount -a
7)执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc
,则表示已生效。
root@shell>> mount -t ext4 /dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
安装 numactl 工具:
root@shell>> yum -y install numactl
关闭swap:
root@shell>> echo "vm.swappiness = 0">> /etc/sysctl.conf
root@shell>> swapoff -a && swapon -a
root@shell>> sysctl -p
关闭swap理由:
TiDB 运行需要有足够的内存,并且不建议使用 swap 作为内存不足的缓冲,这会降低性能。
因此建议永久关闭系统 swap,并且不要使用 swapoff -a 方式关闭,否则重启机器后该操作会失效。
关闭swap需要从配置和当前关闭两方面进行
关闭防火墙服务:
# 关闭当前防火墙服务: root@shell>> systemctl stop firewalld.service # 关闭防火墙自动启动服务: root@shell>> systemctl disable firewalld.service # 检查防火墙服务状态 root@shell>> systemctl status firewalld.service
检测及安装 NTP 服务
# 安装 root@shell>> yum install ntp ntpdate # 当前启动 root@shell>> systemctl start ntpd.service # 开机自启动 root@shell>> systemctl enable ntpd.service
如果要使 NTP 服务尽快开始同步,执行以下命令。可以将 pool.ntp.org
替换为你的 NTP 服务器:
# 关闭 root@shell>> systemctl stop ntpd.service # 配置ntp服务器 root@shell>> ntpdate pool.ntp.org # 开启 root@shell>> systemctl start ntpd.service
###########
####################