要配置一个 Ceph 对象网关需要一个运行着的 Ceph 存储集群,以及启用了 FastCGI 模块的 Apache web服务器。
何为对象存储
将多个硬盘,合成一个大硬盘,提供一个接口服务供外部使用
Ceph 对象网关是 Ceph 存储集群的一个客户端,作为 Ceph 存储集群的客户端,它需要:
1、需要为网关实例配置一个名字,在本手册中我们使用 gateway .
2、存储集群的一个用户名,并且该用户在keyring中有合适的权限.
3、存储数据的资源池.
4、网关实例的一个数据目录.
5、Ceph 配置文件中有一个实例配置入口.
6、web 服务器有一个配置文件跟 FastCGI 交互.
在ceph存储服务器上部署ceph-radosgw(可以部署在其中某台或多台)
yum install ceph-radosgw -y
在ceph集群上 部署rgw 对象存储网关服务(可以部署在其中某台或多台),他会在服务器上打开7480端口
ceph-deploy rgw create ceph50 ceph51 ceph52
方法A:创建rgw用户并授权,并将生成的key分发到 客户端上
ceph auth get-or-create client.radosgw.gateway osd 'allow rwx' mon 'allow rwx' | tee ./ceph.client.radosgw.gateway.keyring
scp ceph.client.radosgw.gateway.keyring root@192.168.200.60:/etc/ceph/
方法B:在rgw服务器上创建用户并授权,会生成两个key"access_key","secret_key"
radosgw-admin user create --uid="testuser" --display-name="First User"
创建存储池
Ceph 对象网关需要 Ceph 存储集群资源池来存储特定的网关数据. 如果你新建的用户有权限, 网关将会自动新建所需资源池.
然而,你需要确保在你的 Ceph 配置文件中给资源池设置了合理的默认 PG 值
Ceph 对象网关有多个存储池,考虑到所有存储池会共用相同的 CRUSH 分级结构,所以 PG 数不要设置得过大,否则会影响性能
当使用默认的 region 和 zone 时,资源池的命名规则通常省略了 region 和 zone 的名字,但是你可以使用任何你想要的命名规则. 举例如下:
.rgw
.rgw.root
.rgw.control
.rgw.gc
.rgw.buckets
.rgw.buckets.index
.rgw.buckets.extra
.log
.intent-log
.usage
.users
.users.email
.users.swift
.users.uid
ceph osd pool create {poolname} {pg-num} {pgp-num} {replicated | erasure} [{erasure-code-profile}] {ruleset-name} {ruleset-number}
第二:对象存储网关的客户端配置
这些对象存放在存储段中,在S3里存储段叫做bucket
在客户端安装S3工具(AWS的协议服务)
yum install s3cmd -y
#注意:多个用户连接同一个对象网关也不能创建同名的bucket,因为一个对象存储看着一个大硬盘,bucket就像里面的子目录,不能同名
生成配置文件(注意里面是填写rgw的ip地址,不是ceph集群的管理ip地址)
vi ~/.s3cfg
[default]
access_key = AWJ8W9BIOLUB2FW1Y8RJ
host_base = 192.168.200.51:7480
host_bucket = 192.168.200.51:7480/%(bucket)
secret_key = R5jcw5vacOxOfolyCObjzpsffagY5qbuOpg7StKV
cloudfront_host = 192.168.200.51:7480
use_https = False
s3建桶,看到后面执行后的提示,表示成功
[root@localhost ~]# s3cmd mb s3://fnkcloud
Bucket 's3://fnkcloud/' created
s3查看
[root@localhost ~]# s3cmd ls s3://
2020-05-10 15:53 s3://fnkcloud
放文件进筒
s3cmd put ubuntu-16.04-desktop-amd64.iso s3://fnkcloud
从桶里把文件取出来
s3cmd get s3://fnkcloud/ubuntu-16.04-desktop-amd64.iso
部署seafile企业内部网盘,并使用s3类型的ceph对象存储作为后端存储(当然seafile也能直接使用ceph存储作为后端存储)
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论