泽拓昆仑Klustron 集群典型配置说明
泽拓昆仑Klustron 集群典型配置说明
01 集群配置和使用的注意事项
资源准备:在集群部署方案中,各台服务的硬件配置应该一致,操作系统及版本一致。对于生产系统部署,服务器之间的网络带宽建议是万兆,存储设备最好是PCIe NVMe SSD 512GB以上,而且最好每个服务器安装两个这样的存储设备,一个用于存储binlog日志文件和存储引擎redo日志文件,另一个用于存储数据文件。在安装存储节点是可以设置这两个路径;CPU 至少4核心,建议32核心以上;内存至少16GB,建议128GB以上。
每台服务器的运行一个计算节点。优先选择与storage shard在相同主节点的计算节点服务OLTP负载,其他计算节点用于OLAP(报表,分析)负载,以及在上述计算节点资源紧张时再用于OLTP负载。
集群的 Storage Shard 个数不应该超过服务器的数量,并且每台服务器只能运行集群的一个 Shard 的主节点。每个Shard的主从副本的参数配置应用一致。不同 Shard 的参数配置可以根据业务需求做个性配置。同一个shard的多个节点不要部署到同一台服务器内。
每个 Shard 的副本数量可以根据业务需求定义,Klustron 集群对副本数量没有限制,但从可靠性考虑,建议每个 shard 最少 3 个副本,也就是1个主节点,2个备节点。shard的副本数量不超过可用的机器数量。
在实际生产环境部署过程中,可以将一个计算节点和若干个存储节点部署在同一台服务器上,以达到节约成本和获得资源的有效利用。Klustron集群混合部署和对等部署架构的特点是计算节点与存储节点并存于同一台物理服务器内,每台服务器既运行计算节点,同时也运行存储节点。这对于硬件资源不太充裕并且负载不高的用户,是可行的。不过需要遵循下述原则。
- 一个Shard的多个节点不能位于同一台服务器内,而应该交错的部署在多个服务器里。
- 对于对等部署,Klustron数据库在创建集群时自动分配shard节点到服务器, 无需人为干预。
- 对于混合部署,参照本文的部署图,使用XPanel来部署。其总的原则是:每个服务器中部署一个计算节点;每个shard的主节点部署在一个服务器中,而且该服务器不可以部署其他存储节点;每个shard的R个备节点交错部署在其他服务器中,确保每个服务器上面不存在同一个shard的两个节点。所以给定2 * N个服务器,就部署N个shard,用其中N个服务器部署这N个shard的主节点,每个服务器部署一个主节点;另外N个服务器部署这N个shard的R * N个备节点,其中每个服务器部署R个不同shard的一个备节点。这里的 R是每个shard的备机数量,而且必须保证 2<=R<=N。
对于数据读写访问负载较高,并且预算充足的用户,建议每个服务器部署一个计算节点和一个存储节点(主节点或者备节点),以便达到最优的性能。这样如果有N个shard,每个shard R个备节点,那么这个集群一共需要 (R+1) * N 台服务器。
元数据集群可以被部署在随机选择的部分服务器上面或者被部署在全部服务器上面,确保服务器总数不小于3台。Cluster_mgr集群可以被部署在随机选择的2 * n + 1台服务器上面。
低成本部署:如果用户对集群可用性要求较低,同时希望降低硬件成本,那么使用低成本部署方案。此部署方案的典型适用场景是:从其他多个数据库汇集数据到Klustron集群做分析。使用此方案可以显著降低硬件成本。此方案下每个shard一主一备,主备节点部署在不同的服务器中,并且每个服务器再部署一个计算节点。如果某个shard的主节点故障,那么集群不会丢失数据,服务可以快速恢复。但是如果随后该shard的旧主节点没有及时重新加入这个shard,那么此shard就只有一个节点在只读运行。虽然可以手工改为可写,但是如果这个shard的新主节点也发生了故障,那么这个shard就可能丢失数据,并且将无法继续提供服务。所以建议在一个shard已经没有备机的情况下保持只读工作状态。另外即使一个shard的所有节点都已经宕机,该集群仍然可以使用其他shard 继续正常工作,只有这个故障shard的数据无法读写。
02 操作系统和CPU架构
2.1 系统和架构
操作系统版本 | CPU 的架构(x86_64/AMD64/ARM64) |
---|---|
CentOS 7.5及以上 | x86_64 ARM64 |
CentOS 8 | x86_64 ARM64 |
统信服务器操作系统V20(1050a) | AMD64 ARM64 |
统信服务器操作系统V20(1050e) | AMD64 ARM64 |
openSUSE 15 | x86_64 |
Ubuntu 20.04 | x86_64 |
Kylin v10 | x86_64 ARM64 |
TODO:增加arm芯片以及对应的OS组合
2.2 集群服务器配置
下文所述的对等部署模式,和混合部署模式,都需要使用XPanel完成集群安装。
方案1: 小数据量场景(<1TB),集群服务器配置,共3台服务器进行混合部署
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
3 | 16 | 128GB | SSD,1TB+ 根据实际数据量增加 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 3 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 3 | 每台部署一个存储节点,其中1台部署主节点 | 可以与计算节点混合部署 |
Shard | 1 | 每个shard一主两备 | 每个存储节点一主两备为一个shard |
下图中标记说明:CN1/CN2/CN3 指计算节点1/2/3; M.1 是指 shard 1的主节点; R.1.1 是指shard 1的第1个备节点,R.1.2是指shard 1的第2个备节点。下图类似,不再赘述。
方案2: 中小数据量(1 - 5TB),低写入场景,集群服务器配置,共3台服务器进行混合部署
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
3 | 32 | 256GB | SSD,1.5 - 3TB根据实际数据量调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 3 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 9 | 每台部署3个存储节点,对等部署 | 可以与计算节点混合部署 |
Shard | 3 | 每个shard一主两备,对等部署 | 每个存储节点一主两备为一个shard |
方案3: 中小数据量(1 - 5TB),高写入场景,集群服务器配置,共4台服务器进行混合部署
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
4 | 32 | 256GB | SSD,1.5 - 4TB根据实际数据量调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 4 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 6 | 每台部署3个存储节点,对等部署 | 可以与计算节点混合部署 |
Shard | 2 | 每个shard一主两备 | 每个存储节点一主两备为一个shard |
方案4: 中等数据量(5 - 30 TB),低写入,集群服务器配置,共6台服务器进行混合部署
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
6 | 32 | 512GB | SSD,3TB - 6TB,根据实际数据量按需调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 6 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 18 | 每台部署3个存储节点,对等部署 | 可以与计算节点混合部署 |
Shard | 6 | 每个shard一主两备,对等部署 | 每个存储节点一主两备为一个shard |
方案5: 中等数据量(5 - 30 TB),高写入,集群服务器配置,共6台服务器进行混合部署
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
6 | 32 | 1TB | SSD,4TB - 15TB,根据实际数据量按需调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 6 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 9 | 其中3台每台部署1个存储主节点,另外3台每台部署两个不同shard的存储备节点 | 可以与计算节点混合部署 |
Shard | 3 | 每个shard一主两备 | 每个存储节点一主两备为一个shard |
方案6: 大数据量(30 - 600TB),集群服务器配置,共6 - 15台服务器进行部署.数据量更大时可以按比例类推,上不封顶。
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
6 - 30 | 64 | 1TB | SSD,6 - 30TB+,按需调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 6 - 30 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 18 - 90 | 每台部署3个存储节点,对等部署 | 可以与计算节点混合部署 |
Shard | 6 - 30 | 每个shard一主两备,对等部署 | 每个存储节点一主两备为一个shard |
方案7: 低成本部署,3个shard,3台服务器
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
3 | 32 | 256GB | SSD,4TB - 15TB,根据实际数据量按需调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | 3 | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 6 | 每台部署1个存储主节点,和另一个shard的1个存储备节点 | 可以与计算节点混合部署 |
Shard | 3 | 每个shard一主一备 | 每个存储节点一主一备为一个shard |
方案8: 低成本部署,N个shard,N台服务器
数量 | CPU | 内存 | 磁盘 | 网络 | 系统和架构 |
---|---|---|---|---|---|
N | 32 | 256GB | SSD,4TB - 15TB,根据实际数据量按需调整 | 万兆网卡 | 见2.1 |
集群配置:
组件 | 部署个数 | 部署架构 | 部署说明 |
---|---|---|---|
计算节点 | N | 每台部署一个计算节点 | 可以与存储节点混合部署 |
存储节点 | 2*N | 每台部署1个存储主节点,和另一个shard的1个存储备节点 | 可以与计算节点混合部署 |
Shard | N | 每个shard一主一备 | 每个存储节点一主一备为一个shard |