由于工作原因涉及了nfs存储瓶颈问题,逐渐接触ceph,甚感兴趣,考虑进行测试部署,网上看了很多部署指导文档基本没有顺利部署成功的,无论纯手工,还是使用工具(deploy,ansible)或多或少都会出现问题,第一步安装源基本上都会把大家卡住,因为大多都是基于替换安装源配置文件,更改为阿里源,即便是安装成功,但是考虑真正的生产环境是没有外网环境的,所以这样的安装步骤就没法参考,到实际生产中没法实施,加上ceph的官方网站无论是英文环境还是中文环境,虽然介绍的很详细,但是要是参考这里的步骤安装,更是头大。
根据个人踩坑经验,比较中意使用deploy进行部署,同时使用linux的安装打包组件,进行离线安装,一个原因是使用deploy基本上可以在了解ceph组件更深入的过程中部署,避免了使用ansible的黑箱化,以及纯手工的迷茫,同时满足了生产环境无公网访问的安装源等尴尬问题。
本次采用vmware虚拟机进行部署,创建三个cetenos7虚拟环境,每虚拟机挂载一个5G虚拟磁盘sdb,单平面组网。
每台有两块磁盘 : /dev/vda(系统盘), /dev/vdb,
每台有一块网卡 :ens33
主机IP | 主机名 | 组件 | |
---|---|---|---|
192.168.255.131 |
node01 | osd、mon、mgr、mds、ceph-deploy | |
192.168.255.132 |
node02 | osd、mon、mgr、mds | |
192.168.255.133 |
node03 | osd、mon、mgr、mds | |
linux版本:
ceph-deploy版本:
该部分不再做详细操作,只做简单说明,和注意点
使用单平面组网,所有主机网卡名称修改为一致(记得有一个配置文件里面统一的网卡名称需要,待定)
本次因为合设,使用node01做管理端,所以三台主机做互相做root用户免密,如果后续不合适,使用单独主机做deploy工具安装,则可仅做该主机对其他集群所有主机免密操作即可。
免密操作步骤省略,可参考网上教程。
配置操作省略,可参考网上教程,分布式的必须服务,所有节点间时间要同步,如果生产环境有公用的ntp服务,则所有主机配置该服务地址即可,如果无,则需要在集群内部找一个主机开启ntp服务,其他主机作为客户端使用该服务即可,
一般生产环境在运维提供的主机后,已经ntp都设置好了,检查一下最好。
systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld
systemctl is-enabled firewalld
/usr/sbin/sestatus -v 或者getenforce
setenforce 0 #临时关闭 设置SELinux 成为permissive模式
setenforce 1 #临时关闭 设置SELinux 成为enforcing模式
永久关闭
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
ceph的部署包含两个部分,第一部分为软件安装(ceph包含的几个进程组件),第二部分为集群安装(使用安装的组件,构建分布式集群),其中在第一部分和第二部分全部可以使用ceph-deploy进行安装,个人建议在第一部分手工采用离线方式yum命令安装ceph,以及ceph-deploy,第二部分全部采用ceph-deploy进行部署。
使用一台可以访问外网的主机,进行以下操作
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
rm -f /etc/yum.repos.d/*.repo
#更换yum为阿里云
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#安装EPEL源
wget -P /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#增加ceph源,末尾增加一下内容,根据版本需要更换目录(/rpm-luminous/el7/x86_64/)
vi CentOS-Base.repo
http://mirrors.aliyun.com/ceph
可以登录打开该地址,根据列表选择自己需要的版本,更换相应的子目录
#阿里ceph源
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
[ceph-source]
name=ceph-source
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
gpgcheck=0
#
#更新
yum clean all
yum makecache
#yum依赖组件
yum -y install epel-release
yum -y install yum-utils
yum -y install createrepo
#查询deploy版本
[bonc@aaa003 ~]$ yum list all | grep ceph-deploy
ceph-deploy.noarch 2.0.1-0 @lsdceph
#查询当前源里边配置的大版本(rpm-luminous)下的各种小版本
[bonc@aaa003 ~]$ yum list ceph --showduplicates | sort -r
已加载插件:fastestmirror
已安装的软件包
可安装的软件包
* updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
* extras: mirrors.aliyun.com
ceph.x86_64 2:12.2.13-0.el7 lsdceph
ceph.x86_64 2:12.2.13-0.el7 @lsdceph
* base: mirrors.aliyun.com
#下载deploy软件包,以及所需各种依赖到指定目录
mkdir /home/lsdceph
repotrack ceph-deploy-2.0.1 -p /home/lsdceph
该命令不进行实际安装,只是把安装该软件、以及该软件依赖的包全部下载到指定的目录内
#一次性下载ceph-12.2.13相关主包及其依赖
repotrack ceph-12.2.13 ceph-mgr-12.2.13 ceph-mon-12.2.13 ceph-mds-12.2.13 ceph-osd-12.2.13 ceph-fuse-12.2.13 ceph-radosgw-12.2.13 -p /home/lsdceph
为了避免在实施主机上进行其他包的安装,额外打包以下资源
repotrack createrepo -p /home/lsdceph
repotrack yum-utils -p /home/lsdceph
所有软件下载完毕后,进行打包,下载并拷贝的节点01上
createrepo -v /home/lsdceph/
tar -cvf lsdceph.tar ./lsdceph/
#拷贝压缩包到3台主机的/home下,继续,当然也可以先打包拷贝后 再进行createrepo
#待部署主机配置软件源
#在所有待部署节点创建repo文件()
[root@node01 yum.repos.d]# cd /etc/yum.repos.d
[root@node01 yum.repos.d]# mkdir bak
[root@node01 yum.repos.d]# mv *.repo ./bak
vi ceph.repo
#路径取决于资源包存放目录
[lsdceph]
name=test repositry
baseurl=file:///home/lsdceph
enabled=1
gpgcheck=0
更新缓存
yum clean all
yum makecache
yum repolist
该组件仅在管理节点(node01)进行安装
yum install ceph-deploy --enablerepo=lsdceph
前边提到过,该步骤可以使用deploy进行安装(本人使用过,虽然设置了安装源,但是还报错,就没再踩坑,采用手工很不错),个人建议采用手工,前边离线安装包的制作就是为了该步骤的手工安装。
基于前边配置的安装源,进行安装,在所有三个节点(node01 node02 node03)进行操作
yum install ceph --enablerepo=lsdceph
经过以上步骤 所有软件已安装完毕,可进行下一步集群部署
其中在该步骤如果让然报存在部分软件依赖不存在,是由于制作安装源镜像的主机环境(包含了依赖,打包过程就不再包含该依赖)和集群主机环境不同,针对这种情况,可以根据提示下载依赖的rpm,添加到到打包的文件夹(),使用命令createrepo update更新即可。
因工作,该文档需抽时间补充,不能一次性总结完全,抱歉!会在闲暇时间进行追加更新(最新更新在2020-06-16)