Skip to content

VM Scale Booster

The HyWorks VM Scale Booster is used by the HyWorks Desktop Agent to send status updates and events. The latest releases of the HyWorks VM Scale Booster also support pushing the HyWorks Session Host Server and the Monitoring Service status/system load information. This helps in getting faster updates and reduces polling overhead on the controller.

Installation of the HyWorks VM Scale Booster

Prerequisites

The HyWorks VM Scale Booster can be installed either on the controller server or any other Windows machine that fulfills the following prerequisites:

  • .NET Framework 4.7.2

  • Erlang (otp_win64_22.0.exe)

  • RabbitMQ

.Net Framework 4.7.2 Installation

Dot net 4.7.2 comes pre-installed in the latest Windows servers, but for the older versions of Windows servers, it needs to be downloaded and installed through the Microsoft website.

Erlang (OTP) Installation

  1. Download Erlang (OTP) v22.0 from http://erlang.org/download/

Note

  • The Exact version of Erlang (OTP) is required.
  1. Connect to the server that needs to be configured as the VM Scale Booster with user credentials that have local administrator privileges, double click otp_win64_22.0.exe, keep the default selections, and proceed with the installation process.

  2. Once the installation process is complete, click Finish to close the Installation wizard of Erlang.

  3. Reboot, if required, to complete the Erlang installation process.

RabbitMQ Server (v3.7.17) Installation

Note

  • Exact version of RabbitMQ is required.
  1. Download the RabbitMQ server module v3.7.17 from https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.17

  2. Connect to the server that needs to be configured as the VM Scale Booster with user credentials that has local administrator privileges, double click on rabbitmq-server-3.7.17.exe.

  3. Once the installation process is complete, confirm whether the RabbitMQ service is installed and running.

HyWorks VM Scale Booster Installation

Download the latest HyWorks VM Scale Booster for Windows and follow the steps to install:

  1. Double-click on the HyWorks VM Scale Booster Installer [HyWorksVMScaleBooster_Net472.exe].

  2. In the Accops HyWorks VM Scale Booster wizard, click Next to proceed.

  3. Select the components to be installed and click Next.

    1. Installing for the first time: Select both the components - Accops HyWorks VM Scale Booster and Configure RabbitMQ

    2. Upgrade: Select the Accops HyWorks VM Scale Booster

  4. Click I Agree to Accept the License Agreement.

  5. The installation process will start. Once complete, click Finish to close the Installation wizard

  6. Check the services section to verify whether the Accops HyWorks VM Scale Booster Service is installed and running.

HyWorks VM Scale Booster Configuration

After a successful installation, the following configurations should be done to enable communication between the HyWorks VM Scale Booster and the HyWorks Controller:

  1. Locate the appsettings.json file in the Directory where the HyWorks VM Scale Booster is installed i.e. C:\Program Files (x86)\Accops\HyWorks VM Scale Booster\appsettings.json.

  2. Update the following tags (refer to the screenshot):

    1. Servers

      1. IP1: IP address of the Primary HyWorks Controller.

      2. IP2: IP address of the Secondary HyWorks Controller.

    2. RabbitMQ

      1. Host: IP address of the RabbitMQ server.

      2. Port: If the RabbitMQ is running on a different port other than the default 5672 port.

    3. Syslog

      1. The Host IP address of the syslog server.

  3. Save appsettings.json.

  4. Restart the Accops HyWorks VM Scale Booster service.

Enable VM Scale Booster on the Controller

Configuration on the HyWorks Controller

Once the HyWorks VM Scale Booster is configured and the services are up and running, follow the steps given below to enable the VM Scale Booster from the HyWorks Controller:

  1. Open the HyWorks Management Console > System > Advance config.

  2. Search for the tag DVM push and make the following changes:

    1. DVM Agent Queue Username: accopsmqadmin

    2. Desktop Poll Mode: 2

    3. DVM Agent Queue Hostname: IP of the RabbitMQ (in case of HA, VIP of RabbitMQ)

  3. Save the configurations and click Update to push the changes.

Configuration on the SHD

  1. Install the latest Session Host Installer setup that has the in-built DVM Tools-Lite. The Session Host Server and the Monitoring Services will use the DVM Tools to push the service and the load status.

  2. On the Session Host Server, verify that the registry entry EnableShdMode flag is set as true at HKLM\Software\Accops\DesktopAgent.

Limitations of the VM Scale Booster

  1. The VM Scale Booster feature works only for Managed SHD Pools.

  2. The VM Scale Booster feature works only for Windows Managed SHDs. Linux SHD does not support the SHD push Feature.

  3. The HyWorks VM Scale Booster [v3.3.0.20] requires 3.3 GA or above Controller & SHD and vice versa.

