问题一:Timeout wating on RPC response, topic:"network"

描述:

启动实例一直等待,然后变为error。查看日志,是 timeout waiting on rpc response, topic "network", method: "validate_networks", info:"<Unknown>":

排错思路:

  1. 查看rabbitmq是否连接,rabbit日志是否报错。这里我使用了web控制台登录进行查看,没有问题。
  2. 查看firewall设置是否正确, 这里满足文档中的设定,因此可以排除。
  3. 查看源码,compute api类调用了network rpc api,然后没有收到响应。这里的主题是network,在rabbitmq中没有发现topic是network的exchange,怀疑是因为network api设定为nova network,而不是neutron。
  4. nova命令行和neutron命令行都可以成功调用。因此,可能是Nova和neutron整合的部分出了问题,也就是nova.conf里面的配置。后来查看neutron的api设置对了,就是nova.network.neutronv2.API。
  5. 不得已将debug打开,发现根本没有正确读取neutron的配置。

原来是nova.conf中[database]导致的,设置了这个之后,下面的应该都作为database的配置进行读取,从而忽略了neutron的配置。

解决办法:调换位置,将neutron的配置放到[default]下面,然后将[database]放到最后。

问题二:无法使用ssh密钥登录

描述:在使用ubuntu cloud image启动的时候,选择了之前创建的一个密钥,但是启动之后可以ping通却无法ssh登录。

原因:密钥根本没有注入。

分析:

  1. 密钥注入采用启动时获取metadata的方式,即访问169.254.169.254的地址
  2. 首先虚拟机内部访问该地址,应该有个路由,将169.254.169.254转向网络节点。网络节点收到后,通过iptables的规则发送给metadata-agent,然后metadata-agent请求nova-api-metadata服务,nova返回响应。

排错思路:

  1. 确保网络节点metadata-agent服务启动,确保控制节点8775端口开启。
  2. 查看nova.conf文件,主要看几个东西:
    1. enable_apis里面有metadata这一项,否则,nova-api启动的时候就不会把nova-api-metadata随着启动
    2. service_neutron_metadata_proxy设置为true
    3. neutron_metadata_proxy_shared_secret设置正确,和neutron/metadata_agent.ini 里面配置的相同
  3. 网络节点和计算节点都要配置ip转发:
    net.ipv4.ip_forward=1
  4. 修改完配置后记得重启相应的服务

这时,发现配置没有问题之后,测试还是有错。

考虑到这里是用了flat模式,这样的话,就无法对接metadata-agent了。

因此在搜索neutron flat metadata时,http://developer.rackspace.com/blog/neutron-networking-simple-flat-network.html 里面说:

By specifying the --no_gateway flag and defining a default route manually, we’re able to provide instances with a default route as well as an automatic metadata route to the namespace IP.

因此,删除所有的实例,然后重新建立subnet且不指定gateway,以便于使用metadata:

neutron subnet-create --name sharenet1 --no-gateway --host-route destination=0.0.0.0/0,nexthop=10.109.253.1 --dns-nameserver 10.3.9.4 --allocation-pool start=10.109.253.108,end=10.109.253.150 flat-provider-network 10.109.253.0/24

有路由了:

这回变为500,查看metadata-agent的log,发现:

于是将auth_region从RegionOne改为regionOne(略坑).

成功登录。

参考资料:

什么是openstack的metadata

metadata在OpenStack中的使用(一)

SSH登录虚拟机出现"Read from socket failed: Connection reset by peer"问题的解决办法

