摘要

OpenStack从2010年开源至今,已经走过9个年头,其正在进入主流企业市场,但该项目依然面临较难部署和管理的老问题。有一点是毫无疑问的,那就是OpenStack保持着高速增长的态势,超过585家企业,接近4万人通过各种方式支持着这个超过2000万行的开源项目的持续发展。

ZStack项目初始于2015年,相对OpenStack要年轻很多,由于其具有易用、稳定、灵活、超高性能等特点,迅速成为市场的新宠儿,其功能在不断的完善,其性能在不断的加强。发展以及成熟的速度远快于OpenStack,其市场认可程度不弱于OpenStack。

介绍

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。开源于2010年,当前最新版本Queens。

ZStack是下一代开源的云计算IaaS(基础架构即服务)软件。它主要面向的是未来的智能数据中心,通过提供全完善的API来管理包括计算、存储和网络在内的数据中心的各种资源。ZStack具有易用、稳定、灵活、超高性能等特点。分为商业版以及开源社区版本。起步于2015年,当前最新版本3.7.1。

架构

OpenStack架构图如下图。以前有个朋友吐槽说,这是一群小蜘蛛在结网,虽然有序,但每一个小蜘蛛的网都不尽相同。当这些网连起来的时候,就会让人看的眼花缭乱。因为每一次的请求任务都需要在各个子系统之间来回协调,任何一处出问题,都将导致创建失败。比如当创建虚拟机的时候,需要从认证,计算,网络,镜像,存储等环节都走通,否则就不要想创建一个健康运行的虚拟机。下面的图展示出了OpenStack的主要的几个组件的调用关系。

消息队列在OpenStack整个架构中扮演着至关重要的作用,正是因为OpenStack部署的灵活性、模块的松耦合、架构的扁平化,反而使OpenStack更加依赖于消息队列,所以消息队列收发消息的性能和消息队列的HA能力直接影响OpenStack的性能。最典型的场景就是如果当大量的监控数据充斥着消息队列时,平台性能将呈现直线下滑。下图展示出了OpenStack中消息队列关系。

OpenStack相比,ZStack服务之间的交互调用要简单很多,消息队列为核心,所有服务交互都通过消息队列,结构拓扑呈现星状,简单直接,因而核心出问题就会影响到大多数的功能。但全异步架构以及无状态服务大大加强了平台的健壮。ZStack的强一致性使其很简单就可以实现HA,而无需像OpenStack那样必须借助第三方工具实现HA高可用。下图展示了ZStack的星形拓扑结构。

部署

安装一直是OpenStack的几大难题之一,尤其是对刚接触到OpenStack的新人而言。这也客观上提高了大家学习OpenStack云计算的技术门槛。笔者13年开始接触OpenStack,有幸在公司申请到三台高配的物理服务器一个月的使用权限。作为一个OpenStack小白,当时的规划是一星期的安装,一星期的架构学习,两星期的综合学习,最后变成一个月都是在安装。想想,直到现在都是满眼心酸泪。当然这都是早时期,现在针对部署与安装也有了很多工具,比如puppet,ansible,容器化的kolla。虽然这些工具也大大简化了OpenStack的部署安装,但是依然却无法解决openstack运维的复杂度,更不用说后续新版本的升级。

安装部署以及升级对ZStack而言,从来都是简单,快速,无感。ZStack自定义了ISO,封装了网络配置以及ZStack服务管理的命令,哪怕是一个运维小白也能够很快安装好一个ZSack平台,不需要太长的学习周期。同时官方文档以及案例都很齐全,有任何问题只要在官方群里留言都能获取ZStack一线工程师快速的恢复。

计算、存储与网络

OpenStack的计算,存储,网络组件分别是nova,cinder,neutron。其中nova作为最早期的项目,其成熟度已经很高,稳定性已经大大加强,功能也在不停的扩展。比如GPU支持,裸机管理,heat编排,容器编排,大数据计算等。cinder作为核心的块存储模块在openstack中提供着至关重要的角色,后端支持ceph,lvm,glusterfs,nfs以及各种商业存储,配置比较麻烦,需要更改配置文件,调试,重启服务,甚至是更改代码去适配对应的存储。至于云主机默认是不支持增量快照的,只支持全量备份功能,针对传统的系统盘庞大的情况,会影响效率,浪费磁盘空间。

