分析日志是否有造成虚拟机创建失败的原因

环境变量

  1. 登陆首节点之后需要导入环境变量,执行source set_env,选择1,默认密码:FusionSphere123。
  2. 检查回显如图1,确认这里的域名是否和cps界面上配置的域名一致。

    图1 回显

    是,执行3

    否,执行OS_AUTH_URL=CPS界面配置的域名

  3. 执行 nova list,不报错表示环境变量导入ok。
  4. 然后登陆到其它控制节点上执行1~3

查看nova-api日志

  1. 执行zgrep 虚拟机名 /var/log/fusionsphere/component/nova-api/*,搜索日志如图2所示,并记录req-id。

    图2 搜索记录

  2. 在找到日志的节点上执行zgrep req-id /var/log/fusionsphere/component/nova-api/*,req-id为1找到req-id,若有报错结合案例分析报错原因即可。

查看nova-conductor日志

  1. 在三个控制节点上都执行zgrep req-id /var/log/fusionsphere/component/nova-conductor/*,req-id为1找到req-id。

    • 选主机失败,日志中会打印“no valid host”字样。
    • 若仅有一个节点找到“no valid host”字样,执行1
    • 选到了主机,日志中会打印“Choosing host”字样,执行1
    • 如果这里有打印ERROR信息,一般为相应的nova-compute节点上的的报错日志,可以通过这个日志分析创建失败的原因。

查看nova-scheduler日志

  1. 在三个控制节点上执行:zgrep req-id /var/log/fusionsphere/component/nova-scheduler/*,直到找到为止,req-id为1找到req-id。
  2. 分析日志,原因如下。

    • localhost nova-scheduler DEBUG [GreenThread-3 get_filtered_objects Starting with 3 host(s) :开始选择所有可用的主机数
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter RetryFilter returned 3 host(s),如果这里过滤掉了主机,说明是重调度,就是已经选到了主机,但是在这个主机上创建失败了,进行了重调度;需要登录这个主机看nova-compute日志,找创建失败的原因
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter AvailabilityZoneFilter returned 3 host(s):使用传入的az过滤主机,返回请求的az内的主机
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter RamFilter returned 3 host(s):判断主机普通内存是否够用
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter HuaweiDiskFilter returned 3 host(s):判断主机磁盘是否够用
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter ComputeFilter returned 3 host(s):判断主机的nova-compute服务是否正常
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter ImagePropertiesFilter returned 3 host(s):三个主机都符合镜像的属性
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter CoreFilter returned 3 host(s):三个主机的vcpu都充足
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter AggregateInstanceExtraSpecsFilter returned 3 host(s):三个主机满足指定的主机组,主机组一般通过flavor的标签来指定
    • localhost nova-scheduler DEBUG [pid:15574 [physical_network_filter.py:40 host_passes instance physical network not set, return ok
    • localhost nova-scheduler DEBUG [pid:15574 [physical_network_filter.py:40 host_passes instance physical network not set, return ok
    • localhost nova-scheduler DEBUG [pid:15574 [physical_network_filter.py:40 host_passes instance physical network not set, return ok
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter PhysicalNetworkFilter returned 3 host(s):三个主机的物理网络平面都满足,这里主要判断请求的网络的物理网络平面是否在这个主机上配置了
    • localhost nova-scheduler DEBUG [pid:15574 [cpu_bind_filter.py:106 host_passes Cpubindfilter passed, enable_bind(False), any_mode(True), numa_opts(0)
    • localhost nova-scheduler DEBUG [pid:15574 [cpu_bind_filter.py:106 host_passes Cpubindfilter passed, enable_bind(False), any_mode(True), numa_opts(0)
    • localhost nova-scheduler DEBUG [pid:15574 [cpu_bind_filter.py:106 host_passes Cpubindfilter passed, enable_bind(False), any_mode(True), numa_opts(0)
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter CpuBindFilter returned 3 host(s):这里检查了numa资源是否足够,大业内存是否足够,还有any与非any虚拟机不能共板,一般用与numa和大业虚拟机
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter ServerGroupAntiAffinityFilter returned 3 host(s):三个主机满足反亲和性组
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter ServerGroupAffinityFilter returned 3 host(s):三个主机满足亲和性组
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter PciPassthroughFilter returned 3 host(s):三个主机的PCI设备满足,一般用于硬直通虚拟机
    • localhost nova-scheduler INFO [pid:15574 [hw_bandwidth_filter.py:48 host_passes pci_requests is empty in filter_properties, BandwidthFilter passed
    • localhost nova-scheduler INFO [pid:15574 [hw_bandwidth_filter.py:48 host_passes pci_requests is empty in filter_properties, BandwidthFilter passed
    • localhost nova-scheduler INFO [pid:15574 [hw_bandwidth_filter.py:48 host_passes pci_requests is empty in filter_properties, BandwidthFilter passed
    • localhost nova-scheduler DEBUG [pid:15574 [__init__.py:78 get_filtered_objects Filter BandwidthFilter returned 3 host(s):三个主机的网络带宽满足

查看compute日志

  1. 登陆选到的主机。

    • 如果kvm场景,执行 cps host-list|grep 主机名,就能查到主机的ip,然后登陆主机
    • 如果是对接FC场景,执行 cps template-instance-list --service nova fc-nova-compute00X,找到active的组件所在的主机,然后登陆到这个主机(参考kvm),如图3所示。
      图3 操作示例
    • 对接vmware场景也需要找到active的vmware-compute00X对应的主机,与对接FC类似。

  2. 查看日志,根据对接虚拟化类型的不同compute组件的名称不一样,日志目录也不同。

    • Kvm场景:/var/log/fusionsphere/component/nova-compute/
    • 对接FC场景:/var/log/fusionsphere/component/fc-nova-compute00X/
    • 对接vmware场景:/var/log/fusionsphere/component/vmware-nova-compute00X/

  3. 进入对应日志目录执行zgrep req-id *|grep ERROR,req-id为1的req-id。找到报错日志后根据报错进行处理。

返回主界面 上一步下一步


华为专有和保密信息
版权所有 © 华为技术有限公司