-
创建rgw网关
ceph-deploy rgw create {主机名}
-
修改默认端口(7480)
- 在ceph.conf配置文件追加
[client.rgw.node1] rgw_frontends = "civetweb port=80" [root@node1 ceph-deploy]#
-
push到各个节点
ceph-deploy --overwrite-conf config push node1 node2 node3
-
重启服务
systemctl restart ceph-radosgw.target
Or
systemctl restart ceph-radosgw@*.service
-
查看对应的服务状态
systemctl status ceph-radosgw@rgw-node{id}
网关也可以使用https协议
-
创建用户
radosgw-admin user create --uid "ceph-s3-user" --display-name "Cooper"
如果忘记了创建得来的用户名和密码,可以查询
radosgw-admin user list
radosgw-admin user info --uid {uid}
-
下载s3cmd工具包
yum install s3cmd -y
-
配置s3
s3cmd --configure
-
创建bucket
s3cmd mb s3://s3cmd-demo
如果出现
则修改s3配置文件中的
signature_v2的属性为True
-
上传文件
s3cmd put {文件} s3://{桶名称}
-
下载文件
s3cmd get 桶的名称 {目标文件名称}
-
删除文件
s3cmd rm 桶的名称/{目标文件名称}
docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin"
-e "MINIO_SECRET_KEY=admin123456" \
minio/minio server /data
-
对象网关daemon的删除
先将对应的rgw进程kill
再
cd /var/lib/ceph/radosgw
找到对应的rgw文件将其删除即可
-
radosgw无法起来可能是因为pg数量不够,不足以创建对应的pool,必须要调整对应pool的数量才行
自己创建对应的pool指定pg和pgp数量
-
rgw网关默认的web服务器已经不支持fastcgi、fcgi、beast
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fsc0Mr74-1641788802832)(https://raw.githubusercontent.com/CooperXJ/ImageBed/master/img/20210316160933.png)]
老版本的可以参阅这篇文章https://www.jianshu.com/p/af611ad7c9c2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
当然这里的fastCGI和civetweb都是服务器,可以处理请求转发请求等,都是利用socket与内部的rados进行通信,而Apache与Nginx需要以独立的进程进行存在,对RGW注册的端口进行监听,这些端口就是fastCGI、civetweb这些服务器注册暴露的。
-
查询rgw缓存命中率
ceph --admin-daemon ceph-client.rgw.ceph119.2198988.94410876256936.asok perf dump|grep cache
-
rgw清除策略
rgw清除bucket中的数据不会立刻清除,而是等到GC来到的时候才会真正去清理
例如:
实际上,关键就在这里。
上面time字段的含义是,rados object对象真正过期的时间。这也正是当前RGW GC垃圾回收机制的设计思想之一。 在Ceph RGW
中存在rgw_gc_obj_min_wait配置项,正是该配置项决定了上面的time字段的值。该配置项用于控制对象在能被GC删除之前需要等
待的最小时间,这主要是考虑到,当删除一个对象时, 可能会有其他服务正在读取对应的象数据信息,为了保证不对其他服务的操作
处理造成影响,因此在删除对象数据后,需要等待一-段时间, 才能真正的对对象数据进行删除。
有了上面对time字段的说明,相信大家已经能够联想到radosgw-admin gc process不生效的原因了。
是的,实际上并不是radosgw-admin gc process不生效,而是执行该命令时,只能删除已经过期了的,但是还没有到gc处理周期进
行删除的对象数据,即当前时间已经超过了上面time字段执行的时间,但还没有被删除的tail object数据。