tidb服务器规划

大家好,新人一枚,最近在看TIDB,看了官方文档,可能有遗漏,有几个问题需要求助社区的帮助。
软件版本:tidb-7.1.1
服务器数量:7台
使用组件:server、pd、tikv、granfana+监控
服务器配置:7台相同,内存256G、48核,6*1.2T ssd磁盘
磁盘规划:1块做系统盘,5块直通盘,不做raid
架构规划:3台机器,3 pd+3 server,1台监控,3台tikv
问题1:这个服务器配置如何使用,可以保证最大化利用
问题2:我看社区帖子,tikv只支持ssd 2T以下单盘挂载到某个目录使用,但是TIKV是多磁盘,感觉太浪费了,但是3台tikv,可以多个tikv实例,如果这样做的话,比如某一台tikv机器关机了,副本不会只存在这一台机器的3个实例吧?如果是这样的话,那么会造成数据丢失?
问题3:pd和server的机器磁盘是否可以搞个raid5,大磁盘空间挂载?或者也当tikv实例?感觉机器太浪费了。

1 个赞

tiup 需要一个节点,配置可以差点

  1. 机型太单一了,都是存储类的。TiPD + TiDB,完全不需要太大的磁盘,100G SSD绰绰有余,剩下的SSD都是浪费。
  2. TiKV没有限制要2T以下的,可以试下做下Raid 0,或者条带化的LVM,看那个性能更高。同理监控节点也是一样,可以跟xfworld说一样,把监控节点和TiUP节点共用

问题1:
磁盘可以做直通,不做raid(不要考虑做混合部署,优化会比较困难)至于怎么用,看你的场景…
要是我,可能会考虑弄成虚拟化,直接上虚拟环境了,通过 VM 来处理,可以省点

问题2:
tikv 的容量问题,需要考虑业务场景,如果有海量的数据,是需要考虑冷热分离的。这样 SSD资源可以利用起来。
tikv 实例和副本数,是用来保证高可用的关键。当实例数足够,副本数不够的时候,PD会自动调度补足副本数,所以要优先关注实例数,是否足够。

问题3:
PD 和 tidb 的磁盘没必要大空间挂载,不利于采用多实例的快速恢复方案,然后高可用能力也降低了。
基本上 Raid5 坏了,集群就歇菜了… :melting_face: :melting_face: :melting_face: :melting_face:

这种其实也可以,不过如果划分为6个TiKV实例的,如果通过Cgroup来隔离,每个TiKV的资源都会小一些,当出现热点时候,很容易出现资源浪费。(或者不隔离,但是容易出现OOM)。至于担心的多副本丢失,可以通过replication.location-labels: ["host"]来强制region的多个副本分部到不同实例(host)。

可以参考一下官方文档: https://docs.pingcap.com/zh/tidb/v7.4/hybrid-deployment-topology

如果是允许的话,建议拿三台机器,置换成6台机器,3台性能高些用来做TiDB Server,3台性能低些用来做TiPD(8C16G至少可以支撑100T的集群了),数据盘100G SSD足以

配置无法变动的情况下,2台tidb、3台pd、3台kv,其中tidb和pd放一起,tiup+监控和pd放一起,kv单独放

架构规划:3台机器,3 pd+3 server,1台监控,3台tikv 这样有点浪费,pd和tidb对磁盘性能要求没有那么搞,前面三台机器做raid然后虚拟化,用虚拟机安装pd tidb和监控,kv服务器不做虚拟化每台服务器插4跟ssd,每台服务器每个磁盘安装一个kv实例一台可以安装4个kv实例。

服务器数量:7台
使用组件:server、pd、tikv、granfana+监控
服务器配置:7台相同,内存256G、48核,6*1.2T ssd磁盘
磁盘规划:1块做系统盘,5块直通盘,不做raid
架构规划:3台机器,3 pd+3 server,1台监控,3台tikv
问题1:这个服务器配置如何使用,可以保证最大化利用
如果现在机子已经限定死了只能有这么7台机器,可以拿2台机器做pd+tidb-server,1台做pd+监控+tiup,剩下4台做tikv,磁盘建议用lvm合并成目录
问题2:我看社区帖子,tikv只支持ssd 2T以下单盘挂载到某个目录使用,但是TIKV是多磁盘,感觉太浪费了,但是3台tikv,可以多个tikv实例,如果这样做的话,比如某一台tikv机器关机了,副本不会只存在这一台机器的3个实例吧?如果是这样的话,那么会造成数据丢失?
tikv机器可以做2实例,用numa资源隔离,每个机器通过lvm挂2个目录,分别给两个实例使用,然后通过label指定host存放,这样不会出现一个region的多副本存放再同一台主机上。
问题3:pd和server的机器磁盘是否可以搞个raid5,大磁盘空间挂载?或者也当tikv实例?感觉机器太浪费了。
tidb是分布式数据库,tidb-server更是无状态的,无需存放数据,pd三节点挂一个也无所谓,所以raid5没啥必要做,我建议直接用lvm做就行。

谢谢你的回复
我的服务器都是硬件的,ARM架构,目前没有虚拟化
我昨晚又仔细的看了下 混合部署
我看下边的回复说可以把磁盘搞成lvm的,因为单盘ssd盘就1.2T,我看官方文档有说明
• TiKV 硬盘大小配置建议 PCI-E SSD 不超过 2 TB,普通 SSD 不超过 1.5 TB。
问题:如果超过这个磁盘大小是否有影响?
问题:如果3台TIKV,因为机器配置比较高,我可以下掉几块硬盘,每台机器留下3块单独的硬盘,然后每台机器启动3个TIKV实例来使用不同的太快硬盘作为数据盘,比如每台机器三块盘对应 sdb sdc sdd
/dev/sdb /data1
/dev/sdc /data2
/dev/sdd /data3

谢谢你的回复,机器是物理机,目前没用到虚拟化
我看官方文档写的是
• TiKV 硬盘大小配置建议 PCI-E SSD 不超过 2 TB,普通 SSD 不超过 1.5 TB。
如果照你这么说,我的资源确实太浪费了。
配置很高,可以一台机器,跑3个TIKV可以吗?然后通过标签进行 region 纠正

嗯,3台tikv,每台4个单独盘,分别启动4个TIKV,每个tikv用一个数据盘作为数据目录对吧?
然后通过latle进行注册隔离,防止2副本在一台机器运行。

这个配置配3个tikv也可以,一个tikv实例建议最少16核,64G内存,注意一定要通过label进行region存放隔离,否则你一个region3个副本全存一个机器,这个机器挂了你数据要丢。
实际你pd+tidb-server哪些机器资源是有点浪费的,但是tikv建议不要和他们放一起。

1 个赞

嗯,tikv单机,有实例限制吗?

楼上说的对 ,一个tikv实例建议最少16核,64G内存,那你一个物理机就搞3个kv,同一台机器上每个kv实例启动端口不一样就行

嗯明白嘞,。然后再配置lable和绑定CPU就行了。

我还看到过,pd和server在k8s上边运行,tikv在物理机单独运行

每个kv限制下内存使用
https://docs.pingcap.com/zh/tidb/v6.5/tikv-configuration-file#memory-usage-limit

ok,谢谢。

您好, TiKV 硬盘大小配置建议 PCI-E SSD 不超过 2 TB,普通 SSD 不超过 1.5 TB。这个到底是否可以超过啊?