zoukankan      html  css  js  c++  java
  • 第 5 章 Nova

    instance 从创建到删除的整个生命周期都是由 Nova 管理的。

    通过日志分析加深对 Nova 的理解

     

    OpenStack 日志

    OpenStack 的日志记录了非常详细的细节信息

     

    日志的位置

    实验环境是 devstack,日志都统一放在 /opt/stack/logs 目录下,每个服务有自己的日志文件,从命名上很容易区分。

    比如 nova-* 各个子服务的日志都以 “n-” 开头:

    n-api.log 是 nova-api 的日志

    n-cpu.log 是 nova-compute 的日志。

    Glance 的日志文件都是 “g-” 开头:

    g-api.log 是 glance-api 的日志

    g-reg.log 是 glance-registry 的日志。

    Cinder、Neutron 的日志分别以 “c-” 和 “q-” 开头。

    rocky 版本的日志都是存储在 /var/log/messages 里 , /opt/stack/logs 目录下的日志文件是启动 OpenStack 的。

    对于非 devstack 安装的 OpenStack,日志一般放在 /var/log/xxx/ 目录下。

    比如 Nova 放在 /var/log/nova/ 下,Glance 放在/var/log/glance下……

    各个子服务的日志文件也是单独保存,命名也很规范,容易区分。 比如 nova-api 的日志一般就命名为 /var/log/nova/api.log,其他日志类似。

     

    日志的格式

    OpenStack 的日志格式都是统一的,如下:

    <时间戳><日志等级><代码模块><Request ID><日志内容><源代码位置>

     

    说明:

    时间戳

      日志记录的时间,包括 年 月 日 时 分 秒 毫秒

    日志等级

      有INFO WARNING ERROR DEBUG等

    代码模块

      当前运行的模块

    Request ID

      日志会记录连续不同的操作,为了便于区分和增加可读性,每个操作都被分配唯一的Request ID,便于查找日志内容 这是日志的主体,记录当前正在执行的操作和结果等重要信息

    源代码位置

      日志代码的位置,包括方法名称,源代码文件的目录位置和行号

      这一项不是所有日志都有

     

    举例说明:

    2015-12-10 20:46:49.566 DEBUG nova.virt.libvirt.config [req-5c973fff-e9ba-4317-bfd9-76678cc96584 None None] Generated XML ('<cpu>   <arch>x86_64</arch>   <model>Westmere</model>   <vendor>Intel</vendor>   <topology sockets="2" cores="3" threads="1"/>   <feature name="avx"/>   <feature name="ds"/>   <feature name="ht"/>   <feature name="hypervisor"/>   <feature name="osxsave"/>   <feature name="pclmuldq"/>   <feature name="rdtscp"/>   <feature name="ss"/>   <feature name="vme"/>   <feature name="xsave"/> </cpu> ',) to_xml /opt/stack/nova/nova/virt/libvirt/config.py:82

     

    这条日志可以得知:

    代码模块是 nova.virt.libvirt.config,由此可知应该是 Hypervisor Libvirt 相关的操作

    日志内容是生成 XML

    如果要跟踪源代码,可以到 /opt/stack/nova/nova/virt/libvirt/config.py 的 82 行,方法是 to_xml

    例如下面这条日志:

    2015-12-10 20:46:49.671 ERROR nova.compute.manager [req-5c973fff-e9ba-4317-bfd9-76678cc96584 None None] No compute node record for host devstack-controller

     

    这条日志我们可以得知:

    这是一个 ERROR 日志

    具体内容是 “No compute node record for host devstack-controller”

    该日志没有指明源代码位置

     

    关于日志的几点说明

    日志对最终用户不重要

    日志对 OpenStack 的运维和管理人员非常重要;OpenStack 操作如果出错,GUI 上给出的错误信息是非常笼统和简要的,日志则提供了大量的线索,特别是当 debug 选项打开之后

    日志能够帮助我们深入学习 OpenStack 和排查问题。

     

    要高效的使用日志:

    必须先掌握 OpenStack 的运行机制,然后针对性的查看日志。

    就拿 Instance Launch 操作来说,如果之前不了解 nova-* 各子服务在操作中的协作关系,如果没有理解流程图,面对如此多而且分散的日志文件,也很难下手的。

     

    --------------------------------------------------引用来自-------------------------------------------------

    https://www.cnblogs.com/CloudMan6/p/5456484.html

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587833&idx=1&sn=737ecf034c0b8df2b41a2e8cbb5430f2&chksm=8d308160ba470876c0595af5d7fdb788d0b0c0022d1eb2598e013d97d00f9b361589e1ac37d8&scene=21#wechat_redirect

  • 相关阅读:
    (转)c++ libcurl一步一步问题解决
    (转载)C++ 用libcurl库进行http通讯网络编程
    (官网)虚幻3--UnrealScript 游戏流程
    (官网)虚幻3--虚幻引擎3命令行参数
    (官网)虚幻3--Scaleform 技术指南
    Android笔记之PenddingIntent使用
    java笔记之字符串截取操作
    java笔记之InputStream转换成String
    java笔记之同一方法的多种传参形式
    Android笔记之调用Resource资源
  • 原文地址:https://www.cnblogs.com/gsophy/p/11005014.html
Copyright © 2011-2022 走看看