写作背景是这样的,公司有个项目,需要通过Ceph对象存储网关写1亿张图片到Ceph集群中,由于一个网关写入的速度比较慢,为了缩短写入时间,需要增加一些服务器作为网关,来将数据写入到集群中。
背景说完了,任务是增加一台集群外的服务器作为网关,如下图示意:
首先在服务器上安装与集群一致的客户端版本,安装apt-show-versions,以用来查看ceph-common(ceph的客户端名称,使用的时候,直接使用ceph命令即可)的版本号:
root@zjt-05:/# apt-get install apt-show-versions
root@zjt-05:/# apt-show-versions -a ceph-common
ceph-common:amd64 10.1.2-0ubuntu1 xenial nova.clouds.archive.ubuntu.com
ceph-common:amd64 10.2.10-0ubuntu0.16.04.1 xenial-updates nova.clouds.archive.ubuntu.com
ceph-common:amd64 not installed
ceph-common:i386 10.1.2-0ubuntu1 xenial nova.clouds.archive.ubuntu.com
ceph-common:i386 10.2.10-0ubuntu0.16.04.1 xenial-updates nova.clouds.archive.ubuntu.com
ceph-common:i386 not installed
可以看得是,Ceph客户端版本是10.1.2,再来看一下Ceph集群的号:
root@zjt-02:/up# ceph --version
ceph version 12.2.4 (52085d5249a80c5f5121a76d6288429f35e4e77b) luminous (stable)
很明显,客户端版本和集群版本不一样。怎么办?一步步来,先增加一个源:
root@zjt-05:/# sudo apt install software-properties-common
root@zjt-05:/# sudo add-apt-repository cloud-archive:queens
root@zjt-05:/# apt-get update
再来安装ceph-common客户端:
root@zjt-05:/# apt-get install ceph-common
安装完成之后再来看一下新的客户端的版本:
好了,现在一致了。再顺手安装一下网关radosgw:
root@zjt-05:/# apt install radosgw
安装好了ceph客户端后,就会出现/etc/ceph的文件夹,现在进入到这个文件夹。在这个文件夹底下操作。首先,是将集群中的集群配置文件 ceph.conf 和钥匙环 ceph.client.admin.keyring 拷贝到这个文件夹底下。拷贝完之后,现在文件夹底下的内容如下:
用ceph -s 查询一下集群的健康状态来验证是否已经和集群联通:
没有问题。
现在来创建一个网关试试看,先创立一个文件夹:
root@zjt-05:/etc/ceph# sudo mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.zjt-05/
其中,zjt-05是在/etc/hosts下注册的本机的主机号。
再将从集群中搬过来的钥匙复制到刚刚建立的文件夹下,并命名为ceph.keyring
root@zjt-05:/etc/ceph# cp ./ceph.client.admin.keyring /var/lib/ceph/radosgw/ceph-radosgw.zjt-05/ceph.keyring
执行下面的操作:
root@zjt-05:/etc/ceph# radosgw -k /var/lib/ceph/radosgw/ceph-radosgw.zjt-05/ceph.keyring
到此,操作都已完成,检查 radosgw 服务有没有打开:
没有问题,进程已经启动了。再看一下能不能访问 7480 端口:
也可以访问。一切准备就绪。
下面就可以创立用户,建立bucket等操作了。
大功告成!
另外,使用 radosgw -f 可以查看运行时的动态日志。