由于某种原因我将OpenStack的一个计算节点移除了,但移除前并没有删除在其上运行的实例,后来想通过dash删除这些实例,于是N天过去了,我的dash还显示如下内容:

很碍眼是不是?于是我打算手动从数据库中删除它们!

1.数据库中与删除实例相关的表

数据库中与删除实例相关的表如下:

fixed_ips记录给实例分配的fixed ip,floating_ips显然与实例分配的floating ip有关,但我在实验中一直没有使用过floating故不作评断,instance_actions我这里是空的不管,instance_faults记录与实例有关的错误不管,instance_info_caches与实例的网络设置缓存有关,instance_metadata实例的元数据有关不管,instance_type_extra_specs与instance_types与flavor设置有关不管,instances显然是实例的主表,volumes与实例的volumes有关。我的实验中没有floating ip也没有volumes故我只关注fixed_ips,instance_info_caches,instances三个表。

2.OpenStack的删除策略

通过观察发现Nova中的表中基本都有如下字段:

OpenStack在删除对象时并不删除数据库中的记录,只是修改deleted_at和deleted字段。

3.操作数据库

删除实例的操作主要集中在instances,instance_info_caches,fixed_ips三个表。

3.1操作instances表
下图是我的数据库中曾经删除了的test3(右边)与现在无法删除的test3(左边)的对比:

因此我的操作如下:

[sql]view plaincopy

  1. update instances set
  2. deleted_at = updated_at,   
  3. deleted = 1,   
  4. power_state = 0,   
  5. vm_state = "deleted",   
  6. terminated_at = updated_at,   
  7. root_device_name = NULL,   
  8. task_state = NULL
  9. where id = 9;  

3.2操作instance_info_caches和fixed_ips

这两个操作简单,在前一步操作后已经在dash中看不到被删除的实例了,这两步操作主要是释放被删除实例所占用的网络资源,直接上代码:

[sql]view plaincopy

  1. update instance_info_caches set
  2. deleted_at = updated_at,   
  3. deleted = 1   
  4. where id = 9;  
  5.  
  6. update fixed_ips set
  7. instance_id = NULL,   
  8. allocated = 0,   
  9. virtual_interface_id = NULL
  10. where id = 7;  

OK,如法炮制又删除了另一个实例,总算在dash中不用看那两个讨厌的实例了。

OpenStack手动从数据库中删除实例 - ugyn109的专栏 - 博客频道 - CSDN.NET的更多相关文章

  1. java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET

    java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了!      社区福利快来领取免费参加MDCC大会机会哦    Tag功能介绍—我们 ...

  2. 知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET

    知道创宇爬虫题--代码持续更新中 - littlethunder的专栏 - 博客频道 - CSDN.NET undefined 公司介绍 - 数人科技 undefined

  3. 采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET

    采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET undefined

  4. 在MyEclipse8.6中设置jQuery自动提示 - 肖飞figo的云计算专栏 - 博客频道 - CSDN.NET

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  5. Excel 2003 中如何用VBA 代码访问单元格里的值及操作单元格 - 唐诗宋词的专栏 - 博客频道 - CSDN.NET

    在Excel 中编写VBA 代码,最常做的事可能就是操作表单中单元格里的数据. 我这里总结一下如何从VBA 代码中操作单元格的数据. 在VBA 代码中操作单元格需要用到Range 对象,Range 是 ...

  6. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  7. 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较

    数据库删除语句的分别介绍: Delete:用于删除表中的行(注:可以删除某一行:也可以在不删除表的情况下(即意味着表的结构.属性.索引完整)删除所有行) 语法:删除某一行:Delete From 表名 ...

  8. MySQL_(Java)使用JDBC向数据库中删除(delete)数据

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC向数据库中插入(insert)数据 传送门 MySQL_(Java)使用JDBC向数据库中删除(d ...

  9. myssql数据库表名转驼峰 - PLAY - ITeye博客

    原文:myssql数据库表名转驼峰 - PLAY - ITeye博客

随机推荐

  1. Heap:Moo University - Financial Aid(POJ 2010)

       牛的学校 题目大意:这只Bessie真是太顽皮了,她又搞了个学校,准备招生,准备通过一个考试筛选考生,但是不能招到每个学生,每个学生也不能一定能上学,要资助,问你在一定资金内,怎么收学生,使收到 ...

  2. javascript 中string 型数据转换成int类型

    var str1 = "1234";var str2 = "1234";number = parseInt(str1); number就是int型 str1+s ...

  3. js简单上传进度条

    效果如下:

  4. 【python】argparse模块

    来源:http://www.2cto.com/kf/201412/363654.html argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.ar ...

  5. redis 认证密码

    [root@cache01 ~]# grep "requirepass" /app/server/redis/conf/6379.conf # If the master is p ...

  6. 必应缤纷桌面的必应助手-软件分析和用户市场需求之-----二.体验部分 Ryan Mao (毛宇11061171) (完整版本请参考团队博客)

    <必应缤纷桌面的必应助手> 2.体验部分 Ryan Mao (毛宇11061171) (完整分析报告请参考团队博客http://www.cnblogs.com/Z-XML/) 我花了2天的 ...

  7. onSaveInstanceState和onRestoreInstanceState

    本文摘自: http://h529820165.iteye.com/blog/1399023 Android calls onSaveInstanceState() before the activi ...

  8. SSH 框架学习之初识Java中的Action、Dao、Service、Model-收藏

    SSH 框架学习之初识Java中的Action.Dao.Service.Model-----------------------------学到就要查,自己动手动脑!!!   基础知识目前不够,有感性 ...

  9. float数据在内存中是怎么存储的 AND IEEE754测试程序

    float类型数字在计算机中用4个字节存储.遵循IEEE-754格式标准: 一个浮点数有2部分组成:底数m和指数e 底数部分 使用二进制数来表示此浮点数的实际值指数部分 占用8bit的二进制数,可表示 ...

  10. js:语言精髓笔记7----原型继承

    面向对象有三个基本特性:封装,继承,多态:如果都满足的话称为面向对象语言:而部分满足则称为基于对象语言: 数据类型实现模型描述: JavaScript对象模型: 构造过程:函数->构造器 构造器 ...