文档用于使用3台服务器,通过Docker运行MongoDB数据库分片集群。
分片集群部署:https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/
keyfile使用:https://docs.mongodb.com/manual/tutorial/deploy-sharded-cluster-with-keyfile-access-control/
资源 | 最低要求 | 推荐配置 |
---|---|---|
CPU | 2 | 4 |
内存 | 4 | 16 |
磁盘 | 50 | 500 |
操作系统 | ubuntu 16.04 | ubuntu 18.04 |
软件 | 版本 |
---|---|
Docker | 17.03+ |
MongoDB | 4.2.5 |
应用 | 协议 | 端口 |
---|---|---|
mongos | TCP | 27017 |
config | TCP | 27018 |
shard1 | TCP | 27019 |
shard2 | TCP | 27020 |
shard1 | TCP | 27021 |
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 |
hosts文件中添加各主机信息
sudo vim /etc/hosts
内容
172.30.3.231 mongodb-1
172.30.3.234 mongodb-2
172.30.3.238 mongodb-3
服务器时区设置为北京,三台服务器时间应保持一致
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
关闭透明大页
sudo vim /etc/rc.local
增加以下配置
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
调整允许用户打开文件句柄数
sudo vim /etc/security/limits.conf
增加以下配置
* soft nofile 65535
* hard nofile 65535
重启服务器
生成keyfile,用于建立集群时验证,需要复制到其他2台服务器
cd ~
openssl rand -base64 756 > mongo-cluster.key
1、 安装过程中应尽量使用普通用户进行操作
2、 所有安装涉及到的文件均放置在/work目录中,可以使用root用户或普通用户创建该目录,创建完成后应修改所有者以及所有组为普通用户。
3、 应用目录类似/work/project/app/{bin,data,conf,logs}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。