OpenStack Kolla-Ansible部署Swift文件存储 对接Ceph RadosGW,Proxmox(未完成)
OpenStack示例配置组件之Web Application
中的Swift
文件存储,OpenStack
中的Swift
文件存储对接Ceph RadosGW
注:此教程未完成 单独对象存储方式swift
参考 >>
实际上应该是ceph RadosGW对接OpenStack Keystone身份认证
因为RadosGW提供了和Swift兼容的API,所有二者api是一样的,直接做个负载均衡到RadosGW就成了一个swift接口
ceph
官方latest
文档已经很落后了,搞得整了好久才弄明白。要知道ceph.conf
配置中的键如果是空格形式的(形如“rgw keystone api version”),这种是ceph octopus
版本最后一次出现,在pacific
版本改为下划线形式。
并且网上教程包括官网教程重点都在以Keystone V2版本api为例说明,没有V3接口版本的例子。
求证:
octopus版本的ceph.conf例子:Common Settings — Ceph Documentation
pacific版本的ceph.conf例子:Common Settings — Ceph Documentation
重点:
如果使用kolla-ansible
部署RadosGW
兼容的Swift
,不要去找那种“手动部署RadosGW
对接Swift
”的教程,因为kolla-ansible
已经为你准备好了OpenStack
这边的一切配置。所有有关OpenStack
这边的操作都不要做!!!
RadosGW兼容的Swift:实际上没有部署Swift,可以理解为把原本Swift的api重定向到了RadosGW。而RadosGW有着和Swift一样的api。
一. Ceph
配置
或 >> (此处需要参考以下给openstack
配置密钥)
Proxmox Virtualization Environment (VE) 或vmware workstdtion
是一个出色的虚拟化平台。它具有许多其他企业平台所没有的强大功能。这些功能之一是 Ceph 支持,包括在 Proxmox 节点本身上运行 Ceph 的能力。除了将 Ceph 用于我的 VM 和容器之外,我还想利用 Ceph 对象网关为我的网站获取 S3 兼容存储。
我的 Proxmox 环境由 3 个节点组成:ceph1、ceph2和ceph3,我想在所有三个节点上运行网关以实现高可用性(我在这些节点前面运行 HAProxy 以实现 SSL 终止、HA 和负载平衡)。
我从节点运行了以下命令ceph1,但它可以从任何节点完成。
1.
首先,我创建了密钥环来存储密钥
1 | # 创建密钥 |
4.
将密钥环复制到/etc/ceph/priv
(可选)
1 | # 将密钥环复制到/etc/ceph/priv |
将以下行添加到/etc/ceph/ceph.conf 如果没有解析dns,那就删掉 rgw_dns_name
1 | [client.radosgw.ceph1] |
5.
cephadm与deploy方式部署对象存储及s3
与swift
风格用户创建 >>
部署
rgw
1
2# 部署rgw
ceph orch apply rgw foo --placement="3 ceph1 ceph2 ceph3" --port=7480创建用户(创建
swift
风格用户)需要在已有创建用户的基础之上创建用户即在创建的 “testuser” 之上创建创建swift风格用户完整步骤
生成secret_key如下
1 | # 创建s3风格用户 |
此时访问7480
应该显示是下方配置
1 | <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> |
效果
三. 检查Ceph.conf
(此种为ceph-deploy
部署的生效方式)
做完之后你的ceph.conf应该大致如下:
建议取消所有缩进
1 | [global] |
四. 对接Keystone
(Keystone
此服务必须已运行)
这里需要先安装一个cli client工具。进入部署机,激活python虚拟环境,source admin授权文件,安装
至于文档怎么找,入口在哪里,请参阅:https://blog.csdn.net/qq_35485875/article/details/128915192
激活环境
1
2
3
4
5
6
7
8
9
10
11
12# 激活python环境
./path/to/venv/bin/activate
// 或
cd ~ && source /root/venv3/bin/activate
# 激活admin授权文件(后面用到)
source /etc/kolla/admin-openrc.sh
# 安装客户端
pip install python-swiftclient
pip install python-keystoneclient
# 使用加速器
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-swiftclient
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-designateclient验证安装
1
(venv) root@ttt:~# swift --help
获取Auth Token
1
2
3(venv) root@ttt:~# swift auth
export OS_STORAGE_URL=http://10.0.0.30:6780/swift/v1
export OS_AUTH_TOKEN=gAAAAABj4cEubXFK1PLGUicIMKMft6TiWitNcGhzHJxS2CWbetUEYIHbCJMx3v_iLQ142ZgjQ9KvtwLwoDrP-_RctuP45O9FTVr1dAVWrEKZngXpxX2uRVSELz7FP27vmZqtN0