Custom Resource Types

You may develop or encounter resources that require, or at least benefit from, specialized management routines not provided by any existing resource types. For those kinds of resources, you should create a custom resource type.

You can create a custom resource type to:

  • Support a new type of resource. For example, you could use a new type of storage device as the quorum resource by creating a custom resource type for the device. A new resource type can also be created to manage one or more cluster-aware applications.
  • Augment or replace one of the predefined resource types to add functionality. For example, you might have a set of cluster-unaware, mission-critical legacy applications that need more careful management than the Generic Application resource type can provide. You could create a Generic Application resource type wrapper to specifically handle the applications.

A custom resource type provides the following benefits:

  • It ensures that the resource has everything it needs before bringing the resource online.
  • It adjusts how the Cluster service checks the status and detects the failure of your resource.
  • It supports private properties and other parameters specific to the resource.
  • It implements graceful shutdown routines, allowing the resource to perform cleanup tasks before termination.
  • It enables event and error logging for the resource.
  • It maintains awareness of cluster events. For example, the Cluster service will notify a resource DLL if the Cluster service version has changed due to an upgrade or uninstall, but only a custom resource type designed to detect this notification can respond appropriately.

Together, the benefits of a custom resource type result in highly available cluster resources.

For information on how to generate, customize, and register a resource type, see Creating Resource Types.