云硬盘error、error deleting、deleting状态(数据库基本操作小记)
起因是发现云硬盘显示删光了,但还是创建不了新的云硬盘,在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_idcinder 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状态(数据库基本操作小记)的更多相关文章
- Windows Server 2012 云硬盘如何挂载
那么首先科普一下,云服务器的数据盘(也就是我们买的云硬盘)默认是脱机状态,不自动挂载的.下面来教大家win2012环境如何挂载硬盘,其实和03.08的大同小异就是入口不同了. 点击“工具”中的“计 ...
- 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 ...
- error C2471: 无法更新程序数据库 vc90.pdb
error C2471: 无法更新程序数据库“d:/Work/ Project/debug/vc90.pdb” fatal error C1083: 无法打开程序数据库文件:“d:/Work/ Pro ...
- error C2471: 无法更新程序数据库
这段时间在使用VS做一个项目.在使用过程中,今天遇到了一个问题,也就是题目所说的那样: error C2471: 无法更新程序数据库.之后在网上搜了一下,得到了两种解决方案,两种方案分别如下: (一) ...
- OpenStack实践系列⑨云硬盘服务Cinder
OpenStack实践系列⑨云硬盘服务Cinder八.cinder8.1存储的三大分类 块存储:硬盘,磁盘阵列DAS,SAN存储 文件存储:nfs,GluserFS,Ceph(PB级分布式文件系统), ...
- 复盘价值1000万的腾讯云硬盘固件"BUG"
摘要: 除了吃瓜,还是得吸取教训啊同学们! 这次,我从纯技术角度分析腾讯云与前沿数控的磁盘数据丢失事件,不站队. 硬盘门 这里说的硬盘门不是10年前陈老师的那一次,而聊的是最近"腾讯云&qu ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置
继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...
- 阿里云CentOs服务器 安装与配置mysql数据库
阿里云CentOs服务器 安装与配置mysql数据库 以上为Linux安装mysql数据库 Linux 安装mysql 数据库 一下为mysql 安装教程 Using username "r ...
- Error: Error setting TTL index on collection : sessions
Error: Error setting TTL index on collection : sessions 一.步骤一: 这个问题一般是直接升级 mongodb和connect-mongo的版本为 ...
随机推荐
- uploadify前台上传文件,java后台处理的例子
1.先创建一个简单的web项目upload (如图1-1) 2.插件的准备 (1).去uploadify的官网下载一个uploadify插件,然后解压新建个js文件夹放进去(这个不强求,只要路径对了就 ...
- MySQL性能分析及explain的使用
MySQL性能分析及explain用法的知识 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selectty ...
- 1.线性表-Array
fatal.h #include <stdio.h> #include <stdlib.h> #define Error( Str ) FatalError( Str ) #d ...
- PHPUnit入门
PHPUnit是PHP语言的单元测试框架.工具,xunit单元测试工具系列成员之一,可以单独运行在Linux或windows系统下面,也可以集成到zend studio等IDE工具中. 工具下载:ht ...
- c语言编程
1.常量和变量:变量是一块内存空间,该内存空间有类型约束,该内存中存放的数据可变. 变量三要素:类型,名称,值.常量:常量的数据永远不变,a:自变量,b:符合常量,c:预定义常量. 2.运算符和返回类 ...
- [skill] strncpy里边有两个坑
以前的笔记,今日翻出了复看了一下,转过来. ------------------------------------ 今天发现xxxdump中使用xxx_strncpy 替换 strncpy导致的bu ...
- rabbitmq之back queue草稿
申请队列rabbit_reader在收到消息后处理数据帧时,如果channel id不是0(0代表连接),则认为是channel相关方法. handle_frame(Type, Channel, Pa ...
- 微信小程序时代已经来临
昨天估计微信公众号上产生了第一篇最快的30万+文章,10万+只花了10多分钟.就是冯大辉(著名Oracle专家,知名博主)同学的「微信应用号来了」. 为什么这么一篇如此简单又技术类的文章一下能刷遍朋友 ...
- jQuery 一句代码返回顶部
兼容各大主流浏览器,jQuery返回顶部,一句代码搞定 <a class="top" href="javascript:;" style="po ...
- php usort 按照数组中的某个键值排序
//php usort 按照数组中的某个键值排序 如果第一个参数小于第二个参数 -> 返回小于0的整数如果第一个参数等于于第二个参数 -> 返回等于0的整数如果第一个参数大于于第二个参数 ...