配置虚拟机订阅


Red Hat Satellite 6.16

使用 virt-who 管理基于主机的订阅

Red Hat Satellite Documentation Team

摘要

本指南提供有关在 Red Hat Satellite 中准备订阅和激活码、配置 virt-who 和注册虚拟机的信息,以便它们从其 hypervisor 中继承订阅。

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

使用 Red Hat Jira 中的 Create Issue 表单提供您的反馈。JIRA 问题是在 Red Hat Satellite Jira 项目中创建的,您可以在其中跟踪其进度。

先决条件

流程

  1. 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
  2. 完成 SummaryDescription 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
  3. Create

第 1 章 简介

您可以在以下虚拟化平台中为 Red Hat Enterprise Linux 虚拟机使用基于主机的订阅:

  • Red Hat Virtualization
  • Red Hat Enterprise Linux Virtualization (KVM)
  • Red Hat OpenStack Platform
  • VMware vSphere
  • Microsoft Hyper-V
  • Nutanix AHV

1.1. 订阅使用报告的建议

如需准确的订阅使用情况报告,请遵循以下建议:

  • 正确配置 virt-who,如本指南的以下部分所述。
  • 在您的系统和激活码中设置系统目的。如需更多信息,请参阅以下资源:

  • 在连接的环境中,配置 Satellite 清单上传插件,将清单上传到 Red Hat Hybrid Cloud Console,以便可以使用 Subscriptions 服务进行订阅使用报告。您可以在 Satellite Web UI 中配置插件,方法是导航到 Configure > RH Cloud > Inventory Upload。有关订阅服务的更多信息,请参阅 Subscription Central 中的订阅服务入门

1.2. 基于主机的订阅

虚拟机需要基于主机的订阅,而不是物理订阅。许多基于主机的订阅为无限虚拟机提供授权。

要允许虚拟机报告主机客户机到其 hypervisor 的映射,您必须安装和配置 virt-who。virt-who 查询虚拟化平台,并将 hypervisor 和虚拟机信息报告到 Red Hat Satellite。此信息用于报告您可以在 Red Hat Hybrid Cloud Console 上的订阅服务中获取的订阅使用情况。

要查看订阅是否需要 virt-who,在 Satellite Web UI 中导航到 Content > Subscriptions。如果 Requires Virt-Who 列中有一个 tick,您必须将 virt-who 配置为使用该订阅。

1.3. 配置概述

要允许虚拟机通过 hypervisor 报告 host-guest 映射和订阅信息,请完成以下步骤:

先决条件

  • 将一个订阅清单(包括基于主机的订阅)导入到 Satellite 服务器中。如需更多信息,请参阅管理内容中的将红帽订阅清单导入到 Satellite 服务器中
  • 如果您使用 Microsoft Hyper-V,请在虚拟机监控程序上启用远程管理。
  • 如果您使用 Nutanix AHV,请参阅 如何为 Nutanix AHV 配置 virt-who 以使用 红帽知识库 中的 RHSM
  • 在每个 hypervisor 或虚拟化管理器中创建一个具有只读访问权限的用户,以及非过期密码。virt-who 使用这个帐户来检索要报告到 Satellite 服务器的虚拟机列表。

    • 对于红帽产品和 Microsoft Hyper-V,在每个运行 Red Hat Enterprise Linux 虚拟机的 hypervisor 上创建一个 virt-who 用户。
    • 对于 VMware vSphere,在 vCenter 服务器上创建一个 virt-who 用户。virt-who 用户至少需要对 vCenter 数据中心中的所有对象的只读访问权限。

流程概述

  1. 第 1.4 节 “每个虚拟化平台的 virt-who 配置”.使用本节中的表来计划如何为虚拟化平台配置和部署 virt-who。
  2. 第 2 章 创建 virt-who 配置.为每个 hypervisor 或虚拟化管理器创建一个 virt-who 配置。
  3. 第 3 章 部署 virt-who 配置.使用 Satellite 生成的脚本部署 virt-who 配置。
  4. 将虚拟机注册到 Satellite 服务器。如需更多信息, 请参阅管理主机中的注册主机

1.4. 每个虚拟化平台的 virt-who 配置

virt-who 使用指定要查询的详细信息的文件(如虚拟化类型和 hypervisor 或虚拟化管理器)进行配置。每个虚拟化平台的支持的配置都有所不同。

典型的 virt-who 配置文件

本例演示了使用 Satellite Web UI 或 Hammer CLI 创建的典型 virt-who 配置文件:

