Management

Windows Server AppFabric Caching
WSAF Caching clusters are configured and administered using a set of Windows PowerShell commands.
ScaleOut StateServer

ScaleOut StateServer offers four approaches to managing a data grid:

  • The SOSS Console (pictured below), a straightforward Windows-based management tool, capable of managing all hosts in the data grid from a single location.
  • The soss.exe command line tool, available on both Windows and Linux systems, for command line management or scripted administration.
  • .NET management APIs, for programmatic management of the grid through your custom .NET application.
  • A set of Powershell commands to configure and administer the in-memory data grid.

    Figure 3. The SOSS Console Application

    images/Console.png

    In addition to the tools that manage the hosts in your data grid, ScaleOut’s Object Browser tool allows for management of individual objects in your grid. The Object Browser is able to browse the objects that are stored in your farm and view their contents in a UI that is similar to the Visual Studio debugger’s Watch Window.

    Figure 4. The SOSS Object Browser Application

    images/Browser.png

Cmdlets

ScaleOut StateServer’s drop-in replacement offers syntax-matching cmdlets for AppFabric veterans. The following commonly used AppFabric cmdlets have been implemented with ScaleOut StateServer in mind. The SOSS PowerShell module can be used by directly importing the SossAdministration Powershell module within Powershell (for example, Import-Module SossAdministration) or by using the ScaleOut StateServer PowerShell shortcut which will automatically import the SossAdministration PowerShell module. The ScaleOut StateServer PowerShell shortcut is located in the installation directory.

Store Monitoring

Get-Cache
The Get-Cache command displays a collection of CacheInfo objects that contain meta-data for a NamedCache. The CacheInfo object contains properties for an AppId (a unique identifier for a NamedCache), a NamedCache name (used to create the AppID), and a mapping of regions to hosts.
Get-CacheHost
The Get-CacheHost command displays a collection of all hosts participating in the ScaleOut StateServer store as a set HostInfo objects. The HostInfo object contains properties for an IP address, a HostStatus enum (e.g., active, inactive), and an isLocal boolean.
Get-CacheRegion
The Get-CacheRegion command displays a collection of all regions stored within the ScaleOut StateServer store represented as a set of RegionInfo objects. Each RegionInfo object contains properties for a region, the associated NamedCache and the host that the region lives on.
Get-CacheStatistics
The Get-CacheStatistics command displays the Create/Read/Update/Delete load for the entire ScaleOut StateServer store, or a target host.

Store Administration

Start-CacheHost
The Start-CacheHost command joins a target ScaleOut StateServer host to the active membership group of the ScaleOut StateServer store. When a host joins the active membership, it participates in load balancing and handles user requests as a part of the distributed in-memory data grid.
Start-CacheCluster
The Start-CacheCluster command joins all ScaleOut StateServer hosts to the active membership of the ScaleOut StateServer store.
Stop-CacheHost
The Stop-CacheHost command removes a target ScaleOut StateServer host from the active membership group. When a host leaves the active membership group, it no longer participates in load balancing and does not recieve user requests.
Stop-CacheCluster
The Stop-CacheCluster command removes all ScaleOut StateServer hosts from the active membership group.
Restart-CacheCluster
The Restart-CacheCluster command restarts all of the ScaleOut StateServer processes within the ScaleOut StateServer store. All data stored within the in-memory data grid will be removed.
Get-CacheHostConfig
The Get-CacheHostConfig command displays the configuration parameters for a ScaleOut StateServer host. For a complete description of the configuration parameters, please view the "Configuration Parameters" section within the ScaleOut StateServer help file.
Set-CacheHostConfig
The Set-CacheHostConfig command sets a configuration parameter for a target host. The Get-CacheHostConfig and Set-CacheHostConfig cmdlets can be used in tandem to quickly and easily alter the configuration of each host participating in the ScaleOut StateServer store.
[Note] Note

For detailed descriptions and examples of these cmdlets, use the "Help/Get-Help" commands within PowerShell.

[Note] Note

Additional ScaleOut StateServer specific cmdlets can be found within the ScaleOut StateServer help file.

Cmdlets Not Implemented

The following cmdlets were not implemented as a part of the drop-in solution with explanations below.

