分布式存储为云平台(OpenStack)提供服务时,该如何设计?

Posted twt企业IT社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式存储为云平台(OpenStack)提供服务时,该如何设计?相关的知识,希望对你有一定的参考价值。

社区问答,社区专家和会员的回复供参考

分布式存储为云平台(OpenStack)提供服务时,该如何设计?


@baimmi  中国银联股份有限公司

OpenStack是可以通过标准的API接口来管理整个底层架构资源。 OpenStack软件控制大规模资源池,包括计算、存储、网络,通过控制面板和OpenStack API来操作这些资源。

OpenStack 提供块设备存储服务的组件是 Cinder,本质上是一个资源管理组件,将后端不同的存储设备进行封装,向外提供统一的API,本质上并不是一个存储系统,而是使用插件的方式,结合不同后端存储的驱动提供存储服务,核心是对卷的各种操作与管理。包括通过虚拟卷的方式为虚拟机提供云硬盘,或者可以用于存储并启动虚拟机实例。在虚拟机的各个生命周期中,具体能够实现如下几种操作:

1、在创建虚拟机的时候,需要对卷进行创建和挂载操作;

2、在使用虚拟机的时候,需要对卷进行扩展、备份操作;

3、在删除虚拟机的时候需要对卷进行分离、删除操作。

通过Cinder组件,用户可以方便、高效地管理虚拟机数据。下图展示了Cinder组件使用后端存储的示意图。计算虚拟化组件Nova与存储管理组件Cinder之间通过Rabbit MQ消息队列进行通信。:

具体的调用流程如下:

1、用户通过页面或者命令行发出存储管理请求,并通过Cinder-API发出;

2、Cinder-API通过Rabbit MQ消息队列将此消息加入Cinder-scheduler中,依次进行调度;

3、Cinder-scheduler通过Rabbit MQ消息队列与Cinder-Volume通信,将创建、挂载等卷管理请求进行传递;

4、Cinder-volume收到存储资源请求之后,向后端的下一代云存储系统通信,进行操作,执行请求。

自此,完成了用户的一个存储资源管理操作请求


@EricChan UIT

Openstack 自己就有分布式存储项目啊,最初的两个发源项目就是NASA贡献的Nova和Rackspace贡献的Swift,Swift自己就是一个分布式的对象存储。后来Openstack也很快就支持Ceph项目,早就实现了良好对接。后来Ceph的影响力渐渐大过OpenStack这都是后话了。

Cinder子项目设计并不是用来对接分布式存储的,这是用来对接商业的SAN存储,有一个兼容列表,里面列出了各品牌厂商能够兼容的存储型号。这个接口是块存储的,基于卷访问。


@mileskuo    TF

cinder共享卷的功能,好久好久做不好,最近Q版好像实现了,不知道能不能搞定oracle rac。


@刘东 东软集团

分布式存储为云平台(OpenStack)提供服务时,应该分为两种情况去考虑:

1、使用OpenStack存储组件服务。OpenStack有两个存储组件,Cinder和Swift。可以构建块存储和对象存储系统。如果使用OpenStack的存储组件,那么在设计分布式存储时,只需要设计好所需要的容量,然后根据计算资源和存储资源的需求,配置分布式存储所需要的X86服务器就可以了。一般在OpenStack中,分布式存储指的是Swift(对象存储服务),主要用来存储非结构化数据,可以使用基于X86服务器的分布式架构实现。Cinder主要提供对块存储的管理支持,可以通过使用iSCSI、 光纤通道或者NFS协议,连接存储设备和软件定义的存储。通过使用一个Cinder驱动将Cinder API转换成厂商特定的硬件命令,目前EMC的VMAX和VNX系列、惠普的3PAR存储和IBM的大部分存储设备都支持和Cinder对接。还有一些基于软件定义的存储,例如集成到Linux内核中的Ceph或者GlusterFS。

2、使用第三方产品自建分布式存储,然后提供给OpenStack使用。比如刚才提到的Ceph。可以使用Ceph自己组建分布式的存储,然后和OpenStack的Cinder进行对接,就可以为OpenStack提供存储服务。总的来说,在为云平台(OpenStack)设计分布式存储服务时,主要考虑你设计的分布式存储服务能否通过OpenStack的标准组建和OpenStack进行对接。


@Garyy   大地保险

Openstack是继Linux之后又一个非常成熟和受欢迎的开源云计算解决方案,Openstack和Ceph的集成更让开源项目锦上添花。对OpenStack而言,最重要的四个子项目分别为Cinder、Swift、Glance和Nova。Ceph作为优秀的分布式存储系统,实现对OpenStack相关子项目进行集成或替代,目前在OpenStack中扮演者非常重要的角色。

Ceph已经成为OpenStack后端存储标配,OpenStack作为IaaS系统,涉及到存储的部分主要是块存储服务模块、对象存储服务模块、镜像管理模块和计算服务模块,对应为其中的Cinder、Swift、Glance和Nova四个项目。

CephRBD块存储是以独立卷的方式挂接到OpenStcak Cinder模块,主要用作数据盘,这种方式主要通过CinderDriver实现,删除虚拟机时卷依然存在。Nova对接Ceph时,Ceph RBD块存储卷需要与虚拟机绑定,所以删除虚拟机时卷也删除,一般用作启动盘。Ceph也可以和Glance对接用于镜像卷。Keystone作为OpenStack对象Swift的认证模块,支持Ceph通过RADOSGW网关认证,给OpenStcak提供Swift存储服务。

在OpenStcak块存储服务方面,Ceph目前是Cinder项目的默认存储后端。目前已经实现跟CloudStack、Zstack、Eucalyptus和KVM对接。Ceph将RBD块驱动直接集成在QEMU中,这样,虚拟机访问基于RBD实现的块设备的性能优化。

在OpenStcak镜像管理部分,Red Hat大力推动,也已经利用自己在KVM/QEMU社区中的影响力,将Ceph RBD块驱动直接集成在QEMU中,支持Openstack通过LibVirt和QEMU之间配置,实现对KVM、Xen、LXC和VirtualBox等虚拟机镜像管理。目前Glance已经支持将Ceph作为自己的本地镜像文件缓存。

在OpenStcak对象存储部分,Swift作为最早由Rackspace贡献的子项目与AWS S3并驾齐驱,也是OpenStack自带的对象存储实现方案。但由于Ceph的出现,使得Swift有了强有力的竞争对手,就连Swift也在考虑采用Ceph作为自己的存储后端。

在OpenStcak计算服务部分,UnitedStack(基于OpenStack)目前正在推动将Ceph FS作为Nova计算节点的本地文件系统,提供数据存储服务。

Ceph和OpenStcak的集成能力,使得Ceph是OpenStack生态系统中呼声最高的开源存储解决方案。包括HP、Dell、Intel等为代表的企业IT领导厂商和Mirantis、eNovance、UnitedStack为代表的OpenStack社区新兴厂商都将Ceph作为重要的开源存储解决方案。

但是,如何对Ceph和Openstack原生存储方案进行取舍,将是用户和社区所必须面对的问题。Ceph的优势就是同时提供对象存储、块存储和文件系统存储三种存储服务能力,便于在满足不同应用需求的前提下简化部署和运维,这是Ceph被OpenStack热衷的主要原因。所以针对存储、块存储和文件系统存储混合场景或块存储场景,采用Ceph存储方案是比较合适。然而针对对象、文件场景,虽然Ceph也提供了对应方案,但但考虑到成熟度选用OpenStack方案比较适合。另外,Ceph采用分布式、无中心结构和没有理论上限的系统规模可扩展性也将是Ceph在云计算大数据时代取得成功的关键。

前几天看到,Ceph社区已经把Ceph 的RBD块存储镜像支持功能扩展到Docker中。在Docker中Ceph的RBD镜像功能主要是负责把RBD镜像通过异步通信的方式从一个Ceph集群复制到另一个Ceph集群,用于对Docker镜像容灾保护和恢复。


更多相关内容,请点击阅读原文


以上是关于分布式存储为云平台(OpenStack)提供服务时,该如何设计?的主要内容,如果未能解决你的问题,请参考以下文章

Openstack之路云硬盘服务Cinder

5款管理OpenStack服务器的开源工具

Ceph与OpenStack整合(仅为云主机提供云盘功能)

Ceph与OpenStack整合(仅为云主机提供云盘功能)

Ceph与OpenStack整合(仅为云主机提供云盘功能)

OpenStack多节点一键部署(超详细)