searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ceph对象存储rgw简介

2023-05-29 08:04:35
293
0

一、Ceph RGW介绍

    Ceph RGW(RADOS GateWay)是ceph对象存储网关,是在librados之上构建的对象存储服务,对外提供对象存储接口,为应用程序提供通往Ceph集群的RESTful网关。Ceph对象网关守护进程radosgw是用于与Ceph集群进行交互的HTTP服务器,为了有利于Ceph在云存储中迅速普及,RGW选择适配云存储领域应用最广的Amazon S3和OpenStack Swift的对象存储接口。

二、Ceph RGW对外接口基础实体

    RGW作为对象存储网关系统,向上充当着HTTP服务端角色,接收并解析互联网传送的数据。向下又承担着RADOS集群客户端角色,为对象存储应用提供数据存储的通道。RGW对外接口有3个基础实体:用户、存储桶、对象。

  • 用户。用户(User)是对象存储应用的使用者,一个用户可以拥有一个或者多个存储桶。RGW提供用户的AK(AccessKeyID)和SK(SecretAccessKeyID),通过使用AK和SK对称加密的方法验证某个请求的发送者身份。用户的账户有两种类型,包括用户和子用户(SubUser),用户是作为s3接口的,子用户是作为swift接口的,子用户附属于用户。
  • 桶。桶(Bucket)是RGW中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层次,去除了文件系统中多层级树形目录结构。
  • 对象。对象(object)是RGW中数据存储的基本单位,一个对象实际是一个文件的数据与其相关元数据的集合体,用户上传至RGW的数据都以对象的形式保存在桶里面,对象可以是泛指一个文档、图片或者视频文件等。此外,对象必须作为一个整体单元操作,对象存储不提供编辑对象部分内容的功能,即使只更新对象中的某一个字符,也必须将整个对象从云端下载下来,更新后再重新上传。

    各实体间关系的示意图如下所示:

三、Ceph RGW命令行使用示例

3.1、radosgw命令行

    部署好后Ceph对象存储服务后,可以通过radosgw-admin命令操作RGW。radosgw的一些比较常用的命令如下所示:

#创建用户

radosgw-admin user create --uid='mytest' --display-name='mytest'

创建完用户会生成两个key,这两个key可用于后面的身份认证。

#创建子用户

如果是使用swift接口,创建用户后还需要创建子用户。

radosgw-admin subuser create --uid='mytest' --subuser='mytest:swift' --access=full

#列出所有用户

radosgw-admin user list

#查看某个用户信息

radosgw-admin user info --uid mytest

#列出所有的存储桶

radosgw-admin bucket list

#查看某个桶信息

radosgw-admin bucket stats --bucket=quota-bucket

#查看某个桶里面的所有对象

radosgw-admin bucket list --bucket=quota-bucket

#设置配额,可从用户维度进行配额,也可只对用户的bucket配额,比如限制用户mytest的bucket配额最大100M

radosgw-admin quota enable --uid mytest --quota-scope=bucket

radosgw-admin quota set --quota-scope=bucket --uid=mytest --max-objects=-1 --max-size=100M

#若是设置用户的配额,只需要将上述两条命令的quota-scope改为user即可。

3.2、s3cmd命令行

    在生产环境一般是通过s3接口或者swift接口来操作RGW,s3接口用的比较多,这里介绍使用s3接口的客户端工具s3cmd来操作RGW:

#创建bucket

s3cmd mb s3://bucket

#删除bucket

s3cmd rb s3://bucket

#列出所有bucket的所有文件

s3cmd la

#将文件上传到bucket中,支持单个、批量

s3cmd put file1 file2 s3://bucket/prefix

#从bucket中下载文件,支持单个、批量

s3cmd get s3://BUCKET/OBJECT LOCAL_FILErm

#从bucket中删除文件,支持单个、批量

s3cmd del s3://BUCKET/OBJECT

s3cmd rm s3://BUCKET/OBJECT

#本地文件夹和bucket同步

s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX]

#查看bucket占用存储空间大小

s3cmd du s3://bucket

#在bucket里面拷贝文件

s3cmd cp s3://bucket/a.txt s3://bucket/b.txt

#在bucket里面移动文件

s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]

    除了radosgw-admin命令行、s3cmd客户端工具,Ceph官网还提供了REST api接口用于操作RGW,具体接口可参考官网文档http://docs.ceph.org.cn/radosgw/s3/commons/

 

