MongoDB分片集群(Sharding whith Replica Set)

MongoDB Sharding Cluster是一种可以水平扩展的模式,在数据量很大时特给力,一直想研究一下,要构建一个MongoDB Sharding Cluster,需要三种角色:

    1. Shard Server: mongod实例,用于存储实际的数据块,实际生产环境中一个Shard Server角色可由几台机器组个一个Replica Set承担,防止主机单点故障。

    2. Config Server: mongod实例,存储了整个Cluster Metadata,其中包括Chunk信息。

    3. Route Server: mongos实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

    Sharding架构图如下:

MongoDB分片集群(Sharding whith Replica Set)

    因为是实验环境,我这里只是用一台Linux服务器,基本信息如下:

    1. 3个分片Sharding

    2. 每一个分片由3个节点构成1主2备的Replica Set

    3. 3个配置节点Configsvr

    4. 1个路由节点Mongos

    分片复制集A(三个分片节点构成一个复制集):127.0.0.1:10000   127.0.0.1:10001  127.0.0.1:10002

    分片复制集B(三个分片节点构成一个复制集):127.0.0.1:20000   127.0.0.1:20001  127.0.0.1:20002

    分片复制集C(三个分片节点构成一个复制集):127.0.0.1:30000   127.0.0.1:30001  127.0.0.1:30002

    Configsvr(三个配置服务器节点):127.0.0.1:40000   127.0.0.1:40001  127.0.0.1:40002

    Mongos(一个路由节点):127.0.0.1:50000

    详细操作步骤如下:

    1. 下载并安装MongoDB,并创建MongoDB用户

tar zxvf mongodb-linux-i686-2.0.4.tgz -C /usr/local/  



mv /usr/local/mongodb-linux-i686-2.0.4/ /usr/local/mongodb/  




ln -s /usr/local/mongodb/bin/* /usr/bin/  



 


groupadd -g 20001 mongodb  


useradd -u 20001 -g mongodb mongodb  


 


su - mongodb 

    2. 创建相关目录

mkdir -p /home/mongodb/data/shard1/r0  


mkdir -p /home/mongodb/data/shard1/r1  


mkdir -p /home/mongodb/data/shard1/r2  


mkdir -p /home/mongodb/data/shard1/config  


 


mkdir -p /home/mongodb/data/shard2/r0  


mkdir -p /home/mongodb/data/shard2/r1  


mkdir -p /home/mongodb/data/shard2/r2  


mkdir -p /home/mongodb/data/shard2/config  


 


mkdir -p /home/mongodb/data/shard3/r0  


mkdir -p /home/mongodb/data/shard3/r1  


mkdir -p /home/mongodb/data/shard3/r2  



mkdir -p /home/mongodb/data/shard3/config    

相关推荐