起因是发现云硬盘显示删光了,但还是创建不了新的云硬盘,在api节点上用cinder list可以看到已经没有硬盘了,但是创建硬盘时,还是会提示配额满了,这是因为数据库里的记录没有更新,对数据库的操作记录如下,以便以后参考:

登录50数据库节点(需要登录主节点,可以在mysql数据库中输入show master status;或者show slave status;来查看,比如show master status;这个命令,如果返回了一个表,那么证明就是主了。目前L版中50、51、52都是主。)

手动修改数据库,标识其为已删除状态(通常不直接删除记录),需要修改cinder数据库的volumes表,修改deleted字段为1(整型的1,不是字符串),status字段修改为"deleted",deleted_at可修改为"now()",也可以不修改。

update volumes set deleted=1 where id = "xxx";

通过show databases;列出所有数据库;

通过use cinder;进入cinder的数据库;

通过show tables;列出所有表格;

通过select * from quota_usages;从该quota_usages表格中列出所有内容;

update quota_usages set in_use=0 where project_id="xxx" and resource="xxx";

注意更新信息的时候先更新子项的数据再更新父项的数据,如:

先volumes_ssd\volumes_sata,再volumes

如需更多细节了解,可参见(以下内容引用他人文章内容):

很多原因可能导致volume 进入error或者error_deleting状态,此时无法再执行delete操作。这种情况大体分为两类:

1.当执行cinder delete时,cinder连接不到ceph mon,导致删除失败。此时我们使用rbd命令能够找到cinder volume对应的image:

rbd ls -p openstack-00 | grep volume_id

如果存在记录,则说明可能属于此种情况,此时处理流程比较简单,我们只要reset-state然后再执行即可:

cinder reset-state volume_id
cinder delete volume_id

如果还是删除失败,检查下是不是cinder-volume跑了多个实例,比如41节点跑了,42节点也有,则会删除失败,这个问题我们也遇到过,只要把多余cinder-volume实例中止即可,然后重复以上步骤。

2.当执行cinder delete时,cinder连接不到数据库,此时由于没有事务同步,导致ceph已经删除对应的image,但没有同步状态到数据库中,此时volume可能处于available或者deleting状态,如果再次执行delete操作,显然cinder已经找不到对应的image,所以会抛出错误异常,此时cinder volume会把它设为error_deleting状态,并且无法通过reset-state删除。通过以下脚本,验证是否属于该类故障:

rbd ls -p openstack-00 | grep volume_id

如果匹配不到该volume id,则判定属于该类故障。

此类故障无法通过cinder 命令行工具处理,只能手动修改数据库,标识其为已删除状态(通常不直接删除记录),需要修改cinder数据库的volumes表,修改deleted字段为1(整型的1,不是字符串),status字段修改为"deleted",deleted_at可修改为"now()",也可以不修改。

update volumes set deleted=1 where id = "xxx";

云硬盘error、error deleting、deleting状态(数据库基本操作小记)的更多相关文章

  1. Windows Server 2012 云硬盘如何挂载

    那么首先科普一下,云服务器的数据盘(也就是我们买的云硬盘)默认是脱机状态,不自动挂载的.下面来教大家win2012环境如何挂载硬盘,其实和03.08的大同小异就是入口不同了.   点击“工具”中的“计 ...

  2. Web service request SetParameters to Report Server http://host/reportserver failed. Error: 请求因 HTTP 状态 401 失败: Unauthorized

    迁移CRM服务器完成后在访问CRM的内部报表时报错,在查看应用服务器的日志时发现报"Web service request SetParameters to Report Server ht ...

  3. error C2471: 无法更新程序数据库 vc90.pdb

    error C2471: 无法更新程序数据库“d:/Work/ Project/debug/vc90.pdb” fatal error C1083: 无法打开程序数据库文件:“d:/Work/ Pro ...

  4. error C2471: 无法更新程序数据库

    这段时间在使用VS做一个项目.在使用过程中,今天遇到了一个问题,也就是题目所说的那样: error C2471: 无法更新程序数据库.之后在网上搜了一下,得到了两种解决方案,两种方案分别如下: (一) ...

  5. OpenStack实践系列⑨云硬盘服务Cinder

    OpenStack实践系列⑨云硬盘服务Cinder八.cinder8.1存储的三大分类 块存储:硬盘,磁盘阵列DAS,SAN存储 文件存储:nfs,GluserFS,Ceph(PB级分布式文件系统), ...

  6. 复盘价值1000万的腾讯云硬盘固件"BUG"

    摘要: 除了吃瓜,还是得吸取教训啊同学们! 这次,我从纯技术角度分析腾讯云与前沿数控的磁盘数据丢失事件,不站队. 硬盘门 这里说的硬盘门不是10年前陈老师的那一次,而聊的是最近"腾讯云&qu ...

  7. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  8. 阿里云CentOs服务器 安装与配置mysql数据库

    阿里云CentOs服务器 安装与配置mysql数据库 以上为Linux安装mysql数据库 Linux 安装mysql 数据库 一下为mysql 安装教程 Using username "r ...

  9. Error: Error setting TTL index on collection : sessions

    Error: Error setting TTL index on collection : sessions 一.步骤一: 这个问题一般是直接升级 mongodb和connect-mongo的版本为 ...

随机推荐

  1. uploadify前台上传文件,java后台处理的例子

    1.先创建一个简单的web项目upload (如图1-1) 2.插件的准备 (1).去uploadify的官网下载一个uploadify插件,然后解压新建个js文件夹放进去(这个不强求,只要路径对了就 ...

  2. MySQL性能分析及explain的使用

    MySQL性能分析及explain用法的知识 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id  selectty ...

  3. 1.线性表-Array

    fatal.h #include <stdio.h> #include <stdlib.h> #define Error( Str ) FatalError( Str ) #d ...

  4. PHPUnit入门

    PHPUnit是PHP语言的单元测试框架.工具,xunit单元测试工具系列成员之一,可以单独运行在Linux或windows系统下面,也可以集成到zend studio等IDE工具中. 工具下载:ht ...

  5. c语言编程

    1.常量和变量:变量是一块内存空间,该内存空间有类型约束,该内存中存放的数据可变. 变量三要素:类型,名称,值.常量:常量的数据永远不变,a:自变量,b:符合常量,c:预定义常量. 2.运算符和返回类 ...

  6. [skill] strncpy里边有两个坑

    以前的笔记,今日翻出了复看了一下,转过来. ------------------------------------ 今天发现xxxdump中使用xxx_strncpy 替换 strncpy导致的bu ...

  7. rabbitmq之back queue草稿

    申请队列rabbit_reader在收到消息后处理数据帧时,如果channel id不是0(0代表连接),则认为是channel相关方法. handle_frame(Type, Channel, Pa ...

  8. 微信小程序时代已经来临

    昨天估计微信公众号上产生了第一篇最快的30万+文章,10万+只花了10多分钟.就是冯大辉(著名Oracle专家,知名博主)同学的「微信应用号来了」. 为什么这么一篇如此简单又技术类的文章一下能刷遍朋友 ...

  9. jQuery 一句代码返回顶部

    兼容各大主流浏览器,jQuery返回顶部,一句代码搞定 <a class="top" href="javascript:;" style="po ...

  10. php usort 按照数组中的某个键值排序

    //php usort 按照数组中的某个键值排序 如果第一个参数小于第二个参数 -> 返回小于0的整数如果第一个参数等于于第二个参数 -> 返回等于0的整数如果第一个参数大于于第二个参数 ...