[virt-who-config-1]
type=libvirt
hypervisor_id=hostname
owner=Default_Organization
env=Library
server=hypervisor1.example.com
username=virt_who_user
encrypted_password=$cr_password
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_1
rhsm_encrypted_password=$user_password
rhsm_prefix=/rhsm
Copy to Clipboard

typeserver 值取决于虚拟化平台。下表提供了更多详细信息。

用户名 指的是 hypervisor 或虚拟化管理器中的只读用户,您必须在配置 virt-who 之前创建。rhsm-username 指的是自动生成的用户,该用户只有 virt-who 报告到 Satellite 服务器的权限。

每个虚拟化平台所需的配置

使用此表来规划您的 virt-who 配置:

支持的虚拟化平台在配置文件中指定的类型配置文件中指定的服务器部署配置文件的服务器

Red Hat Virtualization

RHEL 虚拟化(KVM)

Red Hat OpenStack Platform

libvirt

hypervisor (每个虚拟机监控程序一个文件)

每个 hypervisor

VMware vSphere

esx

vCenter Server

Satellite 服务器、胶囊服务器或专用 RHEL 服务器

Microsoft Hyper-V

hyperv

Hyper-V hypervisor (每个虚拟机监控程序一个文件)

Satellite 服务器、胶囊服务器或专用 RHEL 服务器

virt-who 配置文件示例

此时会显示几个常见 hypervisor 类型的 virt-who 配置文件示例。

OpenStack virt-who 配置示例

[root@compute-node]# cat /etc/virt-who.d/virt-who-config-1.conf
This configuration file is managed via the virt-who configure plugin
manual edits will be deleted.
[virt-who-config-1]
type=libvirt
hypervisor_id=hostname
owner=ORG
env=Library
server=qemu:///system   <====
username=virt-who-user
encrypted_password=xxxxxxxxxxx
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_1
rhsm_encrypted_password=yyyyyyyyyyy
rhsm_prefix=/rhsm
Copy to Clipboard

KVM virt-who 配置示例

type=libvirt
hypervisor_id=hostname
owner=gss
env=Library
server=qemu+ssh://root@libvirt.example.com/system
username=root
encrypted_password=33di3ksskd
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=23233dj3j3k
rhsm_prefix=/rhsm
Copy to Clipboard

VMware virt-who 配置示例

type=esx
hypervisor_id=hostname
owner=gss
env=Library
server=vcenter.example.com
username=username_vcenter@example.com
encrypted_password=33di3ksskd
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=23233dj3j3k
rhsm_prefix=/rhsm
Copy to Clipboard
重要

不支持 rhevmxen 管理程序类型。

kubevirt hypervisor 类型仅作为技术预览提供。

第 2 章 创建 virt-who 配置

使用这个流程创建 virt-who 配置。红帽产品和 Microsoft Hyper-V 需要为每个运行 Red Hat Enterprise Linux 虚拟机的虚拟机监控程序进行一个配置。VMware vSphere 需要为每个 vCenter Server 进行一个配置。

此流程中的大多数值都添加到 /etc/virt-who.d/conf_name.conf 文件中,并只适用于指定的 hypervisor 或虚拟化管理器。间隔启用调试输出HTTP 代理和 Ignore Proxy 是存储在 /etc/sysconfig/virt-who 文件中的全局值。全局配置值适用于同一服务器上的所有 virt-who 配置,并且每次部署新的 virt-who 配置时都会覆盖。

每个 virt-who 配置都会创建一个 virt_who_reporter_[id] 用户,并为它分配 Virt-who Reporter 角色,它为 Satellite 服务器提供最小权限。用户无法手动配置此用户,或用于登录 Satellite 服务器。

