分享

sahara的架构

 karamos 2014-03-31

背景

sahara(以前叫savanna)以前是openstack的孵化项目,但是从openstack的下一个版本juno开始将成为openstack的核心项目,它是由领先的Apache Hadoop贡献方Hortonworks公司,最大的OpenStack 系统集成商Mirantis公司,以及全球领先的开源解决方案及最新版OpenStack的最大贡献方红帽公司联合发起的。Sahara项目旨在为OpenStack用户提供一种简单、快捷地部署以及管理Hadoop集群的方案,类似于亚马逊Elastic MapReduce (EMR) 服务。本文主要讨论一下sahara当前和今后的架构演进。

sahara当前的架构


sahara的架构由一下服务组件构成:
1.集群配置管理器---所有的业务逻辑都在这里组装
2.鉴权组件---作为鉴权服务的client
3.数据访问层---负责在数据库中持久化内部的数据模型
4.虚拟机配置---负责与nova和glance交互
5.部署引擎---插件机制,负责部署hadoop到配置好的vm上;已经存在的管理方案如apache ambari 和 cloudera managent console可用于此
6.REST API---通过REST风格的接口暴露sahara的功能
7.python sahara client---和其他openstack组件一样sahara也有他的python客户端库

sahara的下一代架构以及相关工作

当前sahara还是一个只有单独一个python进程组成的服务,所有的rest api,数据库的交互,配置机制都在一起运行,这就产生了许多问题,诸如在创建cluster的过程中过高的I/O压力负载,缺乏高可靠性保障等问题。
所以社区就倾向对sahara重新架构,,这方面将分成两个阶段的工作:

第一阶段,拆分sahara为多个服务组件

sahara-api(s-api):负责rest api;插件和操作的校验,创建最初的操作任务
sahara-conductor(s-conductor):负责与数据库的交互和相关的封装
sahara-engine(s-engine):负责执行任务包括长时间运行的任务,与其他openstack服务交互(即调用nova,glance,cinder创建虚拟机和卷等)

第二阶段,为配置任务实现高可靠性

sahara中所有重要的任务都应该是可靠的。所以也就要求支持事务和回滚。这里社区倾向于使用https://wiki./wiki/TaskFlow实现相关功能。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多