WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

评论分析 > OpenStack > 正文
OpenStack环境中运行大数据系统的四大存储问题
作者: 佚名 2018-07-05 15:04 【51CTO】

目前,OpenStack 私有云应用在经过了长时间的技术累积和市场培养之后,产品的成熟度和客户的认可度都已迈入成熟。虽然基于OpenStack的云环境部署量越来越多,但是很多OpenStack云环境并不提供大数据服务,比如类似AWS的Elastic MapReduce,再比如面向大数据的SQL,支持OLAP等等。与此同时,随着用户业务逐步实现了云迁移,在云上部署大数据系统的需求已经日益常见和迫切。

2018年5月18-19日,由51CTO主办的全球软件与运维技术峰会在北京召开。在第二日上午举行的“OpenStack创新实战”分论坛中,OStorage (奥思数据)创始人兼CTO李明宇为大家带来题为《在OpenStack云上运行大数据系统:问题、方法与实践》的精彩演讲,针对如何在OpenStack云环境上运行大数据系统,在实际运行过程中常见的问题,以及如何利用对象存储解决这些问题展开了阐述。会后,51CTO记者根据李明宇在WOT2018全球软件与运维技术峰会的演讲内容进行了整理。

在OpenStack环境上运行大数据系统的两种方法

李明宇之前在中科院软件所工作,除了科学研究外,他着重解决实际工程问题,带领团队承担分布式和云计算系统的相关研发工作。离开中科院后,李明宇一直致力于OpenStack等云计算和大数据相关开源技术的研究和传播,为企业提供咨询、评测等技术服务。

他演讲中谈到,OpenStack是一个大体系里包含很多的小的开源项目,其中有六个核心项目人们最为熟知:管理虚机的Nova、管理网络的Neutron、云硬盘的Cinder、认证的Keystone以及镜像和模板管理的Glance、Swift对象存储。

OpenStack环境中运行大数据系统的四大存储问题

OpenStack环境中运行大数据系统的四大存储问题

李明宇表示,在OpenStack环境上运行大数据系统有两种方法:第一种方法是基于OpenStack服务组件Sahara实现。他通过现场演示DEMO的方式,让大家看到如何使用Sahara。Sahara实际上就是OpenStack专门为运行Hadoop来打造的一个项目。如果用户使用的OpenStack云环境没有部署Sahara怎么办?这时可以采用第二种方法,第二种是通过Heat和Hadoop社区的部署工具实现,用户直接管理Hadoop/大数据系统节点。OpenStack云平台上的除了依赖OpenStack Sahara外,还可以在裸机上安装Hadoop。

那么,这两种方法孰优孰劣呢?李明宇分析道,Sahara是云计算厂商视角,使用Sahara的好处在于服务商基于此提供大数据服务,用户使用更方便,总体来说还算稳定。但Sahara其实并不是那么完美,服务种类受限,灵活性不高。而不使用Sahara直接管理的好处在于从用户视角出发,灵活性好,用户可控,但是劣势在于需要由用户管理大数据集群,并且难以感知云基础设施底层特性。“用户可以根据自己的需求,选择最适合自己的方法。”

OpenStack环境中运行大数据系统的四大存储问题

OpenStack环境中运行大数据系统的四大存储问题

四大存储问题

目前,OpenStack已被很多单位使用,在使用的过程中也会提出很多问题。而在OpenStack云上运行大数据系统最容易遇到的问题就是存储的问题。

李明宇表示,在存储方面第一个面临的问题,就是块存储的冗余问题,虚机块存储/Volume底层冗余与HDFS本身的冗余。如果虚拟底层是采用Ceph支持虚机块存储,实际上虚机的块设备/Volume在Ceph上有三个副本,HDFS上又有三个副本,从而造成块存储的过度冗余。

第二个问题是数据移动开销比计算任务的移动开销大。Hadoop集群并不是时刻都承载相同的负载压力,我们希望在虚拟化环境中,Hadoop集群能够具有弹性。从5个节点扩展到10个节点,再扩展到50个节点,再缩到5个节点,如果数据存储在这些节点的HDFS中,那么这时需要重新平衡数据,数据移动开销较大,需要时间、耗费网络和I/O资源。

第三个问题,很多数据处理/分析任务是临时性的。为了实现在使用Hadoop集群或者利用大数据处理集群时,创建一个集群运行数据分析或者数据仓库,完成作业之后这个集群就可以销毁。但是使用HDFS,是无法销毁存有数据的虚机的,并且还会带来额外开销。相比这些开销,网络的开销在降低,整体网络成本在降低。针对上面这些问题,如果不再使用HDFS,可以用对象存储替换。也就是在云环境里运行大数据系统时,虚机只是进行计算,而数据放到对象存储。

第四个问题是跨多个地域的系统构建存储集群。这个问题可以通过OpenStack Swift对象存储来解决,OpenStack Swift可支持跨多个数据中心、多个地域构建存储集群,这就给用户构建跨数据中心的大数据系统带来了便利,用户在提交数据处理作业时,不用关心数据到底是存放在哪个数据中心,而且可以一批任务处理多个数据中心的数据,甚至多个地域的数据。


标签:OpenStack 

LecVideo