MongoDB 副本集+分片 架构部署

Replica Set + Sharding  配置部署

准备工作

架构设计

 

需要三台机器(racdb,host8,host9)

  • 数据节点, sharding2
  • 每个 sharding Replic Set 方式,冗余度为 3 (主、从、延迟从)
  • mongos( 路由节点 ) ,数量为 3
  • config  server( 配置服务器节点 ) ,数量为 3
  • arbiter server( 表决节点 ) ,数量为 6

 

Mongodb ReplicaSET+Sharding架构如下:

 

系统配置

软件环境:

MongoDB:mongodb3.2.3

 

下载地址:

mongodb-linux-x86_64-rhel62-3.2.3.tgz

 

更多MongoDB相关教程见以下内容

 

 

 

 

 

 

 

 

基于CentOS 6.5操作系统搭建MongoDB服务 http://www.linuxidc.com/Linux/2014-11/108900.htm

 

 

创建用户:

# groupadd mongod

# useradd -g mongod mongod

 

配置hosts

# vi /etc/hosts

10.1.5.x1     racdb                    racdb.localdomain

10.1.5.x2     host8       host8.localdomain

10.1.5.x3    host9       host9.localdomain

 

解压文件:

# tar zxvf mongodb-linux-x86_64-rhel62-3.2.3.tgz

# mv mongodb-linux-x86_64-3.x.x/ /home/mongod/mongodb

 

安装部署

1.     自动部署脚本

在三个机器分别配置shard1shard2arbiterconfig servermongos需要的参数文件

 

机器1racdb

# 数据节点

mkdir -p /home/mongod/mongodb/shard11

cat > /home/mongod/mongodb/shard11/shard11.conf <<EOF

shardsvr=true

replSet=shard1

port=28017

dbpath=/home/mongod/mongodb/shard11

oplogSize=2048

logpath=/home/mongod/mongodb/shard11/shard11.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

mkdir -p /home/mongod/mongodb/shard21

cat > /home/mongod/mongodb/shard21/shard21.conf <<EOF

shardsvr=true

replSet=shard2

port=28018

dbpath=/home/mongod/mongodb/shard21

oplogSize=2048

logpath=/home/mongod/mongodb/shard21/shard21.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

#表决节点

mkdir -p /home/mongod/mongodb/arbiter1

cat  >  /home/mongod/mongodb/arbiter1/arbiter1.conf <<EOF

shardsvr=true

replSet=shard1

port=28031

dbpath=/home/mongod/mongodb/arbiter1

oplogSize=100

logpath=/home/mongod/mongodb/arbiter1/arbiter1.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

mkdir -p /home/mongod/mongodb/arbiter2

cat > /home/mongod/mongodb/arbiter2/arbiter2.conf <<EOF

shardsvr=true

replSet=shard2

port=28032

dbpath=/home/mongod/mongodb/arbiter2

oplogSize=100

logpath=/home/mongod/mongodb/arbiter2/arbiter2.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

#配置节点

mkdir -p /home/mongod/mongodb/config/

cat > /home/mongod/mongodb/config/config1.conf <<EOF

configsvr=true

dbpath=/home/mongod/mongodb/config/

port=20000

logpath=/home/mongod/mongodb/config/config1.log

logappend=true

fork=true

httpinterface=true

#nojournal=true

EOF

 

#路由节点

mkdir -p /home/mongod/mongodb/mongos

cat > /home/mongod/mongodb/mongos/mongos1.conf <<EOF

configdb=racdb:20000,host8:20000,host9:20000

port=28885

chunkSize=100

logpath=/home/mongod/mongodb/mongos/mongos1.log

logappend=true

fork=true

EOF

 

 

机器2host8

#数据节点

mkdir -p /home/mongod/mongodb/shard12

cat > /home/mongod/mongodb/shard12/shard12.conf <<EOF

shardsvr=true

replSet=shard1

port=28017

dbpath=/home/mongod/mongodb/shard12

oplogSize=2048

logpath=/home/mongod/mongodb/shard12/shard12.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

mkdir -p /home/mongod/mongodb/shard22

cat > /home/mongod/mongodb/shard22/shard22.conf <<EOF

shardsvr=true

replSet=shard2

port=28018

dbpath=/home/mongod/mongodb/shard22

oplogSize=2048

logpath=/home/mongod/mongodb/shard22/shard22.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

#表决节点

mkdir -p /home/mongod/mongodb/arbiter1

cat  >  /home/mongod/mongodb/arbiter1/arbiter1.conf<<EOF

shardsvr=true

replSet=shard1

port=28031

dbpath=/home/mongod/mongodb/arbiter1

oplogSize=100

logpath=/home/mongod/mongodb/arbiter1/arbiter1.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

mkdir -p /home/mongod/mongodb/arbiter2

cat > /home/mongod/mongodb/arbiter2/arbiter2.conf <<EOF