0条评论
0 / 1000
佘****生
5文章数
0粉丝数
佘****生
5 文章 | 0 粉丝
原创

ceph对象存储rgw简介

2023-05-29 08:04:35
293
0

一、Ceph RGW介绍

    Ceph RGW(RADOS GateWay)是ceph对象存储网关,是在librados之上构建的对象存储服务,对外提供对象存储接口,为应用程序提供通往Ceph集群的RESTful网关。Ceph对象网关守护进程radosgw是用于与Ceph集群进行交互的HTTP服务器,为了有利于Ceph在云存储中迅速普及,RGW选择适配云存储领域应用最广的Amazon S3和OpenStack Swift的对象存储接口。

二、Ceph RGW对外接口基础实体

    RGW作为对象存储网关系统,向上充当着HTTP服务端角色,接收并解析互联网传送的数据。向下又承担着RADOS集群客户端角色,为对象存储应用提供数据存储的通道。RGW对外接口有3个基础实体:用户、存储桶、对象。

  • 用户。用户(User)是对象存储应用的使用者,一个用户可以拥有一个或者多个存储桶。RGW提供用户的AK(AccessKeyID)和SK(SecretAccessKeyID),通过使用AK和SK对称加密的方法验证某个请求的发送者身份。用户的账户有两种类型,包括用户和子用户(SubUser),用户是作为s3接口的,子用户是作为swift接口的,子用户附属于用户。
  • 桶。桶(Bucket)是RGW中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层次,去除了文件系统中多层级树形目录结构。
  • 对象。对象(object)是RGW中数据存储的基本单位,一个对象实际是一个文件的数据与其相关元数据的集合体,用户上传至RGW的数据都以对象的形式保存在桶里面,对象可以是泛指一个文档、图片或者视频文件等。此外,对象必须作为一个整体单元操作,对象存储不提供编辑对象部分内容的功能,即使只更新对象中的某一个字符,也必须将整个对象从云端下载下来,更新后再重新上传。

    各实体间关系的示意图如下所示:

三、Ceph RGW命令行使用示例

3.1、radosgw命令行

    部署好后Ceph对象存储服务后,可以通过radosgw-admin命令操作RGW。radosgw的一些比较常用的命令如下所示:

#创建用户

radosgw-admin user create --uid='mytest' --display-name='mytest'

创建完用户会生成两个key,这两个key可用于后面的身份认证。

#创建子用户

如果是使用swift接口,创建用户后还需要创建子用户。

radosgw-admin subuser create --uid='mytest' --subuser='mytest:swift' --access=full

#列出所有用户

radosgw-admin user list

#查看某个用户信息

radosgw-admin user info --uid mytest

#列出所有的存储桶

radosgw-admin bucket list

#查看某个桶信息

radosgw-admin bucket stats --bucket=quota-bucket

#查看某个桶里面的所有对象

radosgw-admin bucket list --bucket=quota-bucket

#设置配额,可从用户维度进行配额,也可只对用户的bucket配额,比如限制用户mytest的bucket配额最大100M

radosgw-admin quota enable --uid mytest --quota-scope=bucket

radosgw-admin quota set --quota-scope=bucket --uid=mytest --max-objects=-1 --max-size=100M

#若是设置用户的配额,只需要将上述两条命令的quota-scope改为user即可。

3.2、s3cmd命令行

    在生产环境一般是通过s3接口或者swift接口来操作RGW,s3接口用的比较多,这里介绍使用s3接口的客户端工具s3cmd来操作RGW:

#创建bucket

s3cmd mb s3://bucket

#删除bucket

s3cmd rb s3://bucket

#列出所有bucket的所有文件

s3cmd la

#将文件上传到bucket中,支持单个、批量

s3cmd put file1 file2 s3://bucket/prefix

#从bucket中下载文件,支持单个、批量

s3cmd get s3://BUCKET/OBJECT LOCAL_FILErm

#从bucket中删除文件,支持单个、批量

s3cmd del s3://BUCKET/OBJECT

s3cmd rm s3://BUCKET/OBJECT

#本地文件夹和bucket同步

s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX]

#查看bucket占用存储空间大小

s3cmd du s3://bucket

#在bucket里面拷贝文件

s3cmd cp s3://bucket/a.txt s3://bucket/b.txt

#在bucket里面移动文件

s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]

    除了radosgw-admin命令行、s3cmd客户端工具,Ceph官网还提供了REST api接口用于操作RGW,具体接口可参考官网文档http://docs.ceph.org.cn/radosgw/s3/commons/

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0