51学通信论坛2017新版
标题: nova-scheduler有哪些类型?在哪个目录下? [打印本页]
作者: admin 时间: 2018-3-22 16:24
标题: nova-scheduler有哪些类型?在哪个目录下?
Q:nova-scheduler有哪些类型?在哪个目录下?
A:在ocata版本中,有affinity_filter、all_hosts_filter、compute_filter、json_filter、ram_filter、metrics_filter、trusted_filter、compute_capabilities_filter、availability_zone_filter、core_filter、disk_filter、exact_core_filter、exact_disk_filter、exact_ram_filter、image_props_filter、io_ops_filter、isolated_hosts_filter、numa_topology_filter、num_instances_filter、pci_passthrough_filter、retry_filter、type_filter等。如下图所示:
[attach]5623[/attach]
比较常见的有:
- ALLHostsFilter:不进行任何过滤
- RamFilter:根据内存的可用情况来进行过滤
- ComputeFilter:选取所有处于 Active 的 Host
- TrustedFilter:选取所有可信的 Host
- PciPassthroughFilter:选取提供 PCI SR-IOV 支持的 Host
FilterScheduler调度器的工作流程:
[attach]5624[/attach]
FilterScheduler 首先使用指定的 Filters(过滤器) 过滤符合条件的 Host,例如:内存使用率小于 2% 。然后对得到的 Host 列表计算 Weighting 权重并排序,获得最佳的 Host 。
Filters 过滤器Filtering 就是首先根据各个 Host 当前可用的资源情况来过滤掉那些不能满足 Instance 要求的 Host,然后再使用配置文件指定的各种 Filters 去过滤掉不符合过滤条件的 Host。经过 Filters 过滤后,会得到一个 Host 列表。
这样的话 nova-scheduler 就需要从数据库中取得当前各个 Host 最新的资源使用情况,这些资源数据的收集和存储都由 nova-compute 中定义的数据库同步机制来完成。但是 nova-compute 对数据库的更新是周期性的, nova-scheduler 在选择最佳 Host 时需要最新的资源数据。所以在 nova-scheduler 中使用了 nova.scheduler.host_manager:HostState 来维护一份数据。这份数据仅保存在当前进程的内存中,里面包含了从上次数据库更新到现在 Host 资源的变化情况,也就是最新的 Host 资源数据。nova-scheduler 为了保持自己所维护的资源数据是最新的,每创建一个 Instance ,nova-scheduler 都要将这份资源数据更新,并从 Host 可用资源中去掉虚拟机使用的部分。
注意:nova-scheduler 所维护的数据不会同步到数据库,它只会从数据库同步数据到自身,所以 nova-scheduler 并没有写数据库的功能。
欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) |
Powered by Discuz! X3 |