【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.1
请教下,这种一个机器挂多个磁盘的机器,怎么部署kv呢,是一个机器部署多个kv节点,根据不同的磁盘区分数据目录吗?
图里面的配置是48cpu , 384G内存,3.5Tnvme ssd独享本地盘4块
【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.1
请教下,这种一个机器挂多个磁盘的机器,怎么部署kv呢,是一个机器部署多个kv节点,根据不同的磁盘区分数据目录吗?
图里面的配置是48cpu , 384G内存,3.5Tnvme ssd独享本地盘4块
是,根据不同的磁盘区分数据目录
先根据文档 TiDB 环境与系统配置检查 | PingCAP 文档中心
将硬盘挂载在不同目录下,如/tidb-data /tidb-data1 /tidb-data2这样,然后tikv数据部署到不同目录里面
tikv配置需要配置内存使用上限 如storage.block-cache.capacity: 24G,实际使用大概是24G*1.3左右
参考我的3主机6tikv混合部署
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
arch: "amd64"
server_configs:
tidb:
log.level: "error"
tikv:
storage.block-cache.capacity: 24G
pd:
replication.enable-placement-rules: true
replication.location-labels: ["host"]
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
pd_servers:
- host: 192.168.19.205
- host: 192.168.19.206
- host: 192.168.19.207
tidb_servers:
- host: 192.168.19.205
- host: 192.168.19.206
- host: 192.168.19.207
tikv_servers:
- host: 192.168.19.205
port: 20160
status_port: 20180
data_dir: "/tidb-data/tikv-20160"
config:
server.labels: { host: "logic-host-1" }
- host: 192.168.19.206
port: 20160
status_port: 20180
data_dir: "/tidb-data/tikv-20160"
# deploy_dir: "/tidb-deploy"
# data_dir: "/tidb-data"
config:
server.labels: { host: "logic-host-2" }
- host: 192.168.19.207
port: 20160
status_port: 20180
data_dir: "/tidb-data/tikv-20160"
# deploy_dir: "/tidb-deploy"
# data_dir: "/tidb-data"
config:
server.labels: { host: "logic-host-3" }
- host: 192.168.19.205
port: 20161
data_dir: "/tidb-data1/tikv-20161"
status_port: 20181
# deploy_dir: "/tidb-deploy"
# data_dir: "/tidb-data1"
config:
server.labels: { host: "logic-host-1" }
- host: 192.168.19.206
port: 20161
status_port: 20181
data_dir: "/tidb-data1/tikv-20161"
# deploy_dir: "/tidb-deploy"
# data_dir: "/tidb-data1"
config:
server.labels: { host: "logic-host-2" }
- host: 192.168.19.207
port: 20161
status_port: 20181
data_dir: "/tidb-data1/tikv-20161"
# deploy_dir: "/tidb-deploy"
# data_dir: "/tidb-data1"
config:
server.labels: { host: "logic-host-3" }
monitoring_servers:
- host: 192.168.19.205
grafana_servers:
- host: 192.168.19.205
如果是多个cpu,可以用numactl绑定cpu的
3.5T的磁盘分区,就parted 方式分区
[root@db95_194 ~]# parted /dev/sdb
sdb sdb1
[root@db95_194 ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be
lost. Do you want to continue?
Yes/No? yes
(parted) mkpart primary 0% 100%
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 3651GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3651GB 3651GB xfs primary
mount -a
数据库挂载参数:
vim /etc/fstab
/dev/nvme0n1 /ssddata xfs defaults,discard,noatime,nodiratime,nobarrier 0 0
以上是参考步骤,把3.5T的分区格式化成一个了,格式化多个,需要研究一下。
划分成4个tikv节点吧,numa绑定下
如果CPU只是两颗,只能绑定到两个吧?分别是0,1 是这样吧?4个tikv节点,两个tikv节点使用0号CPU,两个tikv使用1号CPU,是这样吧?
把96m的块调整512m 挂四个tikv
512m太大了,影响未来部署tilfash,256就行
嗯,尽量隔离下呗,注意每个tikv的block-cache.capacity参数设置为384G/40.45,默认会设置成384G0.45,这样容易oom
磁盘规格有点大。一般来说2T左右一个tikv就好。
你的cpu如果分成8个的话,又显得cpu少了。
分4个tikv的话,12c一个还可以吧,一个tikv一块nvme盘。
X86我建议直接关了numa,建一个tikv就够了
资源不够,按这配置再来两三台,就得再来上百万预算
这个机器必须得再来至少2台。否则3副本放一个tikv上岂不是很危险。
这个不算贵的,云上都是原价5折
帖子不错 很有实战的借鉴意义 法师们 施法 …
项目收益能否覆盖这个成本,不能就是亏本