继《零起点部署大数据虚拟化》系列教程之后,本着“知其然,亦知其所以然”的原则,本系列走进大数据虚拟化的内部,分上下两篇博文,帮助读者了解vSphere Big Data Extensions(以下简称BDE)的部署架构和系统架构,理解部署原理和内部构成,以及各自的作用。希望对您有所帮助,也欢迎您留言评价。
上: Serengeti虚拟化应用
下: Serengeti管理服务器的系统架构(即本文)
Serengeti管理服务器的系统架构
Serengeti管理服务器包括几个重要的模块:Serengeti Web Service,Ironfan Service,Chef Server,Package Repository和vHadoop Runtime Manager。这里会简单介绍各个模块的功能。
Serengeti管理服务器的系统架构图
Serengeti Web Service
Serengeti Web Service是Serengeti的工作流控制中心,提供对外的RESTAPI,外部客户端可以通过REST API访问所有Serengeti提供的功能。
这是一个运行在Tomcat之上的Web Service,大量使用了SpringFramework提供的各种功能,包括使用Spring Batch进行Workflow的控制,Spring Security保证用户安全性,Spring MVC提供REST API,以及集成Hibernate进行内部数据的管理。
Web Service同时集成了vCenter Extension的注册和管理。在Serengeti部署完成之后,注册成为vCenter的扩展服务器。负责和VC的通讯,VC 会话的管理,虚拟机的创建,配置和管理。
在Web Service中,一个重要的功能就是虚拟机的分布计算(Virtual Machine Placement)。
在虚拟化环境之下,用户提出的请求通常都是创建多少个node,可用的资源有哪些,比如那些主机(host),那些存储(datastore)可以使用。那么在这些要求之下,我们面对的一个问题抽象来说,就是在n个host之上,创建m个VM,每个VM的硬盘,网络有一定的要求。
在这个命题之下,Serengeti为了满足hadoop对资源使用的特殊要求,开发了一些通用的分布算法。比如典型的应用是在可用host之上平均分布。这样就保证Hadoop的节点不会分布在同一台host之上,为数据的可靠性提供了基础。
为了满足数据和计算能力的分离,Serengeti还提供了节点关联的策略。具体来说就是在每台host之上,同时放置m个节点,其中k个是存放数据的节点,j个是进行计算的节点。并且满足k+j=m的条件。
之后的文章中会详细介绍Serengeti支持的VM placement算法,以及适合的应用场景,在此不做详细讨论。
Chef Service
Chef是当前流行的分布式软件配置管理工具,在数据中心管理运维中广泛使用。例如Facebook和Amazon都是Chef的用户。Serengeti在虚拟机创建完成之后,使用Chef的脚本进行hadoop软件的安装和管理。
Serengeti包含一系列Chef脚本,支持多个hadoop发行版的安装和配置,包括Hadoop1.x,Hadoop2.x,和HBase。这些脚本都预先安装在Chef Server之上。
Chef Client组件预先安装在Serengeti创建的虚拟机之中。当虚拟机创建完成之后,Chef Client将会从Chef Server下载并运行相应的脚本,真正完成Hadoop的安装和配置工作。