sahara的架构

背景

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.openstack.org/wiki/TaskFlow实现相关功能。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值