跳转到: 导航, 搜索

Watcher

使命

Watcher 为基于 OpenStack 的多租户云提供灵活且可扩展的资源优化服务。 Watcher 提供了一个完整的优化循环——包括从指标接收器、优化处理器到行动计划应用器的一切。 这提供了一个强大的框架,以实现广泛的云优化目标,包括降低数据中心运营成本、通过智能虚拟机迁移提高系统性能、提高能源效率等等!

Watcher 不仅提供了一些开箱即用的优化例程,可以立即增加价值,而且还支持可插拔的架构,可以通过该架构开发和插入自定义优化算法、数据指标和数据分析器到 Watcher 框架中。 此外,Watcher 还可以启用两种不同的执行模式——建议模式(手动)或活动模式(自动),从而为云管理员提供云所需的运行时灵活性。

最重要的是,配备了 Watcher 的 OpenStack 云的管理员将通过更有效地利用其基础设施和减少“手动”(即手动)管理员参与优化来降低其总体拥有成本 (TCO)。

请随时查看 这套简短的幻灯片视频演示,它们总结了 Watcher!

OpenStack 生态系统

了解 Watcher 相对于 OpenStack 生态系统中的其他项目所处的位置非常重要。 如前所述,Watcher 为云提供资源优化——补充了 Nova 和 Cinder 等项目,这些项目更侧重于资源的初始放置(例如,虚拟机和卷)。 随着时间的推移,云可能会开始以应用程序性能、能源消耗等方面运行在次优状态。 然而,这正是 Watcher 发光的地方,它通过使用高级算法构建推荐行动计划来帮助云管理员调整和重新平衡他们的云! 这可以带来更好的应用程序吞吐量、更低的数据中心运营成本、更长的硬件寿命、减少云管理员参与故障排除和调整云的工作——仅举几例。

贡献

该项目由我们的 Watcher Drivers Team 积极开发。
如果您想贡献,请查看我们的指南 为 Watcher 贡献
您还可以查看谁正在为 Watcher 贡献 Stackalytics 报告

Meetings

我们每周三在 UTC 时间 08:00 在奇数周在 #openstack-meeting-alt IRC 频道上进行双周会议 (会议记录)。
您还可以使用 #openstack-watcher 联系团队 (频道记录)。
所以,请加入并查看我们的 Watcher 会议议程

用例

本节的主要目标是阐明 Watcher 的主要用例及其参考架构——以及如何使用它来优化 OpenStack 云;它不一定涵盖 Watcher 可以满足的每种可设想的用例。

用例 1
作为使用 Watcher 的云管理员,我希望通过执行“调整操作”(例如,虚拟机迁移)基于优化目标(例如,出口温度、气流入口温度和功耗或任何其他平台特定的测量值或目标的函数——即,多维目标)来优化我的数据中心。
依赖项

  • 使用实时迁移
  • 使用 Nova 调度器过滤器(例如,虚拟机亲和性、虚拟机反亲和性等)
  • 正确的主机指标集(例如,所有温度)


用例 2
作为使用 Watcher 的云管理员,我希望指定一个阈值(即,目标函数)或周期性间隔,该间隔定义了 Watcher 需要优化环境的时间点。

用例 3
作为云管理员,我希望能够为一组资源定义优化目标(例如,使用 OpenStack 的资源类型,如主机聚合),以便我可以在数据中心内为每组资源基于优化目标拥有多个目标(例如,“生产”与“开发”与“测试”主机系统)。

用例 4
作为云管理员,我希望能够配置 Watcher 以运行在“建议模式”或“活动”模式下,以便我可以在不一定允许 Watcher 执行它们的情况下查看 Watcher 将进行哪些优化。

用例 5
作为云管理员,我希望 Watcher 能够理解(即,了解)通过 Ceilometer 开箱即用的主机指标(例如,vcpus 数量、CPU 利用率 %、已用内存),以便我可以非常轻松地创建优化目标。

用例 6
作为云管理员,我希望能够轻松查看 Watcher 已经进行了哪些优化并了解其效率,以便我知道在我没有特别关注 Watcher 时我的数据中心正在发生什么。

架构

  • Watcher 作为 OpenStack 控制平面中的一组服务运行(即,能够通过 OpenStack 消息队列通过 RPC 调用访问其他 OpenStack 服务)。
  • Watcher 能够与许多云管理控制点进行通信(例如,OpenStack Nova 用于虚拟机迁移操作,OpenStack Keystone 用于身份验证服务等)。
  • Watcher 为其每个逻辑组件提供明确定义的接口,以便可以轻松地互换每个模块的实现。
  • 对于优化过程的每个阶段,Watcher 提供扩展点,以便可以交换不同的实现以实现各种优化目标。
  • Watcher 通过异步通知系统生成 AMQP 通知,用于 Watcher 执行的任何操作(即,这类似于“Nova 通知”系统),允许下游实体以事件驱动的方式为所有 Watcher 发起的操作而得到通知。


当前架构可在 官方文档 上找到。

高级优化流程

Watcher 优化过程的各个阶段可以在 此处 找到。

项目 Launchpad

https://launchpad.net/watcher

许可

Watcher 采用 Apache License v2 许可。

文档

Watcher 文档:https://docs.openstack.org/developer/watcher/
Watcher CLI 文档:https://docs.openstack.org/developer/python-watcherclient
Watcher 仪表板文档:https://docs.openstack.org/watcher-dashboard/latest/

源代码

所有源代码都可在 Opendev 上获得。
模块的源代码:https://opendev.org/openstack/watcher
Watcher 规范仓库:https://opendev.org/openstack/watcher-specs
Watcher 客户端代码:https://opendev.org/openstack/python-watcherclient
Watcher Horizon 仪表板插件:https://opendev.org/openstack/watcher-dashboard
Watcher Puppet 模块:https://opendev.org/openstack/puppet-watcher

常见问题解答

Watcher 仅仅是另一个虚拟机调度器吗?

不,Watcher 在虚拟机部署后执行资源优化,以随着时间的推移重新平衡环境。 事实上,Watcher 利用虚拟机调度器来帮助做出其优化决策,它们实际上是高度互补的技术。

Watcher 如何利用其他 OpenStack 项目?

虽然 Watcher 为 OpenStack 带来了智能资源优化,但它通过利用其他项目提供的服务来实现。 例如,当 Watcher 确定活动虚拟机更适合位于云中的另一个主机上时,Watcher 会要求 Nova 执行实时迁移操作以实际移动虚拟机。

我可以在 Docker 容器中运行 Watcher 吗?

是的。 专门的 项目 描述了如何在 Docker 容器中运行 Watcher。