附录 A. VDSM 服务和 Hook

Red Hat Virtualization Manager 使用 VDSM 服务来管理 Red Hat Virtualization 主机(RHVH)和 Red Hat Enterprise Linux 主机。VDSM 管理和监控主机的存储、内存和网络资源。它还协调虚拟机创建、统计收集、日志收集和其他主机管理任务。VDSM 作为由 Red Hat Virtualization Manager 管理的每个主机中的守护进程运行。它应答来自客户端的 XML-RPC 调用。Red Hat Virtualization Manager 作为 VDSM 客户端的功能。

VDSM 可通过 hook 扩展。挂钩是关键事件发生时在主机上执行的脚本。当支持的事件发生时,VDSM 会按字母数字顺序在 /usr/libexec/vdsm/hooks/nn_event-name/ 中运行任何可执行 hook 脚本。按照惯例,每个 hook 脚本都会分配两个数字(包含在文件名的前面),以确保以脚本运行的顺序明确。您可以使用任何编程语言创建 hook 脚本,但 Python 仍将用于本章中包含的示例。

请注意,主机上为事件定义的所有脚本都会被执行。如果您要求给定 hook 仅针对主机上运行的虚拟机的子集执行,则必须通过评估与虚拟机关联的 自定义属性 来处理此要求。

警告

VDSM hook 可能会干扰 Red Hat Virtualization 的运作。VDSM hook 中的错误可能导致虚拟机崩溃和数据丢失。VDSM hook 应谨慎实施并经过严格测试。Hooks API 是新的,可能会在以后有重大变化。

您可以使用事件驱动的 hook 扩展 VDSM。使用 hook 扩展 VDSM 是一个实验性技术,本章面向有经验的开发人员。

通过在虚拟机上设置自定义属性,可以将特定于给定虚拟机的其他参数传递给 hook 脚本。

A.1. 安装 VDSM hook

默认情况下不会安装 VDSM hook。如果需要特定的 hook,您必须手动安装它。

前提条件

  • 主机存储库必须启用。
  • 使用 root 权限登录到主机。

流程

  1. 获取可用 hook 列表:

    # dnf list vdsm\*hook\*
  2. 将主机置于维护模式。
  3. 在主机上安装所需的 VDSM hook 软件包:

    # dnf install <vdsm-hook-name>

    例如,要在主机上安装 vdsm-hook-vhostmd 软件包,请输入以下内容:

    # dnf install vdsm-hook-vhostmd
  4. 重启主机。