ceph 问题处理
1、三个ceph monitor节点clock skew时钟偏移问题?
解决:(1)其他控制节点更改ntp.conf与controller01进行同步,如果ntpd不生效,使用date -s "10:24:25"命令强制更改。
(2)[root@node-3 ~]# ceph health detail
mon.node-3 addr 192.168.15.4:6789/0 clock skew 14.5967s > max 5s (latency 0.0261497s)
[root@node-3 ~]# vim /etc/ceph/ceph.conf
mon_clock_drift_allowed = 15 ##注意上面的14.567秒,必须大于这个值才行,当然前提是NTP已经同步,date时间相同
mon_clock_drift_warn_backoff = 30
[root@node-3 ~]# ceph-deploy --overwrite-conf admin node-1 node-2
[root@node-3 ~]# systemctl restart ceph-mon@node-3.service
然后,登陆到node-1、node-2分别只需要重启mon服务,不需要重启存储节点的osd服务,一个节点运行systemctl restart ceph-mon.target应该也行,会重启所有Mon,实验结果好像不行,还是单独到每个节点重启吧。
[root@node-1 ~]# systemctl restart ceph-mon@node-1.service
[root@node-2 ~]# systemctl restart ceph-mon@node-2.service
2、监控节点运行ceph -s命令发现too many PGs per OSD(896 > max 300),并出现集群健康告警?
解决:(1)[root@node-3 ~]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.97198 root default
-2 0.06580 host node-2
0 0.06580 osd.0 up 1.00000 1.00000
-3 0.45399 host node-4
1 0.45399 osd.1 up 1.00000 1.00000
-4 0.45219 host node-5
2 0.45219 osd.2 up 1.00000 1.00000
问题原因为集群osd 数量较少,测试过程中建立了大量的pool
(2)在Mon节点,[root@node-3 ~]# vim /etc/ceph/ceph.conf
mon_pg_warn_max_per_osd = 1000
[root@node-3 ~]# ceph-deploy --overwrite-conf admin node-1
[root@node-3 ~]# systemctl restart ceph-mon@node-3.service
[root@node-1 ~]# systemctl restart ceph-mon@node-1.service
3、启动OpenStack虚拟机失败,控制台显示no bootable device?
解决:镜像不应该为qcow2格式,应该为raw格式,raw格式的镜像能对接后端ceph存储。
# qemu-img convert image.qcow2 -O raw image2.raw
# glance image-create --name CentOS-20171025 --disk-format raw --container-format bare --os-distro centos --visibility public --file=file.raw –progress
4、roller的web界面部署ceph集群error现象?
解决:[root@roller ~]# roller task
[root@roller ~]# roller task delete -f --task 【任务ID】
[root@roller ~]# roller node --node-id 【error的节点序列号】--deploy --env 1 //重复执行执行error节点个数对应的相应次数
5、部署节点无法ssh到所有控制节点?
答:(1)默认是Public key登陆,已经把控制节点的ssh配置文件改为password auth还是不行。
(2)把部署节点的/root/.ssh/known_hosts的对应控制节点IP记录删除即可。
6、存储节点所有osd都down掉?(耗时最长的问题)
最终解决(NTP问题):起初,控制节点systemctl status ceph-mon@3.service正常,存储节点systemctl status ceph-osd@1.service状态均为active,但是osd就是起不来。
最开始尝试过几种方式排错,但没啥结果:
第一种(失败):观察到PG一直处于creating状态,参考网上资料说是crushmap的问题?
未解决:(1)# ceph osd getcrushmap -o crush.map
# crushtool -d crush.map -o crush.txt //反编译才能看的懂文件
# vim crush.txt //在ruleset中修改
step set_choose_tries 100
# crushtool --compile crush.txt -o better.crush.map
# ceph osd setcrushmap -i better-crush.map
参考文档:http://blog.csdn.net/u012320882/article/details/46553961
(2)PG一直处于creating的原因就是无法与osd进行关联,一旦互联完成,归置组状态应该变为 active+clean,从而客户端无法读写数据,那么问题应该放在OSD上面,而不是PG上面了。OSD异常是因为PG的状态是果。
第二种方式(失败):一度发现osd进程起不来,说是启动进程的请求太快了
(1)# service ceph status osd.0 或则systemctl restart ceph-osd@0.service 发现服务起不来
解决重启osd服务失败:Start request repeated too quickly启动请求太快了
# vim /etc/systemd/system/ceph-osd.target.wants/ceph-osd@0.service
----------
注释 StartLimitInterval = 30min
-------
# systemctl daemon-reload
# systemctl restart ceph-osd.target //启动本机上所有osd进程
存储节点执行# systemctl status ceph-osd@0.service,服务起来了,但是osd依然是down的状态,应该需要在控制节点的Mon服务上下功夫,osd进程好了后,需要向Mon进行报告,如果不报告,那么Mon依然认为osd挂了。
参考文档:http://www.cnblogs.com/wuyuxin/p/7041364.html
(2)但是ceph osd tree发现所有节点依然down掉,服务虽然起来了。执行ceph health detail发现
pg is stuck inactive ,current state creating,last acting 基本上可以定位ceph创建PG失败
根据第第一种方式的思考,发现PG状态是结果但不是原因。
(3)重启控制节点的mon服务试试,没用。
(4)在各个osd节点,执行ceph-disk activate-all无济于事
参考文档:https://www.2cto.com/net/201704/633243.html
控制节点ceph-deploy osd activate ceph01:/dev/sdb1 ceph02:/dev/sdb1激活也没用,注意权限最好为chown ceph:ceph /dev/sdb1
(5)在存储节点dmesg |grep scsi查看硬盘是否错误。或dmesg |less 查看内核错误
参考文档:http://docs.ceph.org.cn/rados/troubleshooting/troubleshooting-osd/
第三种方式(成功): 因为有人的提醒,我才关注NTP不对时问题。
(1)起初改了ntp.conf,重启ntpd服务,依然不对时。
(2)控制节点因为改了BIOS,硬件时钟是与10.109.192.5的NTP服务器互通,但是存储节点是私网地址无法与NTP互通,于是更改存储节点的/etc/ntp.conf,把server字段改为控制节点10.10.1.5,重启完ntpd服务,执行ntpq -p命令后,执行date命令但是时间依然不同步。
(3)无奈之下,date -s 10:28:12 强制临时改时间,而后,发现某个存储节点与控制节点能稍微同步,于是改其他存储节点与能同步的节点,重新再ntp.conf中定义,osd终于up了,如释重负。
(4)写入系统时钟,hwclock -w
14、ansible批量查看16台节点的网卡名称,MAC信息,千兆万兆带宽
(1)在一台可以上网的机器安装ansible软件
[root@ceph ~]# vim /etc/yum.conf
keepcache=1
[root@ceph ~]# yum clean all
[root@ceph ~]# yum install ansible createrepo -y
[root@ceph ~]# cd /var/cache/yum/x86_64/7/
[root@ceph ~]# cp base/packages/* /srv/ansible_repo
[root@ceph ~]# cp extras/packages/* /srv/ansible_repo
[root@ceph ~]# scp /srv/ansible_repo root@noode-2:/mnt/ansibe_repo
(2)在一台不能上网的机器配置ansible源
[root@node-2 ~]# cd /mnt/ansible_repo
[root@node-2 ~]# rpm -ivh createrepo*.rpm
[root@node-2 ~]# cd ..
[root@node-2 ~]# createrepo ansible_repo
[root@node-2 ~]# vim /etc/yum.repos.d/ansibl.repo
[ansible]
name=local ansible yum
baseurl=file:///mnt/ansible_repo
enabled=1
gpgcheck=0
[root@node-2 ~]# yum repolist
[root@node-2 ~]# yum install ansible -y
[root@node-2 ~]# vim /etc/ansible/hosts
[test]
node-01 ansible_ssh_pass=passw0rd
node-16 ansible_ssh_pass=passw0rd
------------------------------------
[root@node-2 ~]# ansible test -m -a "ifconfig |grep eth[0-9]|awk -F: '{print $1}"
node-1 | SUCCESS | rc=0 >>
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
[root@node-2 ~]# ansible test -m -a "ifconfig |grep ether|awk '{print $2}'"
node-1 | SUCCESS | rc=0 >>
ether 00:0c:29:19:80:06 txqueuelen 1000 (Ethernet)
ether 00:0c:29:19:80:10 txqueuelen 1000
[root@roller mnt]# ansible test -m shell -a "ethtool eth0|grep -i speed"
node-1 | SUCCESS | rc=0 >>
Speed: 1000Mb/s(Ethernet)
[root@roller mnt]# tar zcvf ansible.tar.gz ansible_repo/ ##把这个压缩包下载下来,防止无法连外网而无法安装ansible
15、为什么我明明使用1T的系统盘,但是进入lsblk一看,只有几个G左右的LVM,我以为是没分完区,再fdisk /dev/vda,分是能分成功,但是df和lsblk发现vda3只有1K?
解决:(最终发现是虚拟机模板镜像不合适)就是无论你分配多大配额上去,每个虚拟机的系统盘默认可用的就只有8G,但是并不是说系统盘只有8G,需要把没分配完的分区,然后扩展到LVM当中。
[root@host-172-16-1-229 ~]# lsblk
[root@host-172-16-1-229 ~]# fdisk /dev/vda
【一直回车,并且使用主分区,不使用扩展分区,w保存退出】
[root@host-172-16-1-229 ~]# partprobe
[root@host-172-16-1-229 ~]# pvcreate /dev/vda3
[root@host-172-16-1-229 ~]# vgextend centos /dev/vda3
[root@host-172-16-1-229 ~]# lvextend -L +192G /dev/centos/root ##192G是lsblk看到未分配的容量
[root@host-172-16-1-229 ~]# xfs_growfs /dev/centos/root
[root@host-172-16-1-229 ~]# df -Th
osd_crush_chooseleaf_type
0 是给单节点的 ceph 集群使用的,而 1 是默认值
[root@ch-mon- ceph]# cat ceph.conf
[global]
fsid = 31fc3bef-d912-4d12-aa1e-130d3270d5db
mon_initial_members = ch-mon-, ch-mon-, ch-mon-
mon_host = 172.16.30.78,172.16.30.79,172.16.30.80
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx public_network = 172.16.30.0/
cluster_network = 172.16.31.0/
osd_pool_default_size =
osd_pool_default_min_size =
osd_pool_default_pg_num =
osd_pool_default_pgp_num =
osd_crush_chooseleaf_type = [mon]
mon_clock_drift_allowed = 0.5 [osd]
osd_mkfs_type = xfs
osd_mkfs_options_xfs = -f
filestore_max_sync_interval =
filestore_min_sync_interval = 0.1
filestore_fd_cache_size =
filestore_omap_header_cache_size =
filestore_fd_cache_random = true
osd op threads =
osd disk threads =
filestore op threads =
max_open_files =
参考:
https://www.cnblogs.com/yue-hong/p/7745733.html
ceph 问题处理的更多相关文章
- ceph hadoop spark 大数据处理
http://docs.ceph.com/docs/giant/cephfs/hadoop/ https://indico.cern.ch/event/524549/contributions/218 ...
- 庆祝下,提交了第一个ceph pull request。实现了从0到1的突破
庆祝一下!经过社区老司机的带路,昨天提交了第一个ceph pull request.实现了从0到1的突破,希望再接再厉提交更多代码到社区,为社区发展贡献一点自己力量. 提交的第一个被社区fix的bug ...
- Ceph RGW服务 使用s3 java sdk 分片文件上传API 报‘SignatureDoesNotMatch’ 异常的定位及规避方案
import java.io.File; import com.amazonaws.AmazonClientException; import com.amazonaws.auth.profile ...
- Ceph RGW 创建默认的pool
使用Ceph-deploy完成RGW服务部署后(最好是在部署RGW服务前建立如下这些pool),使用sudo ceph osd lspools 命令,会发现RGW自动以默认参数创建了N个rgw相关的p ...
- 自建Ceph存储与 AWS、阿里云、腾讯云的成本对比
本文单从存储成本角度对比了自建Ceph存储和业界公有云存储的硬件成本,不包括IDC带宽成本. 统计Ceph集群的用到的主要设备为: OSD.MON.RGW服务器 .TOR交换机. 机架. 下表解释: ...
- 理解 OpenStack + Ceph (9): Ceph 的size/min_size/choose/chooseleaf/scrubbing/repair 等概念
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- Ceph RGW 和 niginx 配置要点
cat /etc/nginx/sites-enabled/rgw.conf server { listen 80 default; #server_name .com .com.cn .net .cn ...
- ceph network introduce
网络结构 Ceph 使用以太网连接内部各存储节点以及连接 client 和集群.Ceph 推荐使用两个网络: 前端(北向)网络( a public (front-side) network):连接客户 ...
- ceph_deploy部署ceph分布式文件系统
1.前期准备:centos6.5 minimal版本3台 选择其中一台作为一个安装节点,能无密码登录其他机器.ssh-keygen ssh-keygen -i ~/.ssh/id_rsa.pub no ...
- ceph官网的ceph块设备(二)——快照相关
一)快照基础命令 网址:http://ceph.sptty.com/rbd/rbd-snapshot/ 1. 创建快照 # rbd snap create yhcpool/yhctest@yhctes ...
随机推荐
- MJPEG 格式分析
MJPEG简介 MJPEG(技术即运动静止图像(或逐帧)压缩技术)是24-bit的"true-color"影像标准.MJPEG的工作是将RGB格式的影像转换成YCrCB格式,目的是 ...
- [转]git操作指南
[GIT上手篇]-1-基本操作(初始化仓库,添加.提交文件) 创建(初始化)一个GIT库 init 命令 说明:用于仓库的初始化 参数:--bare 创建一个纯仓库(不含缓存区和工作目录,服务器一般采 ...
- JavaScript之破解数独(附详细代码)
在上一篇分享中,我们用Python和Django来破解数独,这对不熟悉Python和Django的人来说是非常不友好的.这次,笔者只用HTML和JavaScript写了破解数独的程序,对于熟悉前端 ...
- Flask在Pycharm开启调试模式
一.Flask在Pycharm2018前的版本只需设置(两种方法之一): 1. 直接设置app的debug为true: app.debug=true 2. 把debug=true作为参数,传入到 ...
- CentOS6.5安装mysql以及常见问题的解决
前言 最近在学习Linux系统,今天在安装MySQL数据库时出现很多问题,花费了两个小时终于解决,故记录下来以供大家参考.(本人目前还在学习阶段,下面写到的是自己结合网上查到的资料以及各位前辈给出的解 ...
- 【Java并发编程】21、线程池ThreadPoolExecutor源码解析
一.前言 JUC这部分还有线程池这一块没有分析,需要抓紧时间分析,下面开始ThreadPoolExecutor,其是线程池的基础,分析完了这个类会简化之后的分析,线程池可以解决两个不同问题:由于减少了 ...
- MSys2安装QT5
1. MSYS2 shell # pacman –Syuu 2. Reopen MSYS2 # pacman –Syuu 3.添加国内源 msys64\etc\pacman.d 目录下有三个文件 1. ...
- 《Inside C#》笔记(五) 方法
方法用来体现类的行为. 一 相关概念 a) ref和out 通常一个方法只能返回一个值,但如果确实需要返回多个值时,可以使用ref或out.如果方法的参数被标注为ref或out,在调用该方法时,会传递 ...
- CSS3伪类和伪元素
作为一个CSS3初学不久者来说,很容易混淆单冒号(:)和双冒号(::)的用法,以为两者可以互换着来使用.我自己之前也混淆过他们,因为两者看起来太相像了,就像孪生兄弟.但实际上,他们的区别还是挺大的,最 ...
- mysql的高级特性-存储过程
定义: 存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来执行这些sql语句命令. 语法: DELIMITER // 声明语句结束符,用于区分; CEATE PROCED ...