neutron是网络管理模块,底层支持flat,vlan,vxlan,gre等网络模式。neutron支持多种高级特性,比如vpn功能,负载均衡功能,HA功能,DVR功能。可用性还是比较强的,而且针对很多厂商的网络设备都有plugin支持。当然,neutron的效率,复杂性也是容易让人诟病的,至今,已经有多次的代码重构。当然,重构也不仅仅是因为代码混乱复杂以及效率低的问题,同时也是为了能够与openstack的其他项目,如容器的kuryr等项目更好的结合使用。

相对而言ZStack就会简单容易很多。ZStack在一键安装之后,无论是计算,存储还是网络,都只要在页面控制台点击操作相应的资源,不涉及到任何后端复杂配置修改。配置修改实时生效,也不需要重启任何服务。ZStack计算节点页面添加,拥有动态扩容,实时监控,自动愈合等多种特性,无需过多的人工参与。不管是开源的ceph,glusterf,nfs还是商业的Fusionstor,san光钎存储,页面直接添加。云主机与云盘都支持增量快照,全量备份功能,这一点与OpenStack完全相反。

ZStack的网络模型是二层+三层,二层决定了是novlan,vlan,vxlan的类型,三层决定了是扁平,路由,vpc的类型。网络灵活配置。同时,物理网卡支持复用,可以创建多个同种类型的二层网络。支持分布式网络,可以缓解dns的压力与优化东西向的流量,云路由网络以及vpc网络是使用优化过的vyos作为平台路由器,配置简单,支持多种高级特性,可以支持热迁移,支持分布式,稳定性以及性能都不错。虽然不支持HA功能,但是自愈能力强。vyos本质上是虚拟机,因此会占一定的宿主机资源,性能与物理设备相比较而言会有部分损耗。

运维监控

早期的OpenStack云平台监控项目Ceilometer被一分为四(Ceilometer、Gnocchi、Aodh、Panko),各司其职!其中Ceilometer负责采集计量数据并加工预处理;Gnocchi主要用来提供资源索引和存储时序计量数据;Aodh主要提供预警和计量通知服务;Panko主要提供事件存储服务。促成Ceilometer分裂的主要原因是性能开销很大,并且随着时间的推移性能瓶颈会愈加明显直至崩溃。至于底层运维监控可以使用zabbix,也可以集成到现有的ceilometer体系中。至今,OpenStack已经发展到Queens版本,监控依然是其性能瓶颈之一。dashboard默认没有集成监控与告警,需要额外的自定义开发。

ZStack的监控方案采用开源prometheus和influxdb,监控信息存储在prometheus数据库,告警则使用prometheus自带的alertmanager,至于事件以及审计等信息存储在influxdb与mysql数据库中。平台拥有大多数的监控项,支持自定义告警项添加,但暂时还未支持模板方式批量添加监控告警项。借助于prometheus的高效率的函数计算以及汇聚,zstack也提供了监控大屏和监控top5的功能,有助于实时分析平台的资源使用情况。当然,openstack也可以借助prometheus或者zabbix实现类似的功能。

其他

OpenStack是当前最流行,同时也是目前最为流行的开源云操作系统框架。OpenStack提供的不仅仅提供IAAS的服务,同时也提供PAAS服务,不管其孵化项目是否成熟,但至少拥有了一个开放,廉价的解决方案,比如数据库服务,容器服务,大数据处理,裸机管理,计费管理等项目。国内的也有公有云等借助或者借鉴OpenStack,而实现了自身的安全稳定的公有云平台。而也有专业的OpenStack厂商实现了私有云或混合云平台。近几年来,OpenStack借助国家去IOE的策略,已经遍布多家银行,政企以及运营商。

相对OpenStack,ZStack依然很年轻。其核心以是私有云与混合云为主,主要提供IAAS服务,核心代码开源,提供企业版本。几乎每个月都会发布一个新版本,但是升级基本不会存在任何问题,一句命令全部搞定,这一点是OpenStack远远比不上的。尽管如此,当前在某些方面,ZStack还是无法替代openstack相比,比如容器服务,数据库服务,大数据管理等。至于以后ZStack是否会添加新功能,那要等以后再说。

