GBase 8a 8611版本集群支持300个节点的集群,Coordinator节点需要部署在同一个网段内,data节点可以跨网段部署;保证节点间网络通信带宽,交换机间的带宽需要保证即可。
从8512升级8611后可以通过gcadmin distribution命令方式指定每个节点存放分片数,以及每个分片的备份数,再通过reblance对原数据进行重分布处理。
通常建议2分片,采用几分片主要基于三方面的因素来考虑:性能、木桶效应、快速扩容。
单分片的性能最好,单分片存在木桶效应的原因是当有1个节点离线时,该节点分片所在的副本分片所在的节点将承担两倍的工作,因此理论上性能下降最多1倍,性能最多下降1倍的前提是在节点没有离线前,每个节点的资源使用已经比较高(cpu,io,内存都使用了80-90%)的情况下,1个节点离线时,该节点分片所在的副本分片资源已经使用比较高(cpu,io,内存都使用了80-90%)的情况下还要再多承担一份任务,因此性能将下降1倍。但在实际运行的系统中,每个节点的资源使用一般不会达到80-90%(cpu,io,内存都使用了80-90%),观察多个实际项目一般也就是在40-50%左右,因此即使多承担一份工作,也不会下降1 倍,经过测试在广西移动的场景下单分片部署情况下一个节点离线的情况下,性能下降 43%。
采用多分片能够带来两方面的好处,降低木桶效应,扩容时可以直接搬移分片而不用重新计算hash,因此提升扩容的性能,但带来的坏处是分片多了,分片表的数量提升了1倍,列文件的数据也提高了1倍,因此IO时将访问更多的文件,以及IO总体上来看将更离散。
在访问data cell时能够充分利用智能索引的情况下,多分片的性能下降会更多,因为原始可能通过智能索引只需要访问一个data cell, 当分成多分片后,可能需要访问多个data cell,因此在IO是主要资源瓶颈的情况下,多分片在该场景下的性能下降更多。按照农行模拟场景测试2分片下降在5%-15%之间,4分片下降在 20%-30%, 在智能索引利用不充分,基本需要全表扫描的场景下,多分片相对单分片性能下降不明显,测试在5%左右。在1个节点离线的情况下,在广西移动的场景下2分片性能下降 21%,另外两分片可以按照搬移分片的方式扩容1次。
因此,综合型性能,木桶效应和快速扩容三个因素的综合考虑,建议采用2分片。
coordinator节点针对的服务有gclusterd,gcmonit,corosync,gcrecover;
data 节点针对的服务有gbased,syncserver,gcmonit。
负载均衡模式生成distribution,每节点主分片数(即参数p)必须小于每个rack的节点数,以此来保证备份分片分布均匀。每个rack包含的节点数尽可能相同,若gcChangeInfo.xml文件中有多于1个rack的节点数与其它rack不同,gcadmin将会提示用户系统性能可能会下降,需用户确认后才能生成distribution。