MongoDB 4.2 单机分片测试集群搭建
- 本集群用于测试,这里关于kill后重启增加安全验证的可以忽略。
- 涉及到root和安全验证容易出一些额外的bug,个人建议测试时直接略过,在内网数据安全也得以保证
1 安装背景
1.1 实验环境
1.1.1 分片集群架构图
1.1.2 实验主机
主机 | IP |
---|---|
Ubuntu 20.04 LTS | 114.212.84.175 |
1.1.3 端口规划
服务器 | 端口 |
---|---|
route1 | 27017 |
conf1 | 29010 |
conf2 | 29011 |
conf3 | 29012 |
shard1_primary | 27010 |
shard1_secondary | 27011 |
shard1_arbiter | 27012 |
shard2_primary | 28010 |
shard2_secondary | 28011 |
shard2_arbiter | 28012 |
1.2 安装包下载
这里的目的是自己编译mongodb,编译生成的可执行文件在以下目录
/home/young/Programs/mongo/build/opt/mongo
因此可以创建软连接在/bin
目录下便于后续访问,也省的每次重新编译后更改
sudo ln -sv /home/young/Programs/mongo/build/opt/mongo/mongod /bin/mongod
sudo ln -sv /home/young/Programs/mongo/build/opt/mongo/mongos /bin/mongos
sudo ln -sv /home/young/Programs/mongo/build/opt/mongo/mongo /bin/mongo
2 部署分片
2.1 端口规划
# 分片1
shard1:rs-1:27010
shard1:rs-1:27011
shard1:rs-1:27012
# 分片2
shard2:rs-2:28010
shard2:rs-2:28011
shard2:rs-2:28012
2.2 数据目录和文件创建生成
这里我用了一个python脚本来执行,详见build_mongo.py。
修改build_mongo.py
中的工作目录地址WORKSPACE
,有生成目录如下
$ python3 ./build_mongo.py
├── add_root.js
├── build_mongo.py
├── data
│ ├── config
│ │ ├── db
│ │ │ ├── db29010
│ │ │ ├── db29011
│ │ │ └── db29012
│ │ ├── keyfile
│ │ │ ├── autokey29010
│ │ │ │ └── autokey
│ │ │ ├── autokey29011
│ │ │ │ └── autokey
│ │ │ └── autokey29012
│ │ │ └── autokey
│ │ └── log
│ │ ├── mongod29010
│ │ │ └── mongod.log
│ │ ├── mongod29011
│ │ │ └── mongod.log
│ │ └── mongod29012
│ │ └── mongod.log
│ ├── db
│ │ ├── db27010
│ │ ├── db27011
│ │ ├── db27012
│ │ ├── db28010
│ │ ├── db28011
│ │ └── db28012
│ ├── keyfile
│ │ ├── autokey27010
│ │ │ └── autokey
│ │ ├── autokey27011
│ │ │ └── autokey
│ │ ├── autokey27012
│ │ │ └── autokey
│ │ ├── autokey28010
│ │ │ └── autokey
│ │ ├── autokey28011
│ │ │ └── autokey
│ │ └── autokey28012
│ │ └── autokey
│ ├── log
│ │ ├── mongod27010
│ │ │ └── mongod.log
│ │ ├── mongod27011
│ │ │ └── mongod.log
│ │ ├── mongod27012
│ │ │ └── mongod.log
│ │ ├── mongod28010
│ │ │ └── mongod.log
│ │