欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
本文为长篇连续剧,将分多个篇幅发表,主要介绍了从动手部署环境到后期运营故障处理过程中常见的问题,内容由浅入深,是居家旅行运维Ceph的必备良药。
Q1. 环境预准备
绝大多数MON创建的失败都是由于防火墙没有关导致的,亦或是SeLinux没关闭导致的。一定一定一定要关闭每个每个每个节点的防火墙(执行一次就好,没安装报错就忽视):
CentOS
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config setenforce 0 systemctl stop firewalld systemctl disable firewalld # iptables -F service iptables stopQ2. 清理环境
MON部署不上的第二大问题就是在旧的节点部署MON,或者在这个节点部署MON失败了,然后重新new再mon create-initial,请查看要部署MON的节点上的/var/lib/ceph/mon/目录下是否为空,如果不为空,说明已经在这个目录部署过MON,再次部署会检测子目录下的done文件,由于有了这个文件,就不会再建立新的MON数据库,并且不会覆盖之,导致了部署时的各种异常,这里就不赘述了,直接给出万能清理大法:
对于任何需要新部署MON的节点,请到这个节点下执行如下指令,确保环境已经清理干净:
ps aux|grep ceph |awk '{print $2}'|xargs kill -9 ps -ef|grep ceph #确保此时所有ceph进程都已经关闭!!!如果没有关闭,多执行几次。 rm -rf /var/lib/ceph/mon/* rm -rf /var/lib/ceph/bootstrap-mds/* rm -rf /var/lib/ceph/bootstrap-osd/* rm -rf /var/lib/ceph/bootstrap-rgw/* rm -rf /etc/ceph/* rm -rf /var/run/ceph/*请直接复制粘贴,遇到过好些个自己打错打漏删了目录的。
Q3. 部署前最后的确认
这里介绍的都是个案,不过还是需要提一下:
- 确保每个节点的
hostname都设置正确,并且添加至/etc/hosts文件中,然后同步到所有节点下。克隆出来的虚拟机或者批量建的虚拟机有可能发生此情形。 - 确保以下目录在各个节点都存在:
/var/lib/ceph//var/lib/ceph/mon//var/lib/ceph/osd//etc/ceph//var/run/ceph/- 上面的目录,如果Ceph版本大于等于
jewel,请确认权限均为ceph:ceph,如果是root:root,请自行chown。
Q4. 安装Ceph
官网指导方法是使用ceph-deploy install nodeX,但是因为是国外的源,速度慢得令人发指,所以我们换到阿里的源,并且使用yum install的方式安装,没差啦其实,这样反而还快点,毕竟多个节点一起装。
很多安装失败的都是因为没有添加epel源请在每个存储节点都执行以下指令,来安装Ceph:
yum clean all rm -rf /etc/yum.repos.d/*.repo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo sed -i 's/$releasever/7.2.1511/g' /etc/yum.repos.d/CentOS-Base.repo echo " [ceph] name=ceph baseurl=http://mirrors.aliyun.com/ceph/rpm-hammer/el7/x86_64/ gpgcheck=0 [ceph-noarch] name=cephnoarch baseurl=http://mirrors.aliyun.com/ceph/rpm-hammer/el7/noarch/ gpgcheck=0 " > /etc/yum.repos.d/ceph.repo yum install ceph ceph-radosgw -y这里是安装的
