一、环境
操作系统版本: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 应该是可以成功的。
祝君顺利!