Summary

Nomad's single-site download (SSD) feature ensures a download across the WAN only happens once per site. It does this by maintaining information about which subnets are neighbors of each other (accessible on LAN rather than WAN), so that when an elected master considers a download from a DP rather than a peer in its subnet, it can discover which other local subnets already has the package. These subnets are typically at a single customer site, specifically a single geographical location. The sequence below describes what happens during SSD.

On this page

The information about sites and their associated subnets are stored and maintained in ActiveEfficiency. When a Nomad machine downloads a package, it registers this information with ActiveEfficiency, enabling it to build a profile of which Nomad machine holds particular packages and on which subnet. 

Building a download profile in ActiveEfficiency


When a Nomad machine on a subnet requires a particular package, it first tries to find a copy on the local subnet using the standard method for retrieving cached Nomad files.

Looking for a package on a local subnet


If no local copy of the package is found it then tries the ActiveEfficiency database to see if any Nomad machines on other subnets at the same site hold a copy.

Searching the ActiveEfficiency profile for a package to download


Only when all other avenues have failed will Nomad resort to downloading the package from the DP over the WAN.

Package downloaded from the DP if not on local subnet or profiled


When the master has a portion of the package it, registers itself with ActiveEfficiency to say that it can provide this package to other subnets if required.

Master registering with ActiveEfficiency


Architecture and ports

Nomad SSD architectureNomad SSD uses the following ports in its communications:

PortsNotes
TCP 80 (HTTP)

Step 1

Nomad systems on the branch site register in ActiveEfficiency the content they hold in their shares
TCP 80 (HTTP)

Step 2

Nomad Masters get information on which Nomad systems hold specific content

TCP 80 (HTTP) 
TCP 443 (HTTPS)

TCP 139 (SMB)

TCP 445 (SMB over TCP)


Step 3

Nomad Master fetches a package from the registered Nomad share on a neighboring subnet


We recommend that the latest version of ActiveEfficiency is installed to support this feature, please refer to Prerequisites for more details.

Nomad uses ActiveEfficiency to support SSD, WakeUp integration and Nomad pre-caching features. When a Nomad machine downloads a package, it registers this information with ActiveEfficiency enabling a profile to be created on which machines hold particular packages.

In previous versions, the elected master always accessed a DP, often over a slow or congested WAN, even if a neighboring subnet in the LAN had the requested package. In practice, this had no major impact on WAN traffic as Nomad only uses a proportion of the current free network capacity rather than the total rated capacity, but efficiency can be improved by enabling access to Nomad caches on other subnets.

When a machine requires a particular package, it attempts to find a copy on the local subnet. If it is unable to find one, it queries ActiveEfficiency to see if there are machines on adjacent subnets that hold a copy. If it finds one, it will download the package from it; if it doesn't, it will download the package from the DP over the WAN as a last resort.

Nomad reacts dynamically to network adapter changes, and if its IP address changes it will automatically update its subnet information in ActiveEfficiency. So, for example, closing the lid of a laptop and moving it to another subnet and resuming work there is handled by Nomad.

The following is how SSD interacts with other Nomad features:

  • SSD works seamlessly with FanOut – FanOut applies to peers and SSD applies to subnet masters
  • Remote differential compression integration is not supported over SSD, it will not be used when a subnet master is copying from a site master
  • SSD must be enabled for WakeUp to work across the site
  • SSD will use IP addresses if P2PEnabled registry value is set to use net literal names
  • Work rates only applies to transfers from a DP not to P2P transfers within a LAN, hence it does not apply to SSD downloads
  • When packages are purged from the cache, the corresponding entries are deleted from ActiveEfficiency. If you delete content directly from the cache, Nomad will not be aware that it has been removed and the corresponding ActiveEfficiency record will not be deleted. If that host subsequently becomes a site master, it will inform requesting machines that it does not have the package, forcing them to request the package from the next master in the list.

The following restrictions apply:

  • The mechanism does not support alternate source copy downloads, such as downloading an older version of a package from a LAN neighbor then filling in the changes
  • Only the initial 0% downloaded of a package and the final percentage (which can be < 100% if the entire package cannot be downloaded) are registered with ActiveEfficiency. There are no "10% so far" etc. intermediate records
  • Even if a machine has multiple NICs, only details of one NIC and its subnet are used for SSD. If that NIC is unavailable, SSD will not work properly (although Nomad itself may be working correctly, using the DP rather than another site)
  • IPv6 is not supported

Enabling SSD

Before enabling Nomad clients to use SSD, you need to ensure the following:

  • ActiveEfficiency v1.9.700 or later is installed and running successfully (we recommend using the latest version)
  • The ActiveEfficiency database is populated with information about sites and their associated subnets
These Nomad features make use of ActiveEfficiency – SSD, Single-site peer backup assistant, Integrating with WakeUp and Nomad pre-caching. We recommend you use the latest ActiveEfficiency version to benefit from added functionality from these features. ActiveEfficiency installation has information on setting up an instance to work with Nomad.

High-level overview of how to enable Single Site Download (SSD)