Use-CacheCluster, Export-CacheClusterConfig, Import-CacheClusterConfig, Set-CacheConnectionString, Get-CacheConnectionString, New-CacheCluster, Remove-CacheCluster, Register-CacheHost, Unregister-CacheHost, Add-CacheHost, Remove-CacheHost
After ScaleOut StateServer (SOSS) is installed, any management API (including PowerShell Cmdlets) will automatically detect the connection settings through the soss_params.txt configuration file and connect to the SOSS store (SOSS does not use connection strings). Also, all configuration changes to a host are automatically persisted to disk (as soss_params.txt in the installation directory). Additionally, ScaleOut StateServer hosts are automatically added to the store through host auto-discovery after installation. To remove a host from the ScaleOut StateServer store, issue the Stop-CacheHost command to remove the target host from the SOSS store’s active membership.
New-Cache, Remove-Cache
ScaleOut StateServer’s (SOSS) NamedCaches are automatically created and configured within an application. Each NamedCache has an associated namespace which is registered and persisted with the lifetime of the SOSS service. The NamedCache object only lives within the scope of the application. There is no configuration object for an administrator to create or remove.
Add-CacheAdmin, Remove-CacheAdmin
Applications can register specific users with the ScaleOut StateServer service through the ScaleOut StateServer pluggable authorization provider. Please see the ScaleOut StateServer main help file for more details. For ease of use, cache-administration is strictly based on system priviliges.
Set-CacheConfigurationLog
ScaleOut StateServer’s log file is located in the installation directory and named "soss_tlog0.txt" for easy access.
Get-CacheClusterHealth, Get-CacheClusterInfo, Test-CacheClusterConnection
The ScaleOut StateServer store’s overall health can be verified by issuing the Test-Store command.

Scenarios

First Host Install
For detailed installation instructions, visit the SOSS help file’s "Installation" sub-topic. The following quick start instructions will install the ScaleOut StateServer host on a single machine: Download the SOSS installer from the scaleoutsoftware.com website. Run the soss_setup64.msi installer to install ScaleOut StateServer on the system (or soss_setup32.msi for 32-bit machines). After the installation has completed, the SOSS service will start. After the SOSS service is installed, bind the service to a network interface with the Set-CacheHostConfig command, specifying the -NetInterface parameter. Example: "Set-CacheHostConfig -HostAddress 127.0.0.1 -NetInterface 10.0.4.0".
Start First Host
After the First Host Install, the state of the SOSS store is a single SOSS host that has been configured and is an inactive participant of an automatically created host group. The host needs to "Join" the host group to create a store and accept the workload. The Start-CacheHost command with the -HostAddress parameter will join the host to the SOSS store. Alternatively, the Start-CacheCluster command will join all inactive hosts to the SOSS store. Example: "Start-CacheHost -HostAddress 10.0.4.19" or "Start-CacheCluster".
Add Host
You can add a host by conducting the same steps in First Host Install. After the host is started and configured, it will automatically connect to the existing host group. After the host has connected, the Start-CacheHost command with the -HostAddress parameter will join the target host to the SOSS store. Alternatively, the Start-CacheCluster command will join all inactive hosts to the SOSS store. Example: "Start-CacheHost -HostAddress 10.0.4.20" or "Start-CacheCluster".
Remove Host
A host can be removed from the active store membership by issuing the Stop-CacheHost command with the -HostAddress parameter. Once the host is inactive, the service can be uninstalled to fully remove the host. For example, "Stop-CacheHost -HostAddress 10.0.4.19".
Start Cluster
If the SOSS store was restarted and multiple hosts need to join the store, the Start-CacheCluster command can be used to join all of them to the SOSS store. This command will cause all hosts to handle a portion of the application’s workload.
Stop Cluster
The Stop-CacheCluster command can be used to leave all inactive hosts from the ScaleOut StateServer store. This will stop the SOSS store from handling any user requests. For example, if the physical machines where the SOSS store is deployed need to be upgraded, the Stop-CacheCluster command can be used to make all hosts inactive. Once the hosts are inactive, any maintenance actions can take place.
Stop Host
If a host needs to be temporarily stopped for maintenance, the Stop-Cachehost command with the -HostAddress parameter can be used to leave the host from active host group. Once the host is inactive, the SOSS service process on that host can be stopped and any maintenance actions can take place.
Remove Cluster
The Stop-CacheCluster command will leave all active hosts from the ScaleOut StateServer store. After the SOSS store is inactive, the SOSS service on each host can be uninstalled.
Get Statistics
To review the overall store or specific host workload, use the Get-CacheStatistics to display workload statistics for the ScaleOut StateServer store. The -HostAddress parameter can optionally be specified to display workload statistics for a specific host. For example, "Get-CacheStatistics" or "Get-CacheStatistics -HostAddress 10.0.4.19".
Verify Cluster is Active
An administator can verify that the SOSS cluster is active by using the Get-CacheHost command. The Get-CacheHost command will display all of the hosts in the SOSS store and their respective status. The -HostAddress parameter can optional be specified to target a specific host. For example, "Get-CacheHost" or "Get-CacheHost -HostAddress 10.0.4.19".