Openstack Havana的两个排错过程的更多相关文章

  1. php大力力:技术排错过程中,关键点总结和心情历程(2015-10-19)

    9:40 2015/10/19技术排错过程中,关键点总结和心情历程 有一个按照标题进行内容分类的函数似乎不起作用,这叫人沮丧. 在页面显示图片地址时候,在源系统和目标系统中,包含图片地址的页面代码格式 ...

  2. [转]Openstack Havana Dashboard测试和使用

    转贴一篇陈沙克老师的文章:http://www.chenshake.com/openstack-havana-dashboard-to-test-and-use/ Openstack Havana D ...

  3. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】——序

    OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE](一)——控制节点的安装 OpenStack Havana 部署在Ubuntu 12.04 Serve ...

  4. openstack学习笔记一 虚拟机启动过程代码跟踪

    openstack学习笔记一 虚拟机启动过程代码跟踪 本文主要通过对虚拟机创建过程的代码跟踪.观察虚拟机启动任务状态的变化,来透彻理解openstack各组件之间的作用过程. 当从horizon界面发 ...

  5. OpenStack 虚机网卡的创建过程

    原文链接:https://www.cnblogs.com/potato-chip/p/9127083.html OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机. ...

  6. RDO部署多节点OpenStack Havana(OVS+GRE)

    RDO是由红帽RedHat公司推出的部署OpenStack集群的一个基于Puppet的部署工具,可以很快地通过RDO部署一套复杂的OpenStack环境,当前的RDO默认情况下,使用Neutron进行 ...

  7. OpenStack虚机网卡的创建过程

    OpenStack虚机网卡的创建过程 OpenStack最基本和常用的操作就是启动虚机.虚机启动的过程中涉及很多内容,其中非常重要的一个环节就是创建并绑定虚机的虚拟网卡.虚机的创建和管理是Nova的任 ...

  8. osi七层模型和两主机传输过程:

    osi七层模型和两主机传输过程: http://www.zhihu.com/question/24002080/answer/31817536  注:笔记部分可能参考其他作者内容的一个记录,仅为加深自 ...

  9. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(三)——计算节点的安装

    序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 计算节点: 1.准备结点 安装好ubuntu 12.04 Server 64bits后,进入ro ...

随机推荐

  1. 请教前辈:关于JS的一个奇怪的错误,不知是解析顺序造成的,还是什么原因。。

    各位前辈好,如题,不知道是HTML解析顺序造成的,还是JS预编译的结果(见注释). 烦请各位前辈进行指导. <!DOCTYPE html> <html> <head> ...

  2. std::string,std::vector,std::accumulate注意事项

    在用string做字符串拼接时,会发现随着string的增大越来越慢,原因主要是string(和vector)是基于现行内存的数据结构,在海量数据时,经常会申请新的一块内存,把原有的数据拷贝过去然后再 ...

  3. excel 在web导入到数据库的操作方法

    这个操作的大致步骤是把本地文件存入到服务器端,然后再读取服务端的文件并且使用NPOI这个第三方的插件去读取文件导入到数据库批量插入需要注意的是,前端需要使用form包裹type=file的文件标签,并 ...

  4. Spring Framework5.0 学习(4)—— Bean的命名id和name区别

    Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...

  5. HBase的rowkey排序和scan输出顺序

    本文目的:搞清楚HBase里面行与行之间的排序排序规则,如何正序和反序输出扫描结果. 明确: HBase里面同一列的元素按照rowkey进行排序,排序规则是rowkey的ASCII码排序,小的在前大的 ...

  6. MySQL语法二:数据操纵语句

    数据操纵语句DML(SELECT,DELETE,UPDATE,INSERT) 一. 数据操纵语句是对数据表中的内容进行操作.比如对某个表中的某条记录或者多条记录进行增删改查操作. 一).查询 SELE ...

  7. 【[USACO08FEB]酒店Hotel】

    比较基础的线段树了 我们要维护最大连续子串,这个可以说是一个比较套路的操作了 我们在[SHOI2009]会场预约这道题中已经比较深刻的认识到了这个套路了 对于这道题,我们显然要知道一个区间内最大的全为 ...

  8. 机器学习之感知器算法原理和Python实现

    (1)感知器模型 感知器模型包含多个输入节点:X0-Xn,权重矩阵W0-Wn(其中X0和W0代表的偏置因子,一般X0=1,图中X0处应该是Xn)一个输出节点O,激活函数是sign函数. (2)感知器学 ...

  9. fc全连接层的作用、卷积层的作用、pooling层、激活函数的作用

    fc:1.起到分类器的作用.对前层的特征进行一个加权和,(卷积层是将数据输入映射到隐层特征空间)将特征空间通过线性变换映射到样本标记空间(也就是label) 2.1*1卷积等价于fc:跟原featur ...

  10. MVC学习九:MVC 特性本质

    一.特性的本质就是:对属性.方法.类加特性,本质就是new 一个特性类对象赋值给属性.方法.类. 可以通过反射的方式取得特性的值,代码如下: ①自定义特性 public class MyAttribu ...