ceph-radosgw 手动安装教程以及安装问题&解决办法

发布于:2024-09-18 ⋅ 阅读:(100) ⋅ 点赞:(0)

一、环境

操作系统版本:Ubuntu20.04 x86_64
ceph版本:ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable)
radosgw版本:15.2.17

二、ceph-radosgw 安装步骤

ceph官方英文版教程,写了个大概步骤,对于熟悉ceph的同学来说,是够用了。但是,对于初次接触到ceph的同学来说,ceph原版教程可能不是太友好。这篇教程,对ceph-radosgw手动安装官方版做更细致的说明,以及安装过程中遇到的问题和解决方法。原版官方教程,请戳这里

2.1 安装radosgw二进制包

对象存储网关服务程序包与RBD、NFS二进制包类似,不属于ceph集群必要组件,目前不能通过cephadm工具安装。它们是需要独立安装的。
安装命令如下(ubuntu系统):

apt install radosgw

2.2 创建用户

在具有管理ceph集群权限的节点上面执行:

ceph auth get-or-create client.hostname mon 'allow rwx' osd 'allow rwx'

创建一个用户类型为client ,用户ID为hostname(这里建议将hostname替换为节点主机名称),并且拥有对mon服务,osd服务的读、写、auth权限。

2.3 创建用户目录

创建一个ceph-user独享的目录,命令如下:

install -d -o ceph -g ceph /var/lib/ceph/radosgw/ceph-$(hostname -s)

$(hostname -s)就是获取本节点主机名称,也可以直接换成节点主机名称,效果也是一样的。

2.4 创建keyring文件

进入2.3步骤中创建好的目录并创建keyring文件,命令如下:

touch /var/lib/ceph/radosgw/ceph-$(hostname -s)/keyring

编辑keyring文件,并且将2.2步骤中创建用户时生成的key 填充到keyring文件里面。
先打开keyring文件:

$EDITOR /var/lib/ceph/radosgw/ceph-$(hostname -s)/keyring

如果报错的话,就执行以下命令(效果是一样的):

vi /var/lib/ceph/radosgw/ceph-$(hostname -s)/keyring

然后将2.2步骤中生成的key填入keyring文件,下图是我的实验环境截图(key内容不要填图中的,需要使用你自己生成的):
在这里插入图片描述

2.5 重启网关服务

重启命令如下:

systemctl start ceph-radosgw@$(hostname -s).service

如果需要部署对象存储网关集群,那么请在需要部署radosgw服务的节点上面,执行2.1~2.5 步骤即可。

3.安装中遇到的问题

按照官方教程,直接安装的话,可能会遇到radosgw服务启动失败并报如下错误:

 monclient(hunting): handle_auth_bad_method server allowed_methods [2] but i only support [2,1]

这个是cephx协议进行权限验证时没有通过,报的错误。
报错的原因是,官方教程里面这句具有误导性:
在这里插入图片描述
按照官方教程,创建了一个client类型的用户,用户ID为“short-hostname-of-rgw”。而radosgw服务启动脚本,传入用户名称,传的是--name client.node03。如下图:
在这里插入图片描述
实际上,radosgw是不可能在keyring文件里面找到key为client.node03的配置项的,然后采用默认配置项。而mon服务,则会使用key为client.short-hostname-of-rgw来校验客户端的合法性。最终,当然是无法通过校验的,radosgw进程自动退出服务。
本教程已经修正了这个问题,按照本教程安装radosgw 应该是可以成功的。
祝君顺利!


网站公告

今日签到

点亮在社区的每一天
去签到