shardsvr=true

replSet=shard2

port=28032

dbpath=/home/mongod/mongodb/arbiter2

oplogSize=100

logpath=/home/mongod/mongodb/arbiter2/arbiter2.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

#配置节点

mkdir -p /home/mongod/mongodb/config/

cat > /home/mongod/mongodb/config/config2.conf <<EOF

configsvr=true

dbpath=/home/mongod/mongodb/config/

port=20000

logpath=/home/mongod/mongodb/config/config2.log

logappend=true

fork=true

#nojournal = true

EOF

 

 

#路由节点

mkdir -p /home/mongod/mongodb/mongos

cat >/home/mongod/mongodb/mongos/mongos2.conf <<EOF

configdb=racdb:20000,host8:20000,host9:20000

port=28885

chunkSize=100

logpath=/home/mongod/mongodb/mongos/mongos2.log

logappend=true

fork=true

EOF

 

 

机器3host9

#数据节点

mkdir -p /home/mongod/mongodb/shard13

cat > /home/mongod/mongodb/shard13/shard13.conf <<EOF

shardsvr=true

replSet=shard1

port=28017

dbpath=/home/mongod/mongodb/shard13

oplogSize=2048

logpath=/home/mongod/mongodb/shard13/shard13.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

mkdir -p /home/mongod/mongodb/shard23

cat > /home/mongod/mongodb/shard23/shard23.conf <<EOF

shardsvr=true

replSet=shard2

port=28018

dbpath=/home/mongod/mongodb/shard23

oplogSize=2048

logpath=/home/mongod/mongodb/shard23/shard23.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

#表决节点

mkdir -p /home/mongod/mongodb/arbiter1

cat  >  /home/mongod/mongodb/arbiter1/arbiter1.conf<<EOF

shardsvr=true

replSet=shard1

port=28031

dbpath=/home/mongod/mongodb/arbiter1

oplogSize=100

logpath=/home/mongod/mongodb/arbiter1/arbiter1.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

mkdir -p /home/mongod/mongodb/arbiter2

cat > /home/mongod/mongodb/arbiter2/arbiter2.conf <<EOF

shardsvr=true

replSet=shard2

port=28032

dbpath=/home/mongod/mongodb/arbiter2

oplogSize=100

logpath=/home/mongod/mongodb/arbiter2/arbiter2.log

logappend=true

fork=true

rest=true

httpinterface=true

nojournal = true

EOF

 

 

#配置节点

mkdir -p /home/mongod/mongodb/config/

cat > /home/mongod/mongodb/config/config3.conf <<EOF

configsvr=true

dbpath=/home/mongod/mongodb/config/

port=20000

logpath=/home/mongod/mongodb/config/config3.log

logappend=true

fork=true

#nojournal = true

EOF

 

 

#路由节点

mkdir -p/home/mongod/mongodb/mongos

cat >/home/mongod/mongodb/mongos/mongos3.conf <<EOF

configdb=racdb:20000,host8:20000,host9:20000

port=28885

chunkSize=100

logpath=/home/mongod/mongodb/mongos/mongos3.log

logappend=true

fork=true

EOF

 

 

2. 启动服务

 

--Server1启动shard1shard2arbiter1arbiter2服务

# server 1

mongod --config /home/mongod/mongodb/shard11/shard11.conf

mongod --config /home/mongod/mongodb/shard21/shard21.conf

mongod --config /home/mongod/mongodb/arbiter1/arbiter1.conf

mongod --config /home/mongod/mongodb/arbiter2/arbiter2.conf

mongod --config /home/mongod/mongodb/config/config1.conf

 

--Server2启动shard1shard2arbiter1arbiter2服务

# server 2

mongod --config /home/mongod/mongodb/shard12/shard12.conf

mongod --config /home/mongod/mongodb/shard22/shard22.conf

mongod --config /home/mongod/mongodb/arbiter1/arbiter1.conf

mongod --config /home/mongod/mongodb/arbiter2/arbiter2.conf

mongod --config /home/mongod/mongodb/config/config2.conf

 

--Server3启动shard1shard2arbiter1arbiter2服务

# server 3

mongod --config /home/mongod/mongodb/shard13/shard13.conf

mongod --config /home/mongod/mongodb/shard23/shard23.conf

mongod --config /home/mongod/mongodb/arbiter1/arbiter1.conf

mongod --config /home/mongod/mongodb/arbiter2/arbiter2.conf

mongod --config /home/mongod/mongodb/config/config3.conf

 

然后在server1server2server3上分别启动mongos服务

# server1

mongos --config /home/mongod/mongodb/mongos/mongos1.conf

# server2

mongos --config /home/mongod/mongodb/mongos/mongos2.conf

# server2

mongos --config /home/mongod/mongodb/mongos/mongos3.conf

猜你喜欢

转载自www.linuxidc.com/Linux/2016-04/130009.htm