MongoDB高可用架构—Replica Set 集群实战

Replica Set使用的是n个mongod节点,构建具备自动的容错功能(auto-failover),自动恢复的(auto-recovery)的高可用方案。
使用Replica Set来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。
对于Replica Set中的secondary 节点默认是不可读的。 
 
 架构: 
    192.168.8.30 192.168.8.31 192.168.8.32

replica set1 :    shard11    shard12         shard13

replica set2 :    shard21    shard22         shard23

config     :    config    config    config

mongos      :     mongos    mongos          mongos

架构图:
MongoDB高可用架构—Replica Set 集群实战
 
分别在各服务器上运行两个mongod实例: 

shard11 + shard12 + shard13 ----> 组成一个replica set --|
  |-----> sharding_cluster
shard21 + shard22 + shard23 ----> 组成一个replica set --|
 
Shard Server: 用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障!
Config Server: 存储了整个 Cluster Metadata,其中包括 chunk 信息!
Route Server: 前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。
 
一、安装配置mongodb环境
1.安装
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.4.tgz 


tar zxf mongodb-linux-x86_64-2.0.4.tgz 


mv mongodb-linux-x86_64-2.0.4 /opt/mongodb 


echo "export PATH=$PATH:/opt/mongodb/bin" >> /etc/profile 


source /etc/profile 
2.建立用户和组
useradd -u 600 -s /bin/false mongodb  
3.创建数据目录
在各服务器上建立如下目录:
30服务器: 


mkdir -p /data0/mongodb/{db,logs} 


mkdir -p /data0/mongodb/db/{shard11,shard21,config} 


31服务器: 


mkdir -p /data0/mongodb/{db,logs} 


mkdir -p /data0/mongodb/db/{shard12,shard22,config} 


32服务器: 


mkdir -p /data0/mongodb/{db,logs} 


mkdir -p /data0/mongodb/db/{shard13,shard23,config} 
4.设置各节点服务器hosts解析
 
true > /etc/hosts  


echo -ne " 


192.168.8.30     mong01  


192.168.8.31     mong02 


192.168.8.32     mong03 


" >>/etc/hosts 


  


或 


cat >> /etc/hosts << EOF 


192.168.8.30     mong01  


192.168.8.31     mong02 


192.168.8.32     mong03 


EOF 

 
5.同步时钟
ntpdate ntp.api.bz
写到crontab任务计划中!
这里务必要同步时钟,不然shrad不能同步!
 
以上配置各节点都进行操作!!

相关推荐