根据此前的学习,已经可以了解到MongoDB主要的几种服务器角色:
- Mongos,这是MongoDB群集的入口服务器,主要承担数据路由任务。它会根据配置的“片键”将数据分发到自己管理的MongoDB群集中;
- ConfigServer,该服务器角色负责管理Mongos数据分片的依据,数据和片的对应关系以及相应的配置信息(需要注意的是ConfigServer的个数必须为1或3)
- ShardServer,独立的分片Mongod服务器,并入到Mongos下统一管理,存储分片的数据;
- ShardServer(repSet),副本集中的分片服务器,每个副本集中至少需要两个以上的ShardServer;
- ArbiterServer,副本集中的仲裁服务器,每个副本集中至少需要一个ArbiterServer;
参见下图,我们需要部署两个Mongos入口,3个ConfigServer,一个独立的ShardServer和一个RepSet(包含两个ShardServer和一个ArbiterServer),一共需要9个mongod实例。
决定把这8个实例分别部署到3台电脑上(一台物理主机,两台虚拟机)
Physical Server(192.168.111.11)
- ConfigServer-I(D盘)
mongod --configsvr --dbpath=d:\mongodb\db --port 2000 - ShardServer(C盘)
mongod –dbpath=c:\mongodb\db –port 4000 - ArbiterServer(E盘)
mongod --dbpath=e:\mongodb\db –port 4004 –replSet superlab/192.168.111.111:4000
Virtual Server-I(192.168.111.111)
- ConfigServer-II(D盘)
mongod --configsvr --dbpath=d:\mongodb\db --port 2000 - Mongos(C盘)
mongos --port 8848 --configdb=192.168.111.111:2000,192.168.111.222:2000,192.168.111.11:2000(C盘) - ShardServer(repSet) (E盘,磁盘空间需要大于2G)
mongod --dbpath=e:\mongodb\db --port 4000 --replSet HALab/192.168.111.222:4000
Virtual Server-II(192.168.111.222)
- ConfigServer-III(D盘)
mongod --configsvr --dbpath=d:\mongodb\db --port 2000 - Mongos(C盘)
mongos --port 8848 --configdb=192.168.111.111:2000,192.168.111.222:2000,192.168.111.11:2000(C盘) - ShardServer(repSet) (E盘,磁盘空间需要大于2G)
mongod --dbpath=e:\mongodb\db --port 4000 --replSet HALab/192.168.111.111:4000