目标
在centos7.5中,安装ceph-13.2.5版本,能使用ceph -s
命令查询到HEALTH_OK为止。
通过查询ceph官网以及各种博客可以知道,大概有以下几种ceph安装方法:
- 按照ceph官网教程,使用ceph-deploy工具进行安装。
- 按照ceph官网教程,下载源码并编译安装。
- 使用yum直接进行安装。
上面的三个方法我都尝试了,只有第三种方法是最靠谱的,也只有这种方法完成了集群搭建。
在大量的尝试安装之后,总结流程如下:
- 首先,按照官网教程完成前期准备工作。
- 其次,在用于搭建集群的每一台虚拟机上安装ceph-13.2.5。
- 最后,使用第一步搭好的ceph-deploy主机完成后续的集群搭建。
也就是99%参考官网教程,但是取代其中的ceph-deploy install XXX XXX XXX
这一步。
下面依次叙述各个步骤。
前期准备
难度:简单。
在ceph官网可以看到如何进行前期的准备(蓝色框部分),还是很详细的,INSTALLATION (CEPH-DEPLOY)。
这里同样参考官网教程,起了4台虚拟机,一台作为ceph-deploy,另外三台用于搭建cluster。
注意事项:
最好将每一台虚拟机上的/etc/hosts
文件都进行修改,例如这里添加了下面内容:
1 | 192.168.31.203 node1 |
这里的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工具受挫之后,这里也尝试了使用源码进行编译安装。
如上图中的蓝色框部分,就是官网教你如何源码编译安装的过程。
当然,这一步我还是失败了,因为在执行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 |
所以其实最简单的方法就是:
- 配置ceph源(建议使用国内源,我这里使用了网易源)。
- 确定安装了epel-release。
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, 然后在它上面不装东西,而只用来获取所有的依赖。
所以这里的操作步骤就是:
- 安装一个minimum版本的centos7.5(非必须,但这样保证没有问题)。
sudo yum install --downloadonly --downloaddir=/home/long/yum/ceph-13.2.5 ceph-13.2.5 ceph-radosgw-13.2.5
获取所有依赖。- 参考之前的方法建立局域网源linux基础练习-2
- 在需要安装ceph的虚拟机上修改repo为局域网repo,然后进行ceph安装。
使用第一步搭好的ceph-deploy主机完成后续的集群搭建
这里同样的,直接参考官方教程即可:
其它的步骤都一样,只是ceph-deploy install xxx xxx xxx
这一步我们已经在上一步完成了。
可以看到我这里终于完成了集群的搭建:
1 | $ ssh node1 sudo ceph -s |
这里每一个osd上挂载了一个10G的虚拟硬盘,第一个硬盘什么都没做直接挂在了osd上, 另外两个先创建成lvm分区(比较推荐)再进行的挂载。