日期:2014-05-16 浏览次数:20470 次
?
?
?
Sharding cluster介绍
这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统。
?要构建一个 MongoDB Sharding Cluster,需要三种角色:
Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障
?
Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。
Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。
Sharding架构图:
本例架构示例图:
主机? | IP | 端口信息 |
Server1 | 10.1.1.1 | mongod shard11:27017 mongod shard12:27018 mongod config1:20000 mongs1:30000 |
Server2 | 10.1.1.2 | mongod shard12:27017 mongod shard22:27018 mongod config2:20000 mongs2:30000 |
Server3 | 10.1.1.3 | mongod shard13:27017 mongod shard23:27018 mongod config3:20000 mongs3:30000 |
软件准备
1.?创建用户
groupadd -g 20001 mongodb
useradd -u 20001 -g mongodb mongodb
passwd mongodb
2.?安装monodb软件
su – mongodb
tar zxvf mongodb-linux-x86_64-1.6.2.tar
安装好后,目录结构如下:
$ tree mongodb-linux-x86_64-1.6.2
mongodb-linux-x86_64-1.6.2
|– GNU-AGPL-3.0
|– README
|– THIRD-PARTY-NOTICES
`– bin
??? |– bsondump
??? |– mongo
??? |– mongod
??? |– mongodump
??? |– mongoexport
??? |– mongofiles
??? |– mongoimport
??? |– mongorestore
??? |– mongos
??? |– mongosniff
??? `– mongostat
1 directory, 14 files
3.?创建数据目录
根据本例sharding架构图所示,在各台sever上创建shard数据文件目录
Server1:
su – monodb
cd /home/monodb
mkdir -p data/shard11
mkdir -p data/shard21
Server2:
su – monodb
cd /home/monodb
mkdir -p data/shard11
mkdir -p data/shard22
Server3:
su – monodb
cd /home/monodb
mkdir -p data/shard13
mkdir -p data/shard23
1.?配置shard1所用到的replica sets:
Server1:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod –shardsvr –replSet shard1 –port 27017 –dbpath /home/mongodb/data/shard11 –oplogSize 100 –logpath /home/mongodb/data/shard11.log –logappend –fork
Server2:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod –shardsvr –replSet shard1 –port 27017 –dbpath /home/mongodb/data/shard12 –oplogSize 100 –logpath /home/mongodb/data/shard12.log –logappend –fork
Server3:
cd /home/mongodb/mongodb-linux-x86_64-1.6.2/bin
./mongod –shardsvr –replSet shard1 –port 27017 –dbpath /home/mongodb/data/shard13 –oplogSize 100 –logpath /home/mongodb/data/shard13.log –logappend –fork
初始化replica set
用mon