配置openstack swift使用ceph作为后端存储

实验拓扑图

file

实验环境

file

配置步骤

在rgw主机(vms81)上安装swift客户端工具
wget ftp://ftp.rhce.cc/ops/ali.repo -P /etc/yum.repos.d/
yum install python2-swiftclient -y

在vms81上部署rgw
ceph-deploy rgw create vms81

部署好之后,会自动创建一个用户client.rgw.vms81

写如下脚本,创建必须要的池

cat > create_rgw_pool.sh  <<EOF
#!/bin/bash
pool=".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 default.rgw.control default.rgw.data.root default.rgw.gc default.rgw.log"
PG_NUM=16
PGP_NUM=16
for i in $pool
do
    ceph osd pool create $i $PG_NUM $PGP_NUM
done
EOF

创建权限
ceph auth caps client.rgw.vms81 mon "allow rwx" osd "allow rwx"

获取用户的keyring文件

ceph auth get client.rgw.vms81 > /etc/ceph/ceph.client.radosgw.keyring

在ceph.conf里添加

[client.rgw.vms81]  #注意,中括号里的内容是 rgw用户的名字,不要写错了
host=vms81
keyring=/etc/ceph/ceph.client.radosgw.keyring
log file=/var/log/radosgw/client.radosgw.gateway.log
rgw_frontends = civetweb port=7480
rgw keystone api version = 3
rgw keystone url = http://192.168.26.74:5000
rgw keystone accepted roles = admin
rgw keystone token cache size = 500
rgw keystone revocation interval = 300
rgw keystone implicit tenants = true
rgw s3 auth use keystone = true
rgw keystone admin user = admin
rgw keystone admin password = haha001
rgw keystone admin tenant = admin
rgw keystone admin domain = Default
rgw swift account in url = true

同步到vms81和vms82节点
ceph-deploy --overwrite-conf config push vms81 vms82

重启服务

[root@vms81 ~]# systemctl status | grep rgw
           │   │ └─5036 grep --color=auto rgw
             │ └─**ceph-radosgw@rgw.vms81.service**
             │   └─3390 /usr/bin/radosgw -f --cluster ceph --name client.rgw.vms81 --setuser ceph --setgroup ceph
[root@vms81 ~]#

systemctl restart ceph-radosgw@rgw.vms81.service

openstack里(vms74),删除原来swift对应的endpoint,重新创建endpoint

openstack endpoint create --region=RegionOne swift admin "http://192.168.26.81:7480/swift/v1/AUTH_%(tenant_id)s"
openstack endpoint create --region=RegionOne swift admin "http://192.168.26.81:7480/swift/v1/AUTH_%(tenant_id)s"
openstack endpoint create --region=RegionOne swift admin "http://192.168.26.81:7480/swift/v1/AUTH_%(tenant_id)s"

相关新闻

                                                                                                                                    RHCE9学习指南连载,点击阅读