openstack 不能调度到某主机上分析

dashboard显示有足够资源创建虚拟机

创建一个1c2g20g配置的虚拟机,在过滤时把10-197-0-2这个主机过滤掉了,日志如下:

2024-03-25 17:52:14.087 26 DEBUG nova.scheduler.filters.disk_filter [req-8f2f32fb-1efe-4e5d-81fc-618210c7c76d 773d668892074e86a2ef8ba10b833d84 774e02ab524441ba9dcdfc679ea42b4c - default default] (10-197-0-2, 10-197-0-2) ram: 84620MB disk: 2048MB io_ops: 0 instances: 13 does not have 20480 MB usable disk, it only has 2048.0 MB usable disk. host_passes /var/lib/kolla/venv/lib/python2.7/site-packages/nova/scheduler/filters/disk_filter.py:94

说明:该主机10-197-0-2只有2048.0MB的磁盘空间,不能调度到该主机上

继续看日志:

Update host state from compute node: ComputeNode(cpu_allocation_ratio=16.0,cpu_info='{"vendor": "Intel", "model": "Skylake-Server-IBRS", "arch": "x86_64", "features": ["pku", "rtm", "tsc_adjust", "vme", "pge", "xsaveopt", "smep", "fpu", "lm", "tsc", "adx", "fxsr", "tm", "pclmuldq", "xgetbv1", "tsc-deadline", "arat", "de", "aes", "pse", "sse", "f16c", "ds", "mpx", "avx512f", "avx2", "pbe", "cx16", "ds_cpl", "movbe", "intel-pt", "ospke", "vmx", "sep", "avx512dq", "stibp", "xsave", "erms", "hle", "est", "smx", "abm", "sse4.1", "sse4.2", "ssbd", "acpi", "mmx", "osxsave", "clwb", "dca", "popcnt", "invtsc", "tm2", "pcid", "pdcm", "avx512vl", "x2apic", "smap", "clflush", "dtes64", "xtpr", "avx512bw", "msr", "fma", "cx8", "mce", "avx512cd", "mca", "lahf_lm", "rdseed", "apic", "fsgsbase", "rdtscp", "ssse3", "pse36", "mtrr", "avx", "syscall", "invpcid", "cmov", "spec-ctrl", "clflushopt", "pat", "3dnowprefetch", "nx", "pae", "md-clear", "ht", "pdpe1gb", "rdrand", "xsavec", "pni", "sse2", "ss", "bmi1", "bmi2", "xsaves"], "topology": {"cores": 10, "cells": 1, "threads": 2, "sockets": 2}}',created_at=2023-03-10T02:26:28Z,current_workload=0,deleted=False,deleted_at=None,disk_allocation_ratio=1.0,disk_available_least=2,free_disk_gb=84,free_ram_mb=84620,host='10-197-0-2',host_ip=10.197.0.2,hypervisor_hostname='10-197-0-2',hypervisor_type='QEMU',hypervisor_version=2012000,id=12,local_gb=549,local_gb_used=465,mapped=1,memory_mb=128240,memory_mb_used=43620,metrics='[]',numa_topology='{"nova_object.version": "1.2", "nova_object.changes": ["cells"], "nova_object.name": "NUMATopology", "nova_object.data": {"cells": [{"nova_object.version": "1.4", "nova_object.changes": ["network_metadata", "cpu_usage", "memory_usage", "cpuset", "mempages", "pinned_cpus", "siblings", "memory", "pcpuset", "id"], "nova_object.name": "NUMACell", "nova_object.data": {"memory": 128240, "network_metadata": {"nova_object.version": "1.0", "nova_object.changes": ["physnets", "tunneled"], "nova_object.name": "NetworkMetadata", "nova_object.data": {"physnets": [], "tunneled": false}, "nova_object.namespace": "nova"}, "cpu_usage": 0, "memory_usage": 0, "cpuset": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], "pinned_cpus": [], "siblings": [[1, 21], [10, 30], [11, 31], [34, 14], [0, 20], [25, 5], [8, 28], [9, 29], [32, 12], [24, 4], [35, 15], [27, 7], [18, 38], [2, 22], [19, 39], [17, 37], [3, 23], [33, 13], [26, 6], [16, 36]], "mempages": [{"nova_object.version": "1.1", "nova_object.changes": ["total", "used", "reserved", "size_kb"], "nova_object.name": "NUMAPagesTopology", "nova_object.data": {"used": 0, "total": 32829531, "reserved": 0, "size_kb": 4}, "nova_object.namespace": "nova"}, {"nova_object.version": "1.1", "nova_object.changes": ["total", "used", "reserved", "size_kb"], "nova_object.name": "NUMAPagesTopology", "nova_object.data": {"used": 0, "total": 0, "reserved": 0, "size_kb": 2048}, "nova_object.namespace": "nova"}, {"nova_object.version": "1.1", "nova_object.changes": ["total", "used", "reserved", "size_kb"], "nova_object.name": "NUMAPagesTopology", "nova_object.data": {"used": 0, "total": 0, "reserved": 0, "size_kb": 1048576}, "nova_object.namespace": "nova"}], "pcpuset": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], "id": 0}, "nova_object.namespace": "nova"}]}, "nova_object.namespace": "nova"}',pci_device_pools=PciDevicePoolList,ram_allocation_ratio=1.5,running_vms=13,service_id=None,stats={failed_builds='0',io_workload='0',num_instances='13',num_os_type_None='13',num_proj_514e22c33ba94e1e81454ec813999aa6='9',num_proj_774e02ab524441ba9dcdfc679ea42b4c='4',num_task_None='13',num_vm_active='13'},supported_hv_specs=[HVSpec,HVSpec,HVSpec,HVSpec],updated_at=2024-03-25T09:39:23Z,uuid=c6c68e56-7e23-4e79-974c-886de389819a,vcpus=40,vcpus_used=23) _locked_update /var/lib/kolla/venv/lib/python2.7/site-packages/nova/scheduler/host_manager.py:172

可以看到"disk_available_least=2,free_disk_gb=84"是以disk_available_least作为filter判断标准。

看源码看这个值disk_available_least如何获取:

        disk_over_committed = self._get_disk_over_committed_size_total()
        available_least = disk_free_gb * units.Gi - disk_over_committed
        data['disk_available_least'] = available_least / units.Gi
           elif disk_type == 'file' and driver_type == 'qcow2':
                qemu_img_info = disk_api.get_disk_info(path)
                dk_size = qemu_img_info.disk_size
                virt_size = qemu_img_info.virtual_size
                backing_file = libvirt_utils.get_disk_backing_file(path)
                over_commit_size = int(virt_size) - dk_size

disk_available_least =主机实际的空闲磁盘空间 - 所有虚拟机可增量的磁盘空间

分析:'所有虚拟机可增量的磁盘空间'这个值是准确的,和dashboard分配的disk一致,disk_available_least过小,主要是'主机实际的空闲磁盘空间'过下。

再看主机实际的磁盘使用量:

root@10-197-0-2:~# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs   63G     0   63G   0% /dev
tmpfs          tmpfs      63G     0   63G   0% /dev/shm
tmpfs          tmpfs      63G  999M   62G   2% /run
tmpfs          tmpfs      63G     0   63G   0% /sys/fs/cgroup
/dev/sda2      xfs       550G  100G  450G  19% /

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值