The following information applies to both new and existing installations of Nomad. 

  1. Make sure that 1E ActiveEfficiency is installed in your environment.  ActiveEfficiency is included with your Nomad license and is used as a content location metadata repository.  You can view further information here:  AES19
  2. Within ActiveEfficiency, populate the SSD sites and subnet information.  A sample PowerShell script is included in the Nomad installation files.  You can also configure ActiveEfficiency to synchronise with an existing master source, such as Active Directory Sites and Services.
  3. If not configured already, modify HKLM\Software\1E\NomadBranch\ActiveEfficiency\PlatformURL to "http://[servername]/ActiveEfficiency".
  4. Enable SSD on all Nomad agents, by modifying HKLM\Software\1E\NomadBranch\SSDEnabled to 3.  This will enable SSD for both "Provide" and "Consume" modes, specifically Nomad will provide content to other peers and consume content from other peers.
  5. If you already have Nomad installed and are only now enabling SSD, then ensure HKLM\Software\1E\NomadBranch\ActiveEfficiency\ContentRegistration is set to 1. In other words Nomad will register downloaded content with ActiveEfficiency, this is automatically enabled for new installations of Nomad and SSD.

Building a subnet profile in ActiveEfficiency

For ActiveEfficiency to build a subnet profile for SSD and the peer backup assistant feature, Nomad must communicate with its web service. When the Nomad service starts, it connects and registers the hosting device by name with ActiveEfficiency which returns a device ID in the form of a GUID that enables it to uniquely identify the Nomad machine and its default subnet.

If it is unable to communicate with the ActiveEfficiency web service, it retries every 5 minutes until it succeeds (as long as SSD is enabled). An attempt to communicate with ActiveEfficiency is also made prior to a package download to register its status.

The following points should be noted:

  • On a multi-NIC host, only one NIC gets registered and a wired interface takes precedence over a wireless interface during registration.
  • If Nomad fails initially to register an adapter, it retries every 5 minutes (for as long as SSD is enabled) until it succeeds.
  • Wireless adapters can be configured to act as SSD content providers and consumers. Use the ContentProviderOnWiFi registry setting to do this.
  • If the initial device registration was successful when the Nomad service started but the ActiveEfficiency web service later becomes unavailable, when Nomad subsequently downloads and caches a package it will not be able to register the package with ActiveEfficiency (see below for details). Nomad does not re-attempt package registration, so ActiveEfficiency will not know that this particular Nomad host has the package.

Configuring the Single-Site Download feature in the ActiveEfficiency documentation takes you through the setup process. There are also example PowerShell scripts for retrieving information about sites and their associated subnets from the AD and how to add these to ActiveEfficiency. Information about sites and subnets are typically obtained from the AD but you are free to get this information by other means.

Uninstallation, reinstallation, and reactivation

When you uninstall Nomad all its registry values are deleted. However, if you subsequently reinstall it, the device ID returned when Nomad next registers with ActiveEfficiency is one that is recycled from the database – this is because that is the device registered for the named machine so it recognizes that the same machine is involved and restores the previous values to the registry.

If you change the host name or domain, Nomad and ActiveEfficiency will regard this as a new machine and generate a new device ID for it.

If a cached package is reactivated, such as after an OSD upgrade or cloning, Nomad will register the package with ActiveEfficiency. (If this is a re-registration, the ActiveEfficiency record is effectively unchanged).

Fetching a package

When Nomad receives a request to download a package, an election takes place for a master. The master queries ActiveEfficiency about neighboring subnets (accessible on LAN rather than WAN) so that it can download content from a peer in an adjacent subnet (within the same location) if that content is not available on a peer in its own local subnet. For each subnet, the top 10 machines (in terms of percentage of the package cached) are listed – the subnet containing the master is excluded from the list if no peer has the package. During this process, the percentage specified by the requesting client is ignored. Although neighboring machines may have a lower percentage than the requesting machine, they may in fact have gained more since they last communicated with ActiveEfficiency, so they are potentially useful sources for the package, hence the top 10 rule.

The master (now a subnet master) iterates through the list (which is sorted by percentage) and sends a package status request to each machine. If it receives a response, the master attempts an SMB peer-to-peer download from that machine (the current site master). If the attempt fails (it is not contactable or the limit on the number of concurrent connections is exceeded), it tries the next one in the list. If it fails to get the package from any of them, it downloads from the DP. If the list is empty, the master downloads from the DP. Machines with a lower percentage of the package than machine requesting it will not respond.

Nomad peers never deal with SSD; they only copy packages from their subnet's master. The subnet master may have the package completely cached or it may be actively downloading from another site or from a DP – the source makes no difference to the peer

If a download is interrupted part way through (i.e.: the source becomes unavailable), Nomad iterates through the remainder of the list and if it fails to get the package from any of them, it downloads form the DP.

When a download starts, Nomads registers the progress with ActiveEfficiency (0% of the content has been downloaded) and when it finishes, the final percentage is also recorded. As long as the content downloaded is greater than 0%, the host becomes a candidate for another client until the package is deleted from its cache. Records with status of 0% downloaded are purged from ActiveEfficiency.

All machines that download a package and have SSD enabled registers with ActiveEfficiency, not just the subnet master.
If the client machine is running as a guest on VMware, it registers itself as DeviceType=0 in ActiveEfficiency – these device types are excluded from responding to SSD queries as they are deemed ineligible to provide content.

Enabling SSD in WinPE

To enable SSD in WinPE:

  1. Edit the task sequence for which you want to use SSD.
  2. Enable Single Site Download.
  3. In ActiveEfficiency URL enter  http://server/ActiveEfficiency  or  https://server/ActiveEfficiency  depending on the protocol you are using.
  4. Click OK.