mongodb4.x 集群搭建

下载包

官网选择合适的操作系统版本下载tgz包
https://www.mongodb.com/download-center/community

部署结构

集群结构

典型的三分片Mongo集群如下图所示,包含三类组件:查询路由、配置服务器、分片。其中查询路由为mongos进程,配置服务器和分片都是mongod进程。配置服务器和分片都采取副本集(replica set)来确保可用性和健壮性,每个副本集最少包含三个节点。查询路由都是单实例运行,没有副本集机制,可根据需要增加实例数量,也可以在外部添加负载均衡。

上图中每个方框仅代表功能集合,不代表物理位置。实际部署时,为了避免单点故障,同一个副本集中的成员,应该部署在不同主机上。比如分片1的三个mongod进程应该运行在三台不同的主机上。

部署方案



副本集方案2(一主一从一仲裁)

如上图所示,三成员的副本集方案有两种:一主二从、一主一从一仲裁。

对于方案1来说,每个成员都是数据节点,应该各自独占一台主机,这样三分片集群至少需要9台服务器(配置服务器和查询路由可以复用主机),之后每追加一个分片需要增加3台主机。具体部署情况如下图所示(同颜色的为一组,查询路由为MS,配置服务器为CS):

对于方案2来说,有两个成员是数据节点,两外一个是投票节点(仲裁者),这样三分片集群只需要6台服务器(配置服务器和查询路由依旧复用主机,仲裁者与另一分片的数据节点部署在一台主机),之后每追加一个分片需要增加2台主机。具体部署情况如下图所示(同颜色的为一组,
a表示仲裁者,如Aa、Ba):

可以看出,分片副本集采取一主一从一仲裁方案,更加节省机器资源。结合Mongo分片集群一期部署所能使用的服务器数量为6台,选择第二种部署方案。

检查安装环境

确定NUMA已关闭

执行grep -i numa /var/log/dmesg,如果输出结果为:No NUMA configuration found,说明NUMA已禁用,否则通过BIOS将其关闭,或者使用numactl来启动mongod进程(安装方法见3.3)。

确定kernel版本不低于2.6.36

执行uname -r,查看返回的版本号

确定glibc版本不低于2.13

执行ldd –version(version前面两个减号),查看返回的版本号

确定ulimit配置

执行ulimit -a,查看当前设置,官方推荐配置如下:

-f (file size): unlimited

-t (cpu time): unlimited

-v (virtual memory): unlimited

-n (open files): 64000

-m (memory size): unlimited

-u (processes/threads): 64000

主要需要确认的是最大文件数(-n),最大进程数(-u),调整方法如下:

将最大文件数(-n)修改为64000
编辑/etc/security/limits.conf,写入以下两行

  • soft nofile 64000

  • hard nofile 64000

将最大进程数(-u)修改为64000
编辑/etc/security/limits.d/20-nproc.conf,写入以下两行

  •      soft    nproc     64000
    
  •      hard    nproc     64000
    

配置完成后,重新打开终端确认是否生效。

参考

https://blog.csdn.net/wmq880204/article/details/113361244
https://blog.csdn.net/newCheng/article/details/104972150

posted @ 2022-02-23 17:27  方东信  阅读(171)  评论(0编辑  收藏  举报