OpenStack与ZStack深度对比:架构、部署、计算、运维监控等的更多相关文章

  1. Docker集群管理工具 - Kubernetes 部署记录 (运维小结)

    一.  Kubernetes 介绍 Kubernetes是一个全新的基于容器技术的分布式架构领先方案, 它是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernete ...

  2. 运维监控-基于yum的方式部署Zabbix Server 4.0 版本

    运维监控-基于yum的方式部署Zabbix Server 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.如何选择zabbix版本 1>.打开zabbix官方 ...

  3. 运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本

    运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上一篇博客我们分享了如何基于yum的方式部署zabbix 4. ...

  4. ZStack深度试用:部署、架构与网络及其与OpenStack的对比

    摘要:本文是开源IaaS软件ZStack的深度试用报告,分别从部署.架构和网络三个层面分享作者的试用体验,并与OpenStack进行简单的对比,文章最后也对ZStack的改进方向提出了自己的思考.(转 ...

  5. 浅谈SDN架构下的运维工作

    导读 目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类 ...

  6. Storm流计算从入门到精通之技术篇(高并发策略、批处理事务、Trident精解、运维监控、企业场景)

    1.Storm全面.系统.深入讲解,采用最新的稳定版本Storm 0.9.0.1 :   2.注重实践,对较抽象难懂的技术点如Grouping策略.并发度及线程安全.批处理事务.DRPC.Storm ...

  7. CentOS 7.5 部署蓝鲸运维平台

    环境准备 官方建议 准备至少3台 CentOS 7 以上操作系统的机器 最低配置:2核4G 建议配置: 4核12G 以上 部署前关闭待安装主机之间防火墙,保证蓝鲸主机之间通信无碍 部署前关闭SELin ...

  8. openstack的部署与运维

    来公司几个月了,除了搭建了kvm虚拟机,使用3台虚拟机组合成一个openstack的网络环境.还没有正式将openstack搭建起来过.时间都在开发web程序.不过openstack也是要学习的.只能 ...

  9. Docker环境下的前后端分离项目部署与运维(六)搭建MySQL集群

    单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...

随机推荐

  1. android 点击无效验证

    背景 在写一个东西滑动删除列表的时候,出现了一个问题.我的需求是,左滑然后出现delete,然后点击delete,让该滑块消失. 我在点列表的第一行的时候,左滑,出现delete,点击删除,ok的,完 ...

  2. UIImageView与基本动画gif

    UIImageView 作用:[用来进行图片展示] UIImageView UIImageView初始化 initWithImage:如果设置frame,图片的size就是 imageView的siz ...

  3. multipart/form-data 文件上传表单中 传递参数无法获取的原因!

    1.什么是multipart/form-data 首先我们需要明白在html中的enctype属性, enctype:规定了form表单在发送到服务器时候编码方式.他有如下的三个值. ①applica ...

  4. 2017 ACM/ICPC 沈阳 F题 Heron and his triangle

    A triangle is a Heron’s triangle if it satisfies that the side lengths of it are consecutive integer ...

  5. (全国多校重现赛一)E-FFF at Valentine

    At Valentine's eve, Shylock and Lucar were enjoying their time as any other couples. Suddenly, LSH, ...

  6. iSensor App Kit 测试之 MT9V111 MT9M111 MT9D111

    iSensor App Kit 可以调试测试一切常规的sensor,对于ccusb20底板,可以直接兼容官哥所有的dvp接口的摄像头,分辨率从30w到1400w均没问题. 今天又测试了三款sensor ...

  7. 面试完腾讯,总结了这12道Zookeeper面试题!

    前言 ZooKeeper 是一个开源的分布式协调服务,可以基于 ZooKeeper 实现诸如:数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理.Master 选举.配置维护,名字服务.分 ...

  8. java基础篇二

    引言 滴,第二天卡. 五.关键字 -static         -初始化顺序             -静态变量和静态语句块优先于实例变量和普通语句块,静态变量和静态语句块的初始化顺序取决于它们在代 ...

  9. Vue使用Viser

    最近产品经理发现antV的图表非常漂亮,想在项目里使用,看了下文档antV适用于Vue的分支叫Viser,Viser的官方文档写的有点随意,在此给出Vue中使用Viser的方法如下: 1.安装Vise ...

  10. ssh jail

    useradd -s /sbin/nologin -M updateuserpasswd updateusermkdir /home/updatechown root:root /home/updat ...