先决条件

  • 如果您要为 Red Hat hypervisor (Red Hat Enterprise Linux 或 Red Hat Virtualization Host)创建 virt-who 配置,请将 hypervisor 注册到 Red Hat Satellite。
  • 在 hypervisor 或虚拟化管理器中创建只读 virt-who 用户:

    • 对于红帽产品和 Microsoft Hyper-V,在每个运行 Red Hat Enterprise Linux 虚拟机的 hypervisor 上创建一个 virt-who 用户。
    • 对于 VMware vSphere,在 vCenter 服务器上创建一个 virt-who 用户。virt-who 用户至少需要对 vCenter 数据中心中的所有对象的只读访问权限。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Virt-who configuration
  2. 单击 Create Config。在 New Virt-who Config 窗口中,您可以点击帮助图标了解有关每个字段的更多信息。
  3. 输入配置的名称。
  4. Hypervisor Type 列表中,选择您的虚拟化平台:

    • Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization 或 Red Hat OpenStack Platform: libvirt
    • VMware vSphere: esx
    • Microsoft Hyper-V: hyperv
    • 请注意,不支持 rhevmxen 管理程序类型,而 kubevirt 管理程序类型仅作为技术预览提供。
  5. Hypervisor Server 字段中,输入此配置适用的服务器的 FQDN 或 IP 地址。对于 VMware vSphere,使用 vCenter 服务器的 FQDN 或 IP 地址。对于所有其他产品,请使用 hypervisor 的 FQDN 或 IP 地址。
  6. Hypervisor Username 字段中,输入您在虚拟机监控程序或虚拟化管理器中创建的 virt-who 用户的名称。
  7. Hypervisor Password 字段中,输入 virt-who 用户的密码。当您部署配置时,此密码会被加密。使用 libvirt 类型时不需要此字段。
  8. Interval 列表中选择 virt-who 请求新的或更新的虚拟机信息的频率。由于虚拟机被授予最多七天的临时订阅,因此不需要频繁的查询;您可以选择适合环境大小的间隔。每 24 小时 都适合大多数环境。
  9. 输入 Satellite 服务器 FQDN
  10. Hypervisor ID 列表中,选择是否通过其主机名或 UUID 在 Satellite 服务器中识别虚拟机监控程序。
  11. 选择 Filtering 选项:

    • 默认为 unlimited。此配置涵盖的所有虚拟机监控程序都由 virt-who 查询。如果您不必限制查询哪些虚拟机监控程序,则使用此选项。
    • 您可以用 白名单黑名单 管理程序。例如,如果某些虚拟机监控程序只运行 Microsoft Windows Server 虚拟机,则 virt-who 不需要报告这些管理程序。
  12. 如果您选择了 WhitelistBlacklist :在 Filter hostsExclude hosts 字段中,根据所选的 Hypervisor ID 输入以逗号分隔的虚拟机监控程序列表。例如,如果虚拟机监控程序通过其主机名标识,则必须通过其主机名包含或排除它们。如果管理程序的名称包含特殊字符,请将其用引号括起来。支持通配符和正则表达式。请注意,在使用正则表达式时,必须转义反斜杠。
  13. 如果您选择了 esx 类型和 WhitelistBlacklist :在 Filter host parentsExclude host parents 字段中,请输入以逗号分隔的集群 ID 列表。如需更多信息,请参阅红帽知识库中的 对 VMware 集群使用"Filter Host Parents"和"Exclude Host Parents"属性

    允许的集群中的虚拟机监控程序由 virt-who 报告。排除集群中的虚拟机监控程序不会由 virt-who 报告。如果集群名称包含特殊字符,请将其用引号括起。支持通配符和正则表达式。请注意,在使用正则表达式时,必须转义反斜杠。

  14. 可选:如果您需要 调试输出来进行故障排除,请选择 Enable debug output 复选框。
  15. 可选:输入一个 HTTP 代理,用于部署 virt-who 的服务器和 hypervisor 或虚拟化管理器之间的通信。例如: http://proxy.example.com:3128

    要使用代理,请将此字段留空 ; 这与在 Ignore Proxy 字段中输入 * 的结果相同。

  16. 可选: 在 Ignore Proxy 字段中,输入以逗号分隔的主机名、IP 地址或域列表来绕过现有的代理设置。
  17. Submit

对于 CLI 用户

  • 在 Satellite 服务器上,输入 hammer virt-who-config create 命令。有关选项的更多信息,请输入 hammer virt-who-config create --help

    这个示例为 Red Hat Enterprise Linux hypervisor 创建 virt-who 配置:

    # hammer virt-who-config create \
    --name rhel.example.com \
    --organization "Example Company" \
    --interval 720 \ 
    1
    
    --filtering-mode none \ 
    2
    
    --hypervisor-id hostname \ 
    3
    
    --hypervisor-type libvirt \ 
    4
    
    --hypervisor-server rhel.example.com \ 
    5
    
    --hypervisor-username virt-who \ 
    6
    
    --proxy 'http://proxy.example.com:3128' \ 
    7
    
    --satellite-url satellite.example.com
    Copy to Clipboard
