MongoDB 副本集+分片 架构部署
MongoDB 副本集+分片 架构部署
Replica Set + Sharding 配置部署
准备工作
架构设计
需要三台机器(racdb,host8,host9):
- 数据节点,sharding2片
- 每个sharding为Replic Set方式,冗余度为3(主、从、延迟从)
- mongos(路由节点),数量为3
- config server(配置服务器节点),数量为3
- arbiter server(表决节点),数量为6
Mongodb ReplicaSET+Sharding架构如下:
系统配置
软件环境:
OS:Oracle Linux 6.5
MongoDB:mongodb3.2.3
下载地址:
mongodb-linux-x86_64-rhel62-3.2.3.tgz
更多MongoDB相关教程见以下内容:
CentOS 编译安装 MongoDB与mongoDB的php扩展
CentOS 6 使用 yum 安装MongoDB及服务器端配置
Ubuntu 13.04下安装MongoDB2.4.3
MongoDB入门必读(概念与实战并重)
Ubunu 14.04下MongoDB的安装指南
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
Nagios监控MongoDB分片集群服务实战
基于CentOS 6.5操作系统搭建MongoDB服务
创建用户:
# 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. 自动部署脚本
在三个机器分别配置shard1、shard2、arbiter、config server、mongos需要的参数文件
机器1(racdb)
# 数据节点
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
机器2(host8)
#数据节点
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
机器3(host9)
#数据节点
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启动shard1、shard2、arbiter1、arbiter2服务
# 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启动shard1、shard2、arbiter1、arbiter2服务
# 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启动shard1、shard2、arbiter1、arbiter2服务
# 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
然后在server1、server2、server3上分别启动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
更多详情见请继续阅读下一页的精彩内容:
|
评论暂时关闭