警报 签署了
联络支持

浏览过本文的客户也浏览了

横幅
CTX131267 {{tooltipText}}

错误:“电源状态未知”,“CDS_EVENT_HOSTING_FAILED_POWER_ACTION”在XenDesktop

适用的产品

  • XenDesktop
  • XenApp

症状或错误

Desktop Studio或Desktop Director中的机器显示一个未知的力量状态

CDS_EVENT_HOSTING_FAILED_POWER_ACTION

Citrix Broker服务检测到虚拟机“%2”上的电源操作“%1”失败。

这个问题很可能是由主机问题引起的。检查主机上虚拟机的配置是否禁止所请求的电源操作。检查主机存储是否存在问题。检查主机连接信息是否正确。

错误的细节:
类型为“%4”的异常“%3”。

背景

桌面交付控制器(DDC)代理日志包含与相关机器相关的Citrix池管理异常,例如:

23/08/11 15:18:41.7081: HostingManagement:PollForPowerStateUpdates:在为02e0d308- c9fc - 4fbac -9fb2-aaaaaaaaaa获取状态时出现问题:Citrix.ManagedMachineAPI. nosuchmanagedmachineexception:类型为'Citrix.ManagedMachineAPI. nosuchmanagedmachineexception:异常。抛出了NoSuchManagedMachineException'。在Citrix.PoolManagement.VMManager.VmmImplementation.MicrosoftScvmmProvider.Connection。在Citrix.PoolManagement.VMManager.VmmImplementation.MicrosoftScvmmProvider.Connection执行(Runspace Runspace, Action ' 1 Action)GetVM(String id, Runspace Runspace) at Citrix.PoolManagement.VMManager.VmmImplementation.MicrosoftScvmmProvider.SCVMMConnector.<>c__DisplayClass44 'b__42(Runspace Runspace)在Citrix.PoolManagement.VMManager.VmmImplementation.MicrosoftScvmmProvider.SCVMMConnector。在Citrix.PoolManagement.VMManager.VmmImplementation.MicrosoftScvmmProvider.SCVMMConnector调用[T](Func ' 2 worker)CallAndRetry [T] (Func 3工人)

解决方案

要在DDC上更新正确的主机ID,请完成一个以下解决方案的其中之一(解决方案1解决方案2).

此问题也可以使用其他方法解决。其中一些记录在这里:

移除受影响的虚拟机,然后重新添加
确保SCVMM热修复版本匹配
使用维护模式修复Hypervisor连接状态。
重启FMA服务


解决方案1

这可能是由虚拟机管理程序对虚拟机元数据的更改引起的。如果虚拟机的唯一ID已更改,则XenDesktop数据库可能不知道此UID不匹配。该进程将验证XenDesktop已知的虚拟机UID,并与hypervisor提供的UID进行比较。

解决方案1步骤图概述
用户添加图片


警告!在完成这些操作之前,请备份XenDesktop数据库。

  1. 使用PowerShell控制台打开DDC并运行t执行以下命令显示虚拟机管理程序中的所有虚拟机id。

    asnp Citrix* $ErrorActionPreference=Continue Get-ChildItem -Path XdHyp:\ -force -recurse | ?{$_。IsMachine} | Out-File -Filepath c:\xdhyp.txt
  2. xdhyp.txt输出文件包含来自hypervisor的正确机器id。打开文件,按一下Ctrl+F编辑>找到.2 .搜索虚拟机的名称,在此例中虚拟机的名称为PVS0003。

    示例输出

    PSPath: Citrix.Host.Admin.V1\Citrix.Hypervisor::XDHyp:\Connections\XenServer\PVS0003vm PSParentPath:“Citrix. host . admin . v1 \Citrix. v1”Hypervisor:: xdhp:\Connections\XenServer PSChildName: PVS0003。\Citrix. host . admin . v1 \Citrix. XDHypHypervisor piscontainer: True Name: PVS0003 FullName: PVS0003。vm对象类型:虚拟机Id: 7d1d6004-5319-7a7e-59cb-2662e212a3e5 IsContainer: True IsMachine: True IsSnapshotable: True ObjectPath: /PVS0003。vm FullPath: XDHyp:\Connections\XenServer\PVS0003。vm IsSymLink: False AdditionalData: {}

    请注意:机器ID如下:
    Id: 7d1d6004-5319-7a7e-59cb-2662e212a3e5。
    你的结果会有所不同。

  3. 执行如下命令:
    powerstate未知
    这将标识具有未知电源状态的机器。

    +注意输出中的“HostedMachineId”。

    现在比较步骤1中的“ID”和这一步中的“HostedMachineId”,你会发现ID是不同的。

    +正确的“Id”是从步骤1和错误的值存在于数据库(从步骤3)

    +我们也可以通过在SQL站点数据库中浏览以下表格并确认值来验证。

    Chb_Config。工人>> hoststedmachineid >>

    DesktopUpdateManagerSchema。ProvisionedVirtualMachine>>虚拟机id >>

  4. 3 .执行以下命令,修改XenDesktop数据库中机器ID的记录,使其与Hypervisor的机器ID匹配。

    Set-BrokerMachine -MachineName 'MyDomain\MyMachine' - hostdmachineid[前面输出的机器ID]

    这就纠正了HostedMachineId用于使用从中检索的ID的问题机器xdhyp.txt

  5. 检查桌面工作室桌面导演并刷新结果列表。
    电源状态现在必须与管理程序中指示的状态匹配。

请注意:可能需要重新启动思杰经纪服务并/或重新启动虚拟机。

解决方案2

方案2示意图概述
用户添加图片
Broker > Hypervisor通信的理解:

  • Broker服务运行在站点(DDC)中的每个交付控制器上。它有许多子组件,其中之一是托管管理子组件。
  • 代理服务必须使用VM/Machine ID与Hypervisor通信
  • 虚拟机的UUID/Machine ID可通过运行命令获取“Get-BrokerMachine”cmdlet从站点中的任何DDC。
  • 需要与虚拟化环境上虚拟机的BIOS文件相匹配,才能被站点上的DDC正常管理。
“Get-BrokerHypervisorConnection”
  • 如果在VSphere服务器上更新了证书,则需要在站点上的所有DDC上更新相同的证书。证书不匹配还会导致代理将电源状态更改为“未知”,Hypervisor连接状态更改为“不可用”。
  • 如果有主机/VSphere服务器处于维护状态或由于任何原因关闭,代理将更改电源状态为“未知”,Hypervisor连接状态为“不可用”。
  • 如果一个控制器上的代理服务出现问题,来自另一个控制器的代理服务将作为首选控制器来控制站点的Power和pool。
如果问题发生,补救措施:
  • 如果网络或VMware主机问题已自行纠正,如果中断持续较长时间,代理服务将无法自行重新建立通信。在这种情况下,需要在站点中的所有DDC上重新启动代理服务。
  • 或者,您可以使用Power Shell在任何DDC上运行cmdlet下面的命令。
  • Update-HypHypervisorconnection - LiteralPath“hypervisor连接的实际路径”
  • - Hypervisor连接的literalpath可以通过在任意DDC的PowerShell上运行下面的cmdlet来获取。
cd Xdhyp: cd ./连接
  • 例如:Update-HypHypervisorConnection -LiteralPath "XDHyp:\connections\Connection"
  • 或者,您可以使用Studio执行以下操作来更新连接:

在Studio上单击主机选项卡->右键单击连接->单击编辑连接->不做任何更改,单击确定。

解决方案3

从Desktop Studio中的Catalog & Delivery组中删除受影响的虚拟机,然后重新添加它们。

请注意:不能从MCS目录中删除机器。一旦虚拟机被删除,您将只能将该机器添加到“手动”类型的目录中。(该目录类型在XenDesktop 5.x中称为“现有”类型。它在XenApp和XenDesktop 7.x中被称为“Manual”。)

解决方案4

确保安装在ddc上的SCVMM控制台版本和热修复程序级别与SCVMM服务器的版本和热修复程序级别相同。

例如:在两个控制器上安装SCVMM控制台的升级版本,版本8,KB3097539,它与SCVMM服务器的热修复程序级别匹配。

解决方案5

  1. 执行“Get-BrokerHypervisorConnection”,检查输出的Hypervisor状态,
  2. 如果任何管理程序连接的状态是ON或OFF,
  3. 然后尝试将该连接置于维护模式几秒钟,然后再次关闭维护模式。

用户添加图片

解决方案6

  1. 重新启动所有ddc上的Citrix Site服务。

    注意:这可能会导致新连接的短暂中断,但当前会话不受影响。
  • 以管理员身份打开PowerShell,执行以下命令:
    • Stop-Service -Force
    • Get-Service Citrix* |启动服务

问题原因

DDC必须使用虚拟机ID与管理程序通信。如果DDC的虚拟机机器ID不正确,则无法读取机器电源状态,并在代理日志中抛出异常。如果电源状态为未知的, DDC将无法管理虚拟机上的任何电源功能。

请注意:虚拟机在不同主机之间被强制移动时,会出现此情况。

其他可能原因

  • 将在DDC上注册的事件id将提供关于问题类型的更多信息。
  • 如果代理和Hypervisor之间出现短时间的网络中断,代理将虚拟机的电源状态更改为“未知”,Hypervisor连接状态更改为“不可用”。

额外的资源


免责声明

上述示例代码是按原样提供给您的,没有任何声明、保证或条件。您可以自行承担使用、修改和传播的风险。思杰不作任何明示、默示、书面、口头或法定的保证,包括但不限于适销性、特定用途的适用性、所有权和不侵权的保证。在不限制上述规定的普遍性的前提下,您承认并同意(a)示例代码可能出现错误、设计缺陷或其他问题,可能导致数据丢失或财产损坏;(b)样本代码可能无法完全发挥功能;并且(c)思杰可以在不通知您或不向您承担责任的情况下,停止提供示例代码的当前版本和/或任何未来版本。在任何情况下,该规范都不应用于支持超危险活动,包括但不限于生命维持或爆破活动。在违反合同或任何其他责任理论的情况下,citrix及其关联公司或代理均不对因使用示例代码而产生的任何损害承担责任,包括但不限于直接、特殊、附带、惩罚性、后果性或其他损害,即使已被告知此类损害的可能性。尽管代码的版权属于Citrix,但任何示例代码的分发都应该只包括您自己的标准版权归属,而不是Citrix的。您同意就因您使用、修改或分发示例代码而引起的任何及所有索赔向思杰作出赔偿并为思杰辩护。