在Microsoft Azure上使用CentOS虚拟机部署Mongo数据库高可用集群

MongoDB应用已经非常普遍,根据DB-Engine的最新统计,MongoDB在所有NoSQL数据库中,流行程度排名第一;而在全部数据库中它的流行程度已经排名第5。

MongoDB的一大优点在于其灵活的数据模型,它允许开发者以JSON格式的文档来表示和存储数据。此外,MongoDB在企业中的普及与其高可用性也关系紧密。在这篇文章里,我们将介绍如何基于MicrosoftAzure上的CentOS虚拟机来创建Mongo数据库集群。

MongoDB的数据复制原理

MongoDB目前建议采用副本集的方式来实现高可用性,其特点如下:

1.      副本集是一组包含相同数据集合的mongod进程实例。

2.      副本集包含一个主节点(Primary)和多个副节点(Secondary)。副本集一般情况下应该包含奇数个节点,以便于竞选主节点。

3.      主节点负责接收和处理客户端的所有写操作。主节点会把所有的数据集合的改变记录在oplog中。

4.      从节点会以异步的方式复制主节点的oplog,并在自己的数据集合上重新执行这些操作,从而保证数据的严格一致。

5.      当主节点不可用,系统会从副本集中自动选择一个从节点作为主节点。

6.      客户端缺省是从主节点读取数据,但可以指定其它读策略,使得也可以从副节点读取数据,从而提高读的效率。

更多细节可以参考官方文档:http://docs.mongodb.org/manual/core/replication-introduction/

集群的部署架构

在本文中,我们采用的是一主两从的部署架构。在这种架构下,即使主节点不可用,仍然可以确保在从节点中选出新的主节点。

在Azure上,我们将为主节点和两个从节点各分配一个虚拟机,并且要保证这三台虚拟机处于同一个可用性集内,这样它们将被Azure置于不同的更新域和故障域中。此外,我们将把这三个虚拟机置于同一个云服务和虚拟网络之中,整个系统的架构如下图所示:


本文的系统配置如下:虚拟机基于CentOS 6.5,MongoDB使用2.6。

创建虚拟机及其外围环境

在创建虚拟机之前,我们需要先创建地缘组、存储账户、虚拟网络和云服务,其步骤可参见《在WindowsAzure上基于CentOS 6.3部署MySQL 5.6主从式数据库(1)》。这里不再赘述。

完成上述工作之后,在Azure的管理门户中选择CentOS6.5映像,创建第一个虚拟机:

设置好该虚拟机所在的云服务、虚拟网络和存储账户,如下图:


依次建好三个虚拟机,在每个虚拟机的“配置”页面,将虚拟机加入同一个可用性集中,这样,三个虚拟机不会位于同一个物理节点,从而可以保证高可用性。如下图所示:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值