Ceph 对象存储网关允许你通过 Swift 及 S3 API 访问 Ceph .它将这些 API 请求转化为 librados 请求.Librados 是一个非常出色的对象存储(库)但是它无法高效的列举对象.对象存储网关维护自有索引来提升列举对象的响应性能并维护了其他的一些元信息.有关对象存储网关索引工作原理的文章很少,所以我写了这篇博文,权当抛砖迎玉. 我们先来看看一个已存在的 bucket 这个 bucket 的对象列表存储在一个单独的 rados 对象中.这个对象的名字是 .dir. 加…
背景 毫无疑问,乘着云计算发展的东风,Ceph已经是当今最火热的软件定义存储开源项目.如下图所示,它在同一底层平台之上可以对外提供三种存储接口,分别是文件存储.对象存储以及块存储,本文主要关注的是对象存储即radosgw. 基于Ceph可方便快捷地搭建安全性好.可用性高.扩展性好的私有化存储平台.私有化存储平台虽然以其安全性的优势受到越来越多的关注,但私有化存储平台也存在诸多弊端. 例如在如下场景中,某跨国公司需要在国外访问本地的业务数据,我们该如何支持这种远距离的数据访问需求呢.如果仅仅是在私…
一 Ceph文件系统 1.1 概述 Ceph 对象网关是一个构建在 librados 之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关 . Ceph 对象存储支持 2 种接口: 兼容S3: 提供了对象存储接口,兼容亚马逊S3 RESTful接口的一个大子集. 兼容Swift: 提供了对象存储接口,兼容Openstack Swift接口的一个大子集. Ceph 对象存储使用 Ceph 对象网关守护进程( radosgw ),一个与 Ceph 存储集群交互…
ceph对象存储 作为文件系统的磁盘,操作系统不能直接访问对象存储.相反,它只能通过应用程序级别的API访问.ceph是一种分布式对象存储系统,通过ceph对象网关提供对象存储接口,也称为RADOS网关(RGW)接口,它构建在ceph RADOS层之上.RGW使用librgw(RADOS Gateway library)和librados,允许应用程序与ceph对象存储建立连接.RGW为应用程序提供了一个RESTful S3/swift兼容的接口,用于在ceph集群中以对象的形式存储数据.cep…
ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于Php的自建网盘.基本上是私人使用这样,因为直到现在开发版本也没有暴露注册功能. 我这里采用基于php7.1的LAMP环境搭建这个owncloud 下一篇将介绍和ceph对象存储整合案例 一.环境准备,这里的owncloud是10.2.1版本,所以需要php7.1以上的LAMP环境,否则会报错,LA…
MySQL/MariaDB数据库的索引工作原理和优化 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际工作中索引这个技术是影响服务器性能一个非常重要的指标,因此我们得花时间去了解一下索引的相关特性.索引是一把双刃剑用得好可以快速查询数据,用得不好数据库查询速度不仅慢还降低服务器性能,浪费磁盘空间. 一.索引概述 1>.什么是索引 索引是特殊数据结构,定义在查找时作为查找条件的字段,在MySQL又称为键key,索引通过存储引擎实现. 索引可以看作是一本字典的目录,为了快速检…
ListView中getView的工作原理: [1]ListView asks adapter “give me a view” (getView) for each item of the list.(通过getView来获取每个item) [2]A new View is returned and displayed(获取到后返回显示) 那么如果我们有大量的数据需要显示的时候,每个Item都去重复执行getView中的创建新的View的动作吗?这样做会耗费大量的资源去执行重复的事情,实际上A…
一.Ceph整体架构及RGW在Ceph中的位置 1.Ceph的整体架构 Ceph是一个统一的.分布式的的存储系统,具有优秀的性能.可靠性和可扩展性.Ceph支持对象存储(RADOSGW).块存储(RBD)和文件存储(CephFS).一个Ceph存储集群至少包含一个Ceph monitor.Ceph manager及Ceph OSD(Object Store Daemon).若要运行CephFS client,还需要Ceph metadata server.以下是Ceph的整体架构图: 由上面的架…
场景分析 每个机房的Ceph都是独立的cluster,彼此之间没有任何关系. 多个机房都独立的提供对象存储功能,每个Ceph Radosgw都有自己独立的命名空间和存储空间. 这样带来两个问题: 针对Radosgw来说,我们的业务没法提供统一的命名空间: 没有机房级别的容灾,若一个机房Radosgw无法访问,则机房提供的对象存储瘫痪: Realm: Zonegroup: 理解为数据中心,由一个或多个Zone组成,每个Realm有且仅有 一个Master Zonegroup,用于处理系统变更,其他…
RGW抽象来看就是基于rados集群之上的一个rados-client实例. Object和pool简述 Rados集群网上介绍的文章很多,这里就不一一叙述,主要要说明的是object和pool.在rados集群中任意一个对象都会映射为一个(pool,object).其中pool是存储池,object为对象名.如果你只是做rados集群上层应用的开发(类似开发rgw).只需要设计如何将数据存储到rados集群中哪个pool及哪个对象即可. RGW中pool和object应用 RGW中存在的poo…