WIP一些openstack bug记录(by quqi99)

作者:张华  发表于:2015-05-07
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

http://blog.csdn.net/quqi99 )

一,为什么虚机ping不通虚拟所在的tap设

一种可能是虚机的MAC地址和其他的重复了,可使用arp命令查看。
第二种可能就是ebtables, 可使用ebtables -t nat -L命令检查。
# ebtables -t nat -L
Bridge table: nat
Bridge chain: PREROUTING, entries: 1, policy: ACCEPT
-i tapc8f2fe4d-7f -j libvirt-I-tapc8f2fe4d-7f
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
Bridge chain: POSTROUTING, entries: 1, policy: ACCEPT
-o tapc8f2fe4d-7f -j libvirt-O-tapc8f2fe4d-7f
Bridge chain: libvirt-I-tapc8f2fe4d-7f, entries: 1, policy: ACCEPT
-j DROP
Bridge chain: libvirt-O-tapc8f2fe4d-7f, entries: 1, policy: ACCEPT
-j DROP
显然上述的ebtables是由下列的libvirt配置($nova/virt/libvirt/firewall.py)所加(位于/etc/libvirt/nwfilter/目录, 可用virsh nwfilter-list命令查看):
<filterref filter='nova-instance-instance-00000010-fa163ea2e6b8'/>


这是因为没有设置使用neutron security group, 也没有禁止nova security group(在nova.conf中设置firewall_driver = nova.virt.firewall.NoopFirewallDriver), 

这样nova用了默认的iptable firewall driver,而这个驱动刚好又很弱,它使用了libvirt nwfilter做了上面的事情,还因为弱没法做到想用nova security group的功能的同时又禁用掉nwfilter, 见[1], [2].


[1], https://answers.launchpad.net/nova/+question/156184
[2], https://answers.launchpad.net/nova/+question/234365



二,在Icehouse版本上nova evaluate失败后将虚机硬件给删除了
1, 首先是这个bug, nova evaluate时应该设置recreate=true让它不要删除老的虚机,这个patch进入了Icehouse后一些的版本。
   https://git.openstack.org/cgit/openstack/nova/commit/?id=3de3f1066fa47312b8c3075abf790631034d67a3
2, 使用nova evaluate迁移到另外一个host时没有更新binding:host_id从而导致虚机的port无法建立抛 VirtualInterfaceCreateException然后把虚机给删除了。使用vif_plugging_is_fatal = false && vif_plugging_timeout = 10 作为workaround
   https://answers.launchpad.net/ubuntu/+source/nova/+question/257358
3, 对于上面在nova evaluate下的port binding问题仍然无法解决(虽然有patch, https://review.openstack.org/#/c/169827/ , 但不容易backport到icehouose),但可以使用nova migration作为workaround,因为nova migration会最终调用migrate_instance_finish去更新port binding (port_req_body = {'port': {'binding:host_id': migration['dest_compute']}}).
$ nova evacuate --on-shared-storage <instance> <target_host>
$ nova migrate <instance>
$ nova confirm-resize <instance>

更多相关文章
  • 容器是数据中心创新领域最热门的潮流,尽管不是参与讨论的每个人都能准确地阐明具体原因.如果你想知道容器是不是适合自己的数据中心战略,或者如果你知道容器适合数据中心战略,但需要有法子向同行解释容器,那么这篇指南正适合你. 从最基本的层面上来讲,容器让你可以将更多的计算工作负载塞入到单单一台服务器上,并且 ...
  • 首先分享一个最佳实践: 大家开发复杂一些的Android应用的时候常常会写一个BaseActivity或者BaseFragment,里面写上一些基本而公用的方法,比如监听网络状况.弹出对话框.设置actionbar等,然后实现业务的Activity或者Fragment继承自这个基类.这样子可以大幅度 ...
  • 有时候我们会突然发现自己的项目正在走向注定的死亡.下面这些迹象可以让你提早发现项目失败的趋势. 在数月内三次更改项目名称. 项目经理决定,与其写一个国际化的单一版本还不如针对某个国家写一个完全独立的版本. 需求定义发布于开发工作开展 4 个月后. 新聘请的R&D主管纸上谈兵地表示,该项目将比 ...
  • http://edu.51cto.com/course/course_id-379-page-1.html http://edu.51cto.com/course/course_id-379-page-2.html 课时目录 共13课时 1第一章 Linux设备驱动模型[可试看]60分钟 1.1 L ...
  • 点击查看:MWC2014专题报道 易网科技讯 2月24日消息,诺基亚CEO埃洛普在MWC上发布了两款功能机Nokia 220及 Asha 230,Nokia 220支持2G网络,待机长达一个月,售价仅为243元,埃洛普称其为"史上最便宜的上网手机".而搭载新版Asha平台的触屏机 ...
  • 1.队列的链表表示 #include "LinkList.h"   template<class T> class LinkQueue { private: LinkList<T> m_pList; public: void EnQue(T val){m_ ...
一周排行
  • 看了网上的,有几种方法: 1 在你的表单页里HEAD区加入这段代码: <META HTTP-EQUIV="pragma" CONTENT="no-cache"> & ...
  • 用c#做了一个webservice,其中一个接口是public bool AddReturns(List<string> SQLStringList). 然后在另一个c#做的winform程序中调用,添加 ...
  • #include<iostream> #include<vector> using namespace std; #define N 32 char dun[N][N][N]; int vis ...
  • 主题论坛之移动游戏现场 易网科技讯 5月28日消息,2010全球移动互联网大会今日在北京举行.易网科技作为官方指定战略合作门户进行全程图文直播. 在主题论坛之移动游戏中,EA Mobile中国区总经理李天健.当乐网C ...
  • 腾讯科技讯 3月18日消息,在今日举行的腾讯网络安全技术峰会上,游戏安全和反外挂方面的专家牛博威表示,反外挂系统并非越成熟越好,成熟的反外挂系统会让一般公司很难承受,大大增加了运营成本.同时,越是成熟出名的反外挂系统 ...
  • #include <iostream> using namespace std; int add(int x, int y) { return x+y; } int addmove(int a, int ...
  • Java 有很多视频教程,而且很多视频网站上都有.问题是这些视频原来都是大分辨率的,到了视频网站上都看不清了.而且视频网站会对时间长久的视频进行压缩.我之前在 Youtube 上传的视频,原来是按照播放窗口的大小录制 ...
  • 易网科技报道 3月27日消息,百度公司今日宣布百度App用户总量过亿,一年内增长了72倍,未来将进一步加强对云与端的深度整合.
  • 老同事离职,接手同事的项目,发现项目运行一段时间特别慢.自己在做性能优化的时候,发现许多JDBC链接,都没有关闭.对此,自己特地的对连接处做了研究,分享给大家,希望和大家共同学习.自己刚开始写博客,谢谢大家的支持. ...