CEPH RadosGW对象存储功能有哪些详解?

摘要:ceph RadosGW对象存储使用详解 一个完整的ceph集群,可以提供块存储、文件系统和对象存储。 本节主要介绍对象存储RadosGw功能如何灵活的使用,集群背景: $ ceph -s cluster: id: f0a8789e-6d5
ceph RadosGW对象存储使用详解 一个完整的ceph集群,可以提供块存储、文件系统和对象存储。 本节主要介绍对象存储RadosGw功能如何灵活的使用,集群背景: $ ceph -s cluster: id: f0a8789e-6d53-44fa-b76d-efa79bbebbcf health: HEALTH_OK services: mon: 1 daemons, quorum a (age 2d) mgr: a(active, since 2d) mds: cephfs:1 {0=cephfs-a=up:active} 1 up:standby-replay osd: 1 osds: 1 up (since 2d), 1 in (since 2d) rgw: 1 daemon active (my.store.a) data: pools: 10 pools, 200 pgs objects: 1.29k objects, 3.5 GiB usage: 60 GiB used, 798 GiB / 858 GiB avail pgs: 200 active+clean io: client: 852 B/s rd, 1 op/s rd, 0 op/s wr 什么是对象存储 对象存储,又称键值存储,通过其接口指令,例如简单的GET、PUT、DEL等,向存储服务上传下载数据; 对象存储中所有数据都被认为是一个对象。所以,任何数据都可以存入对象存储中,如图片、视频、音频等; 常见的对象存储厂商有Swift、S3等,ceph就支持Swift API和AWS S3两种标准。 ceph对象存储的构成 Ceph对象存储是通过 RGW组件 来实现,什么是 rgw 呢? rgw全称Rados Gateway,是一种服务,使客户端能够利用标准对象存储API来访问ceph对象网关; ceph 0.8版本之后使用Civeweb的web服务器来响应api请求,说白了,rgw里边就是一个web服务; 客户端使用http/https协议通过RESTful API与rgw通信; rgw通过librados与ceph集群通信,利用cephx加密协议与ceph存储通信; rgw通过bucket来实现数据存储和多用户的隔离; 可以部署多个rgw,实现负载均衡及高可用。 ceph RadosGW中有一个bucket桶的概念,一般项目或者分类会使用bucket来进行隔离,bucket的权限控制,想要操作某个bucket,操作用户必须有对此bucket的对应操作权限,bucket最终的数据其实还是通过PG来落盘到后端的osd存储中的。 RadosGW存储池作用 rgw安装流程请参考之前的部署文档,此处不在赘述,默认端口7480,能够curl通就表示安装成功: $ curl 10.153.204.13:30080 <?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult> 我这里更改了默认端口,改为了30080 rgw安装完毕后,会有一些默认创建的存储池: $ ceph osd lspools | grep rgw 1 .rgw.root 3 my-store.rgw.control 6 my-store.rgw.meta 7 my-store.rgw.log 8 my-store.rgw.buckets.index 9 my-store.rgw.buckets.non-ec 10 my-store.rgw.buckets.data 这些存储池也是分为两种类型的,一种是元数据存储池,一种是数据存储池: .rgw.root : 包含realm(领域信息),比如zone和zonegroup。 rgw.log:存储日志信息,用户记录各种log信息。 rgw.control:系统控制池,在有数据更新时,通知其它RGW更新缓存。
阅读全文