Important (VM Scale Booster)

  1. During the installation of this new Session Host, a DVMTools-Lite will get installed automatically and it will set the EnableShdMode registry of the Desktop Agent to True. So, if the manual is set as false, then the SHD Push will not work.

  2. The manual installation arguments for the SHD Mode enabled DVMTools with regular release:

    1. Argument: HyWorksDVMTools.exe /S /desktopagent=1 /hyprint=0 /usbcleaner=0 /usbredirection=0 /EnableShdMode=1
  3. DVM push agent refresh timeout: Only the controller-driven manual poll will be executed for each of the SessionHosts/MonitoringServers/DVMAgents after this timeout.

Azure-specific configurations on the Controller

Add the following inbound firewall rules for ports:

  1. 5672: RabbitMQ Message Queue [Must]

  2. 15672: RabbitMQ Management Console [Optional]

Troubleshooting

  1. In the case of Azure, the rule needs to be added on the Network Interface via the Azure portal for port numbers 5672 and 15672.

  2. Check the IP address of the Controllers in the appsetting.json file.

  3. Check the Username and Hostname for the RabbitMQ in the Advance config section on the Management Console.

Appendix

Change the default port of RabbitMQ

  1. Controller: Update the port into MMC > Advance Config with Key[DVM Agent Queue Port].

  2. HyWorks VM Scale Booster: Update the port [key: RabbitMQ-> Port] in the config file at

    1. Filename: appsettings.json

    2. Path: C:\Program Files (x86)\Accops\HyWorks VM Scale Booster

  3. Update the RabbitMQ port at the config file:

    1. Path: C:\Users\Administrator\AppData\Roaming\RabbitMQ

    2. File name: rabbitmq.config.example

    3. Changes:

      1. Existing string: %% {tcp_listeners, [5672]},

      2. Updated string: {tcp_listeners, [5673]}

      3. Please note that the comma is removed from the end.

      4. Save the file and rename it to rabbitmq.config.

    4. RabbitMQ Service reinstall steps:

      1. cd C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.17\sbin

      2. rabbitmqctl.bat stop

      3. rabbitmq-service.bat remove

      4. rabbitmq-service.bat install

      5. rabbitmq-service.bat start

VM Scale Booster HA Configuration

In enterprise environments, VM Scale booster must be configured to run in high availability mode. Accops does not provide any built-in load balancing or high availability of VM Scale Booster and thus the same can be achieved via 3rd party load balancers and high availability applications. One such solution is Microsoft Failover Cluster Manager.

The following method can be used to configure the MS Failover Cluster Manager:

Note

  • Though the scripts/methods are provided but eventually the configurations/load balancing and failover handling is outside the scope of Accops.
  1. After a successful installation of the Accops HyWorks VM Scale Booster, log in to both the VMs with AD Admin (both VMs should be joined to the same domain).

  2. Copy the PowerShell script FC_Configure.ps1 locally to both the VMs.

  3. Update the configurations into the scripts [viz. Failover Cluster old/new names, hostnames & VIPs].

  4. Run the PowerShell ISE with Admin privilege.

  5. Execute set-executionpolicy remotesigned to enable the PowerShell script execution.

  6. Open or load the script FC_Configure.ps1

  7. Update the following tags (refer to the screenshot):

    1. new_FC_Name: Name of the Failover Cluster.

    2. new_FC_RabbitMq_Name: Name of the Failover Cluster role for RabbitMQ.

    3. new_FC_DVMConsumer_Name: Name of the Failover Cluster role for the HyWorks VM Scale Booster.

    4. HostName_1: Hostname of the first VM of the HA configuration.

    5. HostName_2: Hostname of the Second VM of the HA configuration.

    6. VIP_FC: Provide an available IP address for the Failover Cluster.

    7. VIP_FCRabbitMq: Provide an available IP address for the RabbitMq role in the Failover Cluster.

    8. VIP_FC_DVMConsumer: Provide an available IP address for the HyWorks VM Scale Booster role in the Failover Cluster.

    Note

    The name given to the Failover cluster and roles should not be greater than 15 characters.

  8. This will enable the Failover Clustering Feature for the machine and will prompt for the Failover clustering configuration.

    1. On one VM, click No for a clean-up, if any previous Cluster Group or Role has been added.

    2. On another VM, click Yes to configure the Failover cluster [it will first clean up the local Failover cluster, followed by the configuration of the new one].

  9. The Failover cluster should now be configured and ready to use. Confirm that the configured Roles are visible and running.

  10. Update the VIP used for FC_RabbitMq in the appsettings.json file on both machines and restart the Accops HyWorks VM Scale Booster service.

  11. In the Failover Cluster Manager, right-click FC_AccopsDvmConsumer role > Move > Select Node (Select another node) > Ok.

  12. For the FC_RabbitMq role, the same steps as mentioned above should be executed.

The system should now be ready to use, and will automatically switch the VIP in case of service failure, allowing the DVMs to push to only one RabbitMQ server using the VIP.