一 replica set 和shard 分配
环境:
1. 三台物理机,ip分别是X.X.X.75,X.X.X.76,X.X.X.77
2. 系统:centos7.2
集群组成:
三个replicaSet的分片+一个replicaSet的config+三个入口mongos
分配方案:
1. 三个数据分片: 分别为shard01,shard02,shard03; 每个分片都是一个replicaSet,每个replicaSet由三个节点组成,一个主节点,一个从节点,一个选举节点,这样每个分片数据的相当于一主一备。
具体分配如下:
shard01: 75 PRIMARY, 76 SECONDARY, 77 ARBITER
shard02: 75 ARBITER, 76 PRIMARY, 77 SECONDARY
shard03: 75 SECONDARY, 76 ARBITER, 77 PRIMARY
2. config 节点配置为replicaSet,一主两从。
具体如下:
config:75 PRIMARY,76 SECONDARY,77 SECONDARY
3. mongos 分别在75,76,77上配置一个mongos,分担负载。
二 具体配置
shard01的配置,shard01.yaml
systemLog:
destination: file
path: "/usr/local/mongodb/instance/data_shard_01/log/shard01.log"
processManagement:
fork: true
net:
port: 27018
storage:
dbPath: "/usr/local/mongodb/instance/data_shard_01/data/"
replication:
replSetName: "shard01"
sharding:
clusterRole: shardsvr
shard02的配置,shard02.yaml
systemLog:
destination: file
path: "/usr/local/mongodb/instance/data_shard_02/log/shard02.log"
processManagement:
fork: true
net:
port: 27118
storage:
dbPath: "/usr/local/mongodb/instance/data_shard_02/data/"
replication:
replSetName: "shard02"
sharding:
clusterRole: shardsvr
shard03的配置,shard03.yaml
systemLog:
destination: file
path: "/usr/local/mongodb/instance/data_shard_03/log/shard03.log"
processManagement:
fork: true
net:
port: 27218
storage:
dbPath: "/usr/local/mongodb/instance/data_shard_03/data/"
replication:
replSetName: "shard03"
sharding:
clusterRole: shardsvr
config的配置,config.yaml
systemLog:
destination: file
path: "/usr/local/mongodb/instance/config/log/config.log"
storage:
dbPath: "/usr/local/mongodb/instance/config/data"
net:
port: 27019
processManagement:
fork: true
sharding:
clusterRole: configsvr
replication:
replSetName: cfgSet
mongos的配置,mongos.yaml
systemLog:
destination: file
path: "/usr/local/mongodb/instance/mongos/log/mongos.log"
net:
port: 27017
processManagement:
fork: true
sharding:
configDB: cfgSet/X.X.X.75:27019,X.X.X.76:27019,X.X.X.77:27019
三 搭建步骤
1. https://www.mongodb.com/download-center#community下载RHEL 7 Linux 64-bit x64的版本
2. 解压到 /usr/local/mongodb/ 目录下,更名为mongodb3.4.3
3. 配置mongodb的环境变量:
> vim /etc/profile
export PATH=$PATH:/usr/local/mongodb/mongodb3.4.3/bin
> source /etc/profile
4. 创建目录结构:
> cd /usr/local/mongodb/instance
创建如下目录
.
├── config
│ ├── config.yaml
│ ├── data
│ └── log
├── data_shard_01
│ ├── data
│ ├─