一、安装说明
1.1、文档说明
文档用于使用3台服务器,通过Docker运行MongoDB数据库分片集群。
1.2、集群整体结构图
1.3、分片副本集结构图
1.4、参考文档
代码语言:text复制分片集群部署:https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/
keyfile使用:https://docs.mongodb.com/manual/tutorial/deploy-sharded-cluster-with-keyfile-access-control/
二、系统环境
2.1、服务器配置要求
资源 | 最低要求 | 推荐配置 |
---|---|---|
CPU | 2 | 4 |
内存 | 4 | 16 |
磁盘 | 50 | 500 |
操作系统 | ubuntu 16.04 | ubuntu 18.04 |
2.2、软件要求
软件 | 版本 |
---|---|
Docker | 17.03 |
MongoDB | 4.2.5 |
2.3、端口使用
应用 | 协议 | 端口 |
---|---|---|
mongos | TCP | 27017 |
config | TCP | 27018 |
shard1 | TCP | 27019 |
shard2 | TCP | 27020 |
shard1 | TCP | 27021 |
2.4、部署信息
Primary节点选举产生,Arbiter节点每个服务器一个
172.30.3.231 | 172.30.3.234 | 172.30.3.238 |
---|---|---|
mongos | mongos | mongos |
config | config | config |
shard1 | shard1 | shard1(Arbiter) |
shard2(Arbiter) | shard2 | shard2 |
shard3 | shard3(Arbiter) | shard3 |
2.5、hosts配置,三节点
hosts文件中添加各主机信息
代码语言:shell复制sudo vim /etc/hosts
内容
代码语言:text复制172.30.3.231 mongodb-1
172.30.3.234 mongodb-2
172.30.3.238 mongodb-3
2.6、服务器设置,三节点
服务器时区设置为北京,三台服务器时间应保持一致
代码语言:shell复制sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.7、系统设置
关闭透明大页
代码语言:shell复制sudo vim /etc/rc.local
增加以下配置
代码语言:shell复制echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
调整允许用户打开文件句柄数
代码语言:shell复制sudo vim /etc/security/limits.conf
增加以下配置
代码语言:shell复制* soft nofile 65535
* hard nofile 65535
重启服务器
2.8、生成keyfile
生成keyfile,用于建立集群时验证,需要复制到其他2台服务器
代码语言:shell复制cd ~
openssl rand -base64 756 > mongo-cluster.key
2.9、安装规范
代码语言:text复制1、 安装过程中应尽量使用普通用户进行操作
2、 所有安装涉及到的文件均放置在/work目录中,可以使用root用户或普通用户创建该目录,创建完成后应修改所有者以及所有组为普通用户。
3、 应用目录类似/work/project/app/{bin,data,conf,logs}