首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有设置动态Windows虚拟桌面主机池负载平衡方法的解决方案?

是否有设置动态Windows虚拟桌面主机池负载平衡方法的解决方案?
EN

Stack Overflow用户
提问于 2019-12-27 02:19:53
回答 1查看 316关注 0票数 0

我想改变主机池的负载平衡方法,从广度优先到深度优先,每天晚上19点到11点,以降低AM的成本。

例如:主机池负载平衡方法:呼吸优先,上午11:00 ~下午17:00主机池负载平衡方法:深度优先,下午17:00 PM ~ 11:00 AM

有人知道这件事吗?参考资料:集合-主机

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-27 07:46:54

您可以使用蔚蓝自动化运行簿来完成此操作,请按照以下步骤执行。

1.导航到蔚蓝门户创建一个自动化帐户,然后创建一个powershell运行簿

2.导航到自动化帐户-> Modules -> Browse Gallery ->,搜索powershell模块Microsoft.RDInfra.RDPowerShell并导入它,导入后如下所示。

3.当您将Create Azure Run As account设置为Yes创建自动化帐户时,它将在您的Azure租户中创建一个App和一个服务主体,它的名称将类似于automationaccountname_fc2Wgay6EkHrpgrpMSbF1V8uc6LVDkz9tgb8T6YUhaQ=。在蔚蓝运行簿中,您无法使用交互方式登录到Virtual,因此选项是使用服务主体(以帐户身份运行)登录。

在登录之前,您需要创建一个角色分配,以便服务主体可以登录到Virtual,只需遵循这个链接

代码语言:javascript
复制
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
Get-RdsTenant

$myTenantName = "<Windows Virtual Desktop Tenant Name>"
New-RdsRoleAssignment -RoleDefinitionName "RDS Owner" -ApplicationId <service-principal-appid> -TenantName $myTenantName

要在上面的脚本中找到ApplicationId,请导航到门户网站-> App registrations -> All applications ->中的-> App registrations->All applications->,查找您运行的AD应用程序作为account -> get ApplicationId,如下所示。

4.导航到在步骤1中创建的powershell运行簿,使用下面的脚本,它将主机池设置为使用广度优先负载平衡。

代码语言:javascript
复制
$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Windows Virtual Desktop..."
    Add-RdsAccount `
        -DeploymentUrl "https://rdbroker.wvd.microsoft.com" `
        -AadTenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

Set-RdsHostPool -TenantName "<contoso>" -Name "<contosoHostPool>" -BreadthFirstLoadBalancer

然后保存runbook1,并创建另一个runbook2,使用下面的脚本,它将主机池设置为使用深度优先负载平衡。

代码语言:javascript
复制
$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Windows Virtual Desktop..."
    Add-RdsAccount `
        -DeploymentUrl "https://rdbroker.wvd.microsoft.com" `
        -AadTenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

Set-RdsHostPool -TenantName "<contoso>" -Name "<contosoHostPool>" -DepthFirstLoadBalancer -MaxSessionLimit 10

5.导航到Schedule中的runbook1,有关如何使用它的更多细节,请参见此文档。例如,在您的例子中,只需设置如下所示。然后runbook1每天都会在11:00 AM上跑。在runbook2中,这是相同的逻辑,那么runbook2每天都会在17:00 PM上运行。在配置计划之后,对这两个运行簿进行strat。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59495308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档