云上实现NoSQL集群的自动化扩展

迅达云成(SpeedyCloud)的首席技术官董伟在会上做了主题为《云平台上的NoSQL集群的自动化扩展》的演讲。为小伙伴们演示了在云主机上创建并初始化NoSQL集群的方法;以及如何通过监控系统发现主机故障,并且自动调用云端API进行故障设备替换的过程,最后还展示了如何通过命令行的方式销毁主机的整个过程。

但是因为时间仓促,没有给小伙伴们留出太多时间进行问题解答和难点的详细介绍,所以董伟在会后将大家比较关注的一些问题整合起来,并分析了在搭建的过程中碰到的一些难点问题及解决方案,以下是他整理出来的关于这部分的内容:

大家好,很荣幸作为主讲嘉宾,在会上做了分享。不过由于时间仓促,未和大家做充分交流,所以会后我想通过该文章来解答一些大家关注的问题,并且介绍一些我们在搭建的过程中碰到的一些难点及解决方案。

在这之前,我先给大家介绍一下我们在构建过程中使用到的这款NoSQL数据库MongoDB集群的架构以及它的一些特性。

我们要构建的集群是MongoDB的复制集(Replica Set, 可以参考官方文档), 集群的结构类似于下图这样(在会上我们演示时用了1个主,4个副的结构,但原理都一样)。

在这个集群中有一个主(Primary)节点,用来接收写入操作,剩下的都是副(Secondary)节点,他们会从主节点通过同步Oplog过来,并应用到本地数据来实现数据的同步,而且集群中各个节点之间都有心跳(Heartbeat)探测,以确保集群之间的互通性。

当该集群中的主节点不可用后,剩下的节点会自动通过选举的方式产生一个新的主节点,这个过程是MongoDB集群的特性,过程如下图所示:

我当时为大家演示了三个场景:

第一个,MongoDB集群的初始化过程。我们先调用了SpeedyCloud云端的API完成了云主机的创建及启动单个MongoDB实例,当分别确认完毕数据库状态之后,通过执行一段初始化代码完成了整个集群的初始化。

第二个,MongoDB集群故障设备替换。为了模拟集群中设备故障,我们手工关闭了一台主机,然后通过监控系统的侦测,自动发现故障设备,并且调用云主机创建过程,然后调用添加成员过程实现了集群中故障设备的自动替换。

第三个,销毁整个集群。当整个集群的生命周期结束后,通过调用SpeedyCloud云端API,传入云主机的ID号来实现云主机的自动销毁过程。

在整个过程中涉及到了四个方面的技术应用:SpeedyCloud云端API的调用、Puppet配置管理系统的使用、MongoDB集群的维护以及Zabbix监控系统的使用。

我们通过在云主机中内置Puppet  Agent的方式,让它和Puppet Master进行交互,实现了密码修改以及一些配置文件的管理等;通过Zabbix Agent来实现了设备到监控系统的自动注册,及监控数据的上报功能;同时又通过Zabbix Server的Trigger实现了对故障主机的发现,以及发现故障后的处理脚本调用。这套系统的整体结构图如下所示:

时间: 2024-09-18 21:17:16

云上实现NoSQL集群的自动化扩展的相关文章

在阿里云上进行Docker集群的自动弹性伸缩

简介 在刚刚结束的云栖大会上,阿里云容器服务演示了容器的自动弹性伸缩,能够从容应对互联网应用的峰值流量.关于阿里云上容器的自动弹性伸缩,可以参考文章在阿里云上进行Docker应用的自动弹性伸缩. 同时在流量变大的时候自动进行容器的弹性伸缩,要求容器集群有很好的容量规划,必须有多余的集群资源以支持弹性扩容.但问题是当流量变大,容器扩容导致集群资源不够的时候怎么办呢,是否需要手工进行容器集群的扩容?实际阿里云容器服务不仅支持容器级别的自动弹性伸缩,也支持集群节点级别的自动弹性伸缩.从而真正做到从容应

【Hadoop Summit Tokyo 2016】操纵云上基于Hadoop 集群的YARN

本讲义出自Abhishek Modi在Hadoop Summit Tokyo 2016上的演讲,主要介绍了Qubole的Hadoop技术.Qubole的架构设计.短生命周期的Hadoop集群的相关内容以及面对的挑战以及YARN的自动扩展和不断发展的HDFS技术.

