描述:

记录一次重大事故:根据IaaS资源业务要求,需要增加某些功能,所以要修改部署代码。修改后重推部署代码,检查发现没有什么异常。

但是一段时间后就收到用户的报障反馈,接连一个电话、2个电话、3个电话。。。。慌了。。。。

业务故障表现,如下图

处理流程
  1. 首先查看ceph集群状态正常,排除ceph集群问题,如下图:

  1. 检查iaas平台nova、cinder、neutron服务均为正常。

  2. [回顾变更修改的操作]. 虚拟机在进行数据读写的时候通过public network(也就是平台的bondmg网络)流先到monitor节点然后和osd节点通信,如果期间端口被阻塞,会导致io error,本次变更操作里有改变节点的iptables规则,因此首先查看高性能存储节点上的iptables规则,查看并没有涉及到ceph服务的端口。

  3. [回顾变更修改的操作]. 确认存储的tcp连接是否正常,在Control01用public网卡,ping storage-osdnode10 -I bondmg 的public地址,确认连通性正常;利用telnet storage-osdnode10的osd端口,确认tcp连接正常。

  4. [回顾变更修改的操作]. 该环境存在两个存储池,确认受影响的范围,分别查看两个池跑的业务虚拟机的情况。确认sata池的虚拟机正常,定位问题影响范围在ssd高性能池。

  5. [确认故障问题] 尝试选择ssd高性能后端创建测试虚拟机,创建失败,虚拟机状态为error,直接创建type为ssd类型的卷,状态也显示error,怀疑cinder没有高性能存储池的权限。

  6. 查看storage-osdnode10节点cinder-volume容器,执行rbd -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.cinder.keyring --user cinder -p volumes_ssd ls命令,提示没有权限。

  7. 进入ceph,查看cinder用户权限,发现client.cinder里缺少volume_ssd pool的权限,如下图,确认本次故障根本原因,客户端cinder缺少访问高性能池的权限

根本问题原因:这个可能涉及到修改kolla-ansibel部署代码的时候不小心修改到了存储池的权限,重新推的时候ceph集群权限变更了

  1. 临时解决方案:通过ceph auth import方式为client.cinder用户增加volumes_ssd 的rwx权限

永久解决方案:修改kolla-ansible代码增加该pool的权限。

  1. 重启高性能业务虚拟机,发生启动正常。

  2. 验证volume类型为高性能池创建卷成功。

  3. 开始恢复业务虚拟机,业务虚拟机重启后均恢复正常。

[故障]ceph存储池权限修改错误,导致存储池的业务hang住的更多相关文章

  1. 报错——selinux配置文件修改错误导致无法启动虚拟机

    selinux配置文件修改错误导致无法启动虚拟机 问题 错误修改配置文件 [root@centos73 ~]# cat /etc/selinux/config # This file controls ...

  2. Oracle归档文件夹权限设置错误导致的数据库问题解决

    把oracle设置为归档模式并且为归档文件新建文件夹 /home/oracle/app/oracle/arch/orcl 但是在启动或者备份时候经常性出现错误 startup报错 startup同时日 ...

  3. [jnhs]id字段修改错误导致hibernate hql查询整表只返回第一条数据

    调试发现,查询到的就是一条数据 hql语句执行结果 Hibernate: select ballmodel0_.ball_id as ball_id1_1_, ballmodel0_.color as ...

  4. [svc]mount命令及解决因/etc/fstab错误导致系统不能启动故障

    mount命令-手动挂载设备 格式: mount [options] [-t fstype] [-o option] 设备 挂载点 mount -n -o remount,rw / - Mount t ...

  5. 给虚拟机添加新硬盘并分区,fdisk查看分区,分区,重新读取分区表信息partprobe,格式化,挂载,查看分区挂载信息,自动挂载文件/etc/fstab,/etc/fstab文件错误导致重启崩溃后的修复

    1.虚拟机关机断电 2.添加硬盘 2.开机 3.fdisk -l查看刚才新添加的硬盘 [root@localhost ~]# fdisk -l 磁盘 /dev/sda:21.5 GB, 2147483 ...

  6. jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限

    jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限 由于初次接触jenkins,于是在搭建好jenkins以后,想要对用户进行管理,于是乎开始在系统管理->conf ...

  7. 风险:隐蔽权限修改导致rgw服务中断

    上午正在开会,突然收到rgw服务异常的告警(503 Service Unavailable),立马停下来处理告警,避免影响到用户~   我们的rgw frontend用的是apache,之前也遇到过5 ...

  8. 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错

    遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...

  9. Mysql数据库远程链接、权限修改、导入导出等基本操作

    一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -ur ...

随机推荐

  1. 微服务架构 | *2.3 Spring Cloud 启动及加载配置文件源码分析(以 Nacos 为例)

    目录 前言 1. Spring Cloud 什么时候加载配置文件 2. 准备 Environment 配置环境 2.1 配置 Environment 环境 SpringApplication.prep ...

  2. IoC容器-Bean管理(bean作用域)

    IoC操作Bean管理(bean作用域) 1,在Spring里面,设置创建bean实例是单实例还是多实例 2,在Spring里面,默认情况下,bean是单实例对象 3,如何设置单实例还是多实例 (1) ...

  3. 前端 | Vue nextTick 获取更新后的 DOM

    前两天在开发时遇到一个需求:打开对话框的时候自动聚焦其中的输入框.由于原生的 autofocus 属性不起作用,需要使用组件库提供的 focus 方法手动手动获取焦点.于是有如下代码: <el- ...

  4. Mongodb全备+增备+oplog恢复误删数据

    此时测试表中有7条数据,做个全备. 全备: mongodump --host=192.168.43.43 --port=37017 --oplog --out=/opt/mongo/fullbacku ...

  5. Linux定时执行.sh脚本

    因为测试ffmpeg推流用flv方式的话没有做自动断流,所以要先用.sh脚本来执行关流,降低CPU和其他资源占用 首先编写.sh文件 #! /bin/bash echo "kill ffmp ...

  6. 学习JAVAWEB第一天

    第一天:单元测试(junit)黑盒测试:不需要写代码,给输入值,看程序能否给出期望值白盒测试:需要写代码,关注程序的具体执行流程junit使用步骤:步骤1:定义一个测试类建议类名,被测试类名后面加一个 ...

  7. 在 Dapr 中使用 Cron 绑定的计划任务

    我昨天写了一篇关于在微服务应用程序中采用Dapr的好处的文章<从服务之间的调用来看 我们为什么需要Dapr>[1], 在那篇文章中,我们专注于"服务调用"构建块 [2] ...

  8. react 高阶组件的实现

    由于强大的mixin功能,在react组件开发过程中存在众多不理于组件维护的因素,所以react社区提出了新的方法来替换mixin,那就是高阶组件: 首先在工程中安装高阶组件所需的依赖: npm in ...

  9. Socket和数据库的一些使用---郭雪彬

    最近偶尔有时间,研究了下Socket的使用,虽然不简单,不过还是挺有意思,刚好咱们带头大哥需要我们发檄文,也罢,那就来一篇,废话不多说,直接入正题 struct sockaddr_in server_ ...

  10. MySQL事务以及存储引擎

    MySQL事务以及存储引擎 目录 MySQL事务以及存储引擎 一.事务 1. 事务的概念 2. 事务的ACID特点 (1)原子性 (2)一致性 (3)隔离性 ①事务之间的相互影响 ②MySQL事务支持 ...