配置openstack swift使用ceph作为后端存储
实验拓扑图
实验环境
配置步骤
在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"