Linux集群和自动化运维

Linux/Unix技术丛书 Linux集群和自动化运维 余洪春 著 图书在版编目(CIP)数据 Linux集群和自动化运维/余洪春著. -北京:机械工业出版社,2016.8 (Linux/Unix技术丛书) ISBN 978-7-111-54438-8 I. L- II.余- III. Linux操作系统 IV. TP316.89 中国版本图书馆CIP数据核字(2016)第176055号 Linux集群和自动化运维 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037

Linux集群和自动化维导读

Preface  前言 为什么要写这本书 笔者从事系统运维和网站架构设计的工作已有10多年,现在在一家外企担任云平台架构师.云计算是现在的主流技术,未来也有很好的发展趋势,云计算的流行对于传统的运维知识体系来说,其实也造成了冲击,有很多读者经常向笔者咨询工作中的困惑,比如从事系统运维工作3-5年后就不知道该如何继续学习和规划自己的职业生涯了.因此笔者想通过此书,跟大家分享一下自己的工作经验和心得(包括传统运维和云平台运维工作的区别与对比),以期解决大家在工作中的困惑.本书提供了大量项目实践和线上

云计算-关于集群的自动化配置部署和更新方案

问题描述 关于集群的自动化配置部署和更新方案 先花些时间唠叨下我做的<XX行业生产云>的需求,然后结合着这些需求请教各位专家一系列的问题. 功能需求: 生产企业内部有局域网,连接办公环境和相关的生产设备,并且有连接互联网的出口.生产过程由办公环境(B/S架构)向局域网内的设备发送生产指令,生产的运行状态实时可以回显给办公环境.局域网内满足该需求就需要部署一个常规的Web应用服务站点加关系型数据库(目前尚不需要实时数据库)就可以完成.云计算-关于集群的自动化配置部署和更新方案-集群自动化部署&q

云环境下的集群负载分析及调度策略研究

云环境下的集群负载分析及调度策略研究 杭州电子科技大学 应俊 本文首先研究了传统数据中心的特点及其缺点,分析了云数据中心的特点,接着研究了云集群的负载监控技术以及基于libvirt的虚拟机负载搜集技术.介绍了云环境下调度的概念和特征,并以OpenStack云平台为例详细分析了云环境下的调度机制.以CloudSim为例分析了云模拟技术,并研究了其中的主要模块. 随后,为了能深入理解云数据中心负载特征,本文搜集了实际公有云中生产集群的负载数据,涉及1082个虚拟机实例和100台物理机,时间跨度为20

阿里云计算资深总监:阿里云已实现单个集群5000节点规模

阿思达克通讯社10月24日讯,阿里云计算资深总监.飞天负责人唐洪24日在http://www.aliyun.com/zixun/aggregation/13501.html">阿里云开发者大会中表示,目前阿里云实现了单个集群5000节点的规模,从1500到5000用了半年的时间,已经完成包括软硬件在内的大部分标准化工作. 据介绍,飞天5k单点集群拥有10万核计算能力.100PB存储空间,可处理15万并发任务数,承载亿级别文件数目. 所谓飞天开放服务,是指主要为用户应用程序提供了计算和存储两

Linux上搭建mysql集群,window进行远程

问题描述 Linux上搭建mysql集群,window进行远程 我想在window上远程Linux的mysql,Linux上的mysql是分布式mysql集群. 希望有经验的大牛能个指引.Linux上的mysql集群如何搭建?搭建完成后,window怎么远程? 解决方案 window下的mysql集群搭建Linux下MySQL/MariaDB Galera集群搭建过程

平台云Deis部署1-CoreOS集群安装

1.前置条件 三台云计算主机(coreos-无外网,deis要求至少三台)   一台工作机(fedora-有外网)   官方文档:http://docs.deis.io/en/latest/installing_deis/baremetal/   CoreOS离线安装参照:<平台云基石-CoreOS之离线安装篇(无需互联网)>   CoreOS集群明细参照:<平台云基石-CoreOS之集群篇(无需互联网)>   官方要求最低CoreOS版本为472.0.0,本例使用的是494.0.