1
选择 virt-who 查询虚拟化平台的频率。您可以选择适合环境大小的间隔。对于对订阅服务的准确报告,一天(720)适合大多数环境。
2
选择是否过滤 hypervisor。如果您不必限制查询哪些虚拟机监控程序,则使用 none。或者,您也可以将 虚拟机监控程序 列入黑名单。例如,如果某些虚拟机监控程序只运行 Microsoft Windows Server 虚拟机,则 virt-who 不需要报告这些管理程序。
3
选择如何识别此配置适用的虚拟机监控程序(或虚拟机监控程序)。使用 hostname 在 Satellite Web UI 中提供有意义的主机名。或者,您可以使用 uuid 来避免在虚拟机监控程序被重命名时重复。hwuuid 仅在此配置应用到虚拟化管理器而不是单独的 hypervisor 时才使用,且不得在 virt-who 开始运行后更改为另一个选项,因为这会在 Subscription Manager 中造成重复条目。
4
指定虚拟化平台支持的类型:
  • Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization 或 Red Hat OpenStack Platform: libvirt
  • VMware vSphere: esx
  • Microsoft Hyper-V: hyperv
  • 请注意,不支持 rhevmxen 管理程序类型,而 kubevirt 管理程序类型仅作为技术预览提供。
5
指定此配置适用的服务器的 FQDN 或 IP 地址。对于 VMware vSphere,使用 vCenter 服务器的 FQDN 或 IP 地址。对于所有其他产品,请使用 hypervisor 的 FQDN 或 IP 地址。
6
指定您在 hypervisor 或虚拟化管理器中创建的只读 virt-who 用户。在使用 libvirt 类型时,您不需要指定密码。对于其他类型,您必须使用- hypervisor-password 选项指定 virt- who 用户的密码。
7
可选:输入用于部署 virt-who 的服务器和 hypervisor 或虚拟化管理器之间的通信的 HTTP 代理。

第 3 章 部署 virt-who 配置

创建 virt-who 配置后,Satellite 提供了一个脚本来自动化部署过程。该脚本安装 virt-who 并创建单个和全局 virt-who 配置文件。

对于红帽产品,您必须将每个配置文件部署到文件中指定的 hypervisor 上。对于其它产品,您必须将配置文件部署到 Satellite 服务器上,或者专门运行 virt-who 的独立 Red Hat Enterprise Linux 服务器。

3.1. 在 hypervisor 上部署 virt-who 配置

使用这个流程在文件中指定的红帽 hypervisor 上部署 virt-who 配置。全局值只适用于这个 hypervisor。

您还可以使用此流程在 Capsule 服务器上部署 vCenter 或 Hyper-V virt-who 配置。全局配置值适用于同一 Capsule 服务器上所有 virt-who 配置,并且每次部署新的 virt-who 配置时都会覆盖。

先决条件

  • 将 hypervisor 注册到 Red Hat Satellite。
  • 如果您使用 Red Hat Virtualization Host (RHVH),请将其更新至最新版本,以便最小 virt-who 版本可用。默认情况下,virt-who 在 RHVH 上可用,但不能从 rhel-7-server-rhvh-4-rpms 存储库中单独更新。
  • 在 hypervisor 上创建一个只读 virt-who 用户。
  • 为您的虚拟化平台创建 virt-who 配置。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Virt-who configuration
  2. 点 virt-who 配置的名称。
  3. 单击 Deploy 选项卡。
  4. Configuration script 下,单击 Download the script
  5. 将脚本复制到 hypervisor 中:

    # scp deploy_virt_who_config_1.sh root@hypervisor.example.com:
    Copy to Clipboard
  6. 使部署脚本可执行并运行它:

    # chmod +x deploy_virt_who_config_1.sh
    # sh deploy_virt_who_config_1.sh
    Copy to Clipboard
  7. 部署完成后,删除脚本:

    # rm deploy_virt_who_config_1
    Copy to Clipboard

3.2. 在 Satellite 服务器上部署 virt-who 配置

使用这个流程在 Satellite 服务器上部署 vCenter 或 Hyper-V virt-who 配置。

全局配置值适用于 Satellite 服务器上的所有 virt-who 配置,并在每次部署新的 virt-who 配置时被覆盖。

先决条件

  • 在管理程序或虚拟化管理器上创建只读 virt-who 用户。
  • 如果要部署 Hyper-V virt-who 配置,请在 Hyper-V hypervisor 上启用远程管理。
  • 为您的虚拟化平台创建 virt-who 配置。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Virt-who configuration
  2. 点 virt-who 配置的名称。
  3. Hammer 命令 下,单击 Copy to clipboard
  4. 在 Satellite 服务器上,将 Hammer 命令粘贴到您的终端中。

