0%

centos7上的ceph指定版本安装方法


目标

在centos7.5中,安装ceph-13.2.5版本,能使用ceph -s命令查询到HEALTH_OK为止。

通过查询ceph官网以及各种博客可以知道,大概有以下几种ceph安装方法:

  1. 按照ceph官网教程,使用ceph-deploy工具进行安装。
  2. 按照ceph官网教程,下载源码并编译安装。
  3. 使用yum直接进行安装。

上面的三个方法我都尝试了,只有第三种方法是最靠谱的,也只有这种方法完成了集群搭建。

在大量的尝试安装之后,总结流程如下:

  1. 首先,按照官网教程完成前期准备工作。
  2. 其次,在用于搭建集群的每一台虚拟机上安装ceph-13.2.5。
  3. 最后,使用第一步搭好的ceph-deploy主机完成后续的集群搭建。

也就是99%参考官网教程,但是取代其中的ceph-deploy install XXX XXX XXX这一步。

下面依次叙述各个步骤。


前期准备

难度:简单。

images

在ceph官网可以看到如何进行前期的准备(蓝色框部分),还是很详细的,INSTALLATION (CEPH-DEPLOY)

这里同样参考官网教程,起了4台虚拟机,一台作为ceph-deploy,另外三台用于搭建cluster。

注意事项:

最好将每一台虚拟机上的/etc/hosts文件都进行修改,例如这里添加了下面内容:

1
2
3
192.168.31.203 node1
192.168.31.204 node2
192.168.31.205 node3

这里的node1、node2、node3就是用来搭集群的三台虚拟机,不包含ceph-deploy虚拟机。 做这件事主要是因为后面在使用ceph-deploy mon create-initial这个命令时,它使用到这些修改后的hostname去创建文件, 在没有添加以上内容的机器上,就会使用localhost来代替本机,可能造成名称不同步而出现找不到文件的ERROR


在用于搭建集群的每一台虚拟机上安装ceph-13.2.5

难度:困难。

实际上在第一次成功装上之后,你就会发现这其实是一件十分简单的事情, 但是要到达第一次成功安装,有一个十分艰难的过程。


方法一:使用ceph-deploy工具进行安装。

在官网的教程中,就是使用ceph-deploy来进行ceph的安装的,但是在使用过程中会发现, 使用它安装只能指定大版本号(例如:mimic),而mimic现在的最新版本是13.2.6, 这里所需要的是13.2.5,使用它进行安装,就只能安装13.2.6。

当然在通过ceph-deploy install -h命令可以看到它可以指定镜像源--local-mirror,如果你有一个完整的本地ceph13.2.5的源, 也许用它来安装13.2.5也是可以的。

另外的问题是,就算你要装的就是13.2.6版本,在国内进行ceph-deploy install XXX时还是很容易出现error,因为一些依赖包可能会下载失败。

结论:方法一不合适。


方法二:下载源码并编译安装。

在使用ceph-deploy工具受挫之后,这里也尝试了使用源码进行编译安装。

images

如上图中的蓝色框部分,就是官网教你如何源码编译安装的过程。

当然,这一步我还是失败了,因为在执行make时,速度非常慢,而且它还会去下载各种包, 当它编译了4个小时之后,卡在了一个依赖包,又等了1个小时,它一点没动,只能ctrl+c, 再进行make就直接error了。

所有这里如果你想进行make,那先shutdown虚拟机,并多分几个cpu,在make时,使用make -j4开启多线程, 会快很多,当然,过程中还是有可能失败,但至少不用等这么久!

结论:方法二不合适。


方法三:直接使用yum指定版本号安装。

难度:简单。

在前辈的指点之下,发现原来yum直接可以指定版本号进行安装???

这里所需的命令就是:

1
$ sudo yum install -y ceph-13.2.5 ceph-radosgw-13.2.5

所以其实最简单的方法就是:

  1. 配置ceph源(建议使用国内源,我这里使用了网易源)。
  2. 确定安装了epel-release。
  3. sudo yum install -y ceph-13.2.5 ceph-radosgw-13.2.5一定要两个一起安装,并都带上版本号。

结论:方法三合适。


真正使用的方法:在方法三的基础上,建立局域网源。

使用局域网源的好处就是快,而且不会在安装时给你报个错,所以可以在方法三的基础上制作一个ceph局域网源。

关键命令就是:

1
$ sudo yum install --downloadonly --downloaddir=/home/long/yum/ceph-13.2.5 ceph-13.2.5 ceph-radosgw-13.2.5 

使用了--downloadonly指令之后,yum就不会真正去安装ceph,而是将ceph以及它所有的相关依赖(本机上没有的)都下载下来。

为了获得完成的依赖,可以安装一个minimum版本(不是minimum安装,而是iso镜像就是minimum)的centos7.5, 然后在它上面不装东西,而只用来获取所有的依赖。

所以这里的操作步骤就是:

  1. 安装一个minimum版本的centos7.5(非必须,但这样保证没有问题)。
  2. sudo yum install --downloadonly --downloaddir=/home/long/yum/ceph-13.2.5 ceph-13.2.5 ceph-radosgw-13.2.5获取所有依赖。
  3. 参考之前的方法建立局域网源linux基础练习-2
  4. 在需要安装ceph的虚拟机上修改repo为局域网repo,然后进行ceph安装。

使用第一步搭好的ceph-deploy主机完成后续的集群搭建

这里同样的,直接参考官方教程即可:

images

其它的步骤都一样,只是ceph-deploy install xxx xxx xxx这一步我们已经在上一步完成了。

可以看到我这里终于完成了集群的搭建:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ ssh node1 sudo ceph -s

cluster:
id: 082d1625-1d68-4261-82c8-3fe9fe3ef489
health: HEALTH_OK

services:
mon: 3 daemons, quorum node1,node2,node3
mgr: node1(active), standbys: node2, node3
osd: 3 osds: 3 up, 3 in

data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 3.0 GiB used, 27 GiB / 30 GiB avail
pgs:

这里每一个osd上挂载了一个10G的虚拟硬盘,第一个硬盘什么都没做直接挂在了osd上, 另外两个先创建成lvm分区(比较推荐)再进行的挂载。


参考

INSTALLATION (CEPH-DEPLOY)

centos7部署ceph