MongoDB分片集群(Sharding whith Replica Set)
1. Shard Server: mongod实例,用于存储实际的数据块,实际生产环境中一个Shard Server角色可由几台机器组个一个Replica Set承担,防止主机单点故障。
2. Config Server: mongod实例,存储了整个Cluster Metadata,其中包括Chunk信息。
3. Route Server: mongos实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。
Sharding架构图如下:
因为是实验环境,我这里只是用一台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