3.3. 在单独的 Red Hat Enterprise Linux 服务器中部署 virt-who 配置

使用这个流程在专用的 Red Hat Enterprise Linux 7 服务器上部署 vCenter 或 Hyper-V virt-who 配置。服务器可以是物理或虚拟服务器。

全局配置值适用于这个服务器上所有 virt-who 配置,并在每次部署新的 virt-who 配置时被覆盖。

先决条件

  • 在管理程序或虚拟化管理器上创建只读 virt-who 用户。
  • 如果要部署 Hyper-V virt-who 配置,请在 Hyper-V hypervisor 上启用远程管理。
  • 为您的虚拟化平台创建 virt-who 配置。

流程

  1. 在 Red Hat Enterprise Linux 服务器上,安装 Satellite 服务器的 CA 证书:

    # rpm -ivh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
    Copy to Clipboard
  2. 将 Red Hat Enterprise Linux 服务器注册到 Satellite 服务器:

    # subscription-manager register \
    --org=organization_label \
    --auto-attach
    Copy to Clipboard
  3. 打开用于 virt-who 和 Satellite 服务器间通信的网络端口:

    # firewall-cmd --add-port="443/tcp"
    # firewall-cmd --add-port="443/tcp" --permanent
    Copy to Clipboard
  4. 打开用于 virt-who 和每个 hypervisor 或虚拟化管理器之间的通信的网络端口:

    • VMware vCenter:TCP 端口 443
    • Microsoft Hyper-V: TCP 端口 5985
  5. 在 Satellite Web UI 中,进入到 Infrastructure > Virt-who configuration
  6. 点 virt-who 配置文件的名称。
  7. 单击 Deploy 选项卡。
  8. Configuration script 下,单击 Download the script
  9. 将脚本复制到 Red Hat Enterprise Linux 服务器中:

    # scp deploy_virt_who_config_1.sh root@rhel.example.com:
    Copy to Clipboard
  10. 使部署脚本可执行并运行它:

    # chmod +x deploy_virt_who_config_1.sh
    # sh deploy_virt_who_config_1.sh
    Copy to Clipboard
  11. 部署完成后,删除脚本:

    # rm deploy_virt_who_config_1
    Copy to Clipboard

附录 A. 对 virt-who 进行故障排除

A.1. 修改 virt-who 配置

您可以使用 Satellite Web UI 或 Hammer CLI 修改现有的 virt-who 配置。例如,如果您需要更改 virt-who 运行的频率,则必须再次更新并部署 virt-who 配置。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Virt-who configuration
  2. 找到您要修改的 virt-who 配置,然后点击 Actions 列中的 Edit
  3. 编辑您要更改的字段。
  4. Submit
  5. 重新部署修改后的 virt-who 配置。

对于 CLI 用户

  1. 在 Satellite 服务器上,输入 hammer virt-who-config update 命令,指定您要修改的配置的名称,以及您要更改的选项的新值。如果要更改配置的名称,则必须使用 option --new-name

    # hammer virt-who-config update \
    --name current_name \
    --new-name new_name \
    --interval 1440
    Copy to Clipboard
  2. 重新部署修改后的 virt-who 配置。

A.2. 删除现有 virt-who 配置

要删除现有的 virt-who 配置,您必须首先在 Satellite Web UI 中删除配置条目,然后从部署了配置的主机的文件系统中删除配置文件。

流程

  1. 在 Satellite Web UI 中,进入到 Infrastructure > Virt-who configuration
  2. 从您要删除的配置的 Actions 列表中,选择 Delete
  3. 在您要从中删除 virt-who 配置的主机上,删除配置文件:

    # rm /etc/virt-who.d/conf_name.conf
    Copy to Clipboard

A.3. virt-who 故障排除方法

验证 virt-who 状态

要在 Satellite web UI 中验证 virt-who 的状态,请导航到 Infrastructure > Virt-who 配置,并检查每个 virt-who 实例的 Status 列。OK 状态表示 virt-who 已成功连接到 Satellite 服务器,并报告由每个 hypervisor 管理的虚拟机。

要使用 CLI 列出所有 virt-who 实例的状态,请在 Satellite 服务器上输入以下命令:

# hammer virt-who-config list
Copy to Clipboard

命令的输出包括每个 virt-who 实例报告到 Satellite 服务器的日期和时间。

调试日志记录

检查 /var/log/rhsm/rhsm.log 文件,其中 virt-who 默认记录其所有活动。

要启用更详细的日志记录,请修改 virt-who 配置:

  • 在 Satellite Web UI 中,选中 Enable debugging output 复选框。
  • 在 Hammer CLI 中,添加 the- debug true 选项。

重新部署配置以使更改生效。

当底层问题解决时,修改 virt-who 配置以禁用调试,然后再次重新部署配置。

测试配置选项

进行更改并测试结果,根据需要重复。virt-who 提供两个选项,可帮助测试配置文件、凭证和与虚拟化平台的连接:

  • virt-who --one-shot 命令读取配置文件,检索虚拟机列表并将其发送到 Satellite 服务器,然后立即退出。
  • virt-who --print 命令读取配置文件并打印虚拟机列表,但不将其发送到 Satellite 服务器。

预期的输出是采用 JSON 格式的虚拟机监控程序及其虚拟机的列表。以下是从 VMware vSphere 实例提取的。所有虚拟机监控程序的输出都遵循相同的结构。

{
    "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12",
    "state": 5,
    "attributes": {
        "active": 0,
        "virtWhoType": "esx",
        "hypervisorType": "vmware"
    }
},
Copy to Clipboard

使用多个 virt-who 配置文件时识别问题

如果您在一个服务器上有多个 virt-who 配置文件,请在每个文件移动后一次将一个文件移到另一个目录。如果不再发生这个问题,原因将与最近移动的文件相关联。解决问题后,将 virt-who 配置文件返回到其原始位置。

或者,您可以使用-- config 选项指定其位置,在移动后测试单个文件。例如:

# virt-who --debug --one-shot --config /tmp/conf_name.conf
Copy to Clipboard

识别重复的虚拟机监控程序

重复的 hypervisor 可能会导致订阅和权利错误。输入以下命令检查重复的 hypervisor:

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | sort -nr | head -n10
  3    "name": "localhost"
  1    "name": "rhel1.example.com"
  1    "name": "rhel2.example.com"
  1    "name": "rhel3.example.com"
  1    "name": "rhel4.example.com"
  1    "name": "rhvh1.example.com"
  1    "name": "rhvh2.example.com"
  1    "name": "rhvh3.example.com"
  1    "name": "rhvh4.example.com"
  1    "name": "rhvh5.example.com"
Copy to Clipboard

在本例中,三个虚拟机监控程序具有相同的 FQDN (localhost),且必须更正才能使用唯一的 FQDN。

识别重复虚拟机

输入以下命令检查重复的虚拟机:

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | sort -nr | head -n10
Copy to Clipboard

检查 hypervisor 数量

输入以下命令检查当前报告的 hypervisor virt-who 数量:

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | wc -l
Copy to Clipboard

检查虚拟机数量

输入以下命令检查 virt-who 当前报告的虚拟机数量:

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | wc -l
Copy to Clipboard

A.4. virt-who 故障排除场景

virt-who 无法连接到虚拟化平台

如果 virt-who 无法连接到 hypervisor 或虚拟化管理器,请检查 Red Hat Subscription Manager 日志文件 /var/log/rhsm/rhsm.log。如果您发现消息 No route to host,则 hypervisor 可能会侦听错误的端口。在这种情况下,修改 virt-who 配置,并将正确的端口号附加到 Hypervisor Server 值。

在修改后,您必须重新部署 virt-who 配置。

virt-who 无法通过本地网络上的 HTTP 代理连接到虚拟化平台

如果 virt-who 无法通过 HTTP 代理连接到 hypervisor 或虚拟化管理器,请将代理配置为允许本地流量通过,或者修改 virt-who 配置以使用代理。

在修改后,您必须重新部署 virt-who 配置。

virt-who 无法向 Red Hat Satellite 服务器报告 host-guest 映射

在以下情况下,virt-who 无法报告 host-guest 映射到 Red Hat Satellite 服务器。

  1. virt-who 是在 Red Hat Satellite 服务器上配置和部署的。
  2. Red Hat Satellite 服务器的 rhsm.conf 文件被配置为使用代理服务器与 subscription.rhsm.redhat.com 和 cdn.redhat.com 通信。
  3. /etc/sysconfig/virt-who 中的 no_proxy vendor 设置存在,但 subscription-manager 忽略,virt-who 会尝试通过代理服务器重新连接到 Satellite 服务器,但失败。

在本例中,在 /etc/rhsm/rhsm.conf 文件中添加以下参数。

no_proxy = satellite.example.com
Copy to Clipboard

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat