ceph

ceph

  • ceph是一个分布式存储系统
  • Ceph提供了三种存储类型:块存储、文件存储和对象存储,本文主要介绍对象存储的RGW基本原理和应用场景。

CRUSH算法

  • 通常的分布式系统都会采用一个或者多个中心服务用来控制数据的分布,这种机制使得每次IO操做都会先去一个地方查询数据在集群中的元数据信息。当集群的规模变大或者系统的workload比较大时,这些中心服务器必然会成为性能上的瓶颈。Ceph摒弃了这种作法,而是经过引入CRUSH算法,将数据分布的查询操做变成了计算操做,而且是在client端完成。算法

  • CRUSH是受控复制的分布式hash算法,是ceph里面用于控制数据分布的一种方法,可以高效稳定的将数据分布在普通的结构化的集群中。它是一种伪随机的算法,在相同的环境下,类似的输入获得的结果之间没有相关性,相同的输入获得的结果是肯定的。它只须要一个集群的描述地图和一些规则就能够根据一个整型的输入获得存放数据的一个设备列表。Client在有IO操做的时候,可能会执行CRUSH算法。swift

对象存储——RGW基本原理

  • 对象存储(云存储)是面向对象/文件的、海量的互联网存储。
  • 对象存储里的对象是通过封装了的文件,在对象存储系统里, 不能直接打开/修改文件,但能够像ftp同样上传文件,下载文件等。
  • 另外,对象存储没有像文件系统那样有一个不少层级 的文件结构,而是只有一个“桶”(bucket)的概念(也就是存储空间),“桶”里面所有都是对象,是一种很是扁平化的存储方式。
  • 其最大的特色就是它的对象名称就是一个域名地址,一旦对象被设置为“公开”,全部网民均可以访问到

RGW

  • RGW在librados之上向应用提供访问ceph集群的RestAPI, 支持Amazon S3和openstack swift两种接口。对RGW最直接的理解就是一个协议转换层,把从上层应用符合S3或Swift协议的请求转换成rados的请求, 将数据保存在rados集群中。

外部概念

  • user:对象存储的使用者,默认状况下,一个用户只能建立1000个存储桶。服务器

  • bucket:存储桶,用来管理对象的容器。分布式

  • object:对象,泛指一个文档、图片或视频文件等,尽管用户能够直接上传一个目录,可是ceph并不按目录层级结构保存对象, ceph全部的对象扁平化的保存在bucket中。性能

相关文章
相关标签/搜索