Although all editions of Windows Server 2003 include Network Load Balancing, only the Enterprise Edition and Datacenter Edition include server clustering capability through the Cluster Service. The Cluster Service enables you to create highly available server clusters to provide failover capability for general services or for specific applications. The tool included with Windows Server 2003 that enables you to create and manage clusters is the Cluster Administrator.
Clustering is a relatively complex topic that requires an understanding of hardware requirements, shared storage, and other concepts. Explaining clustering in detail would take an article of its own, so I'll instead focus on Cluster Administrator, explaining the most important clustering concepts in relation to the console.
Installing Cluster Administrator
Setup installs the Cluster Administrator by default when you install Windows Server 2003 Enterprise Edition. You can also run the Cluster Administrator on a Windows XP workstation by installing the Windows Server 2003 Administration Pack, available from Microsoft's Web site. To install the Administration Pack on Windows XP, you must have previously installed Service Pack 1 or Hot Fix QFE Q329357 on the Windows XP Professional computer.
What the Cluster Administrator does
In a nutshell, the Cluster Administrator (Figure A) enables you to create and manage server clusters. Unlike many of the other tools in the Administrative Tools folder, the Cluster Administrator is a stand-alone application rather than a Microsoft Management Console (MMC) snap-in. However, it looks and functions much like a typical console. The left pane shows the cluster hierarchy and various objects in a cluster such as groups, nodes, resources, and so on. Clicking an object in the left pane displays the contents of the object in the right pane. For example, click the Active Resources object for a particular node, and the right pane lists the active resources for the node along with their state, owner, group, and other properties.
|Use the Cluster Administrator to manage clusters and cluster objects.|
The tasks you can accomplish with the Cluster Administrator include the following:
- Create a cluster
- Add and remove nodes in a cluster
- Manage and configure resource groups
- Manage and configure resources
- Bring resources online or take them offline
- Initiate failover of a resource
- Configure failover and failback properties for resource groups
- Move resources to other groups
- Move groups to other nodes
- Configure an application to run in a cluster
The Cluster Administrator includes four menus:
- File—Use the File menu to do most of the actual cluster-related tasks in the Cluster Administrator. The commands in the File menu vary according to the object you have selected in the left or right pane. In all cases, you can choose Open Connection from the File menu to open a connection to an existing cluster or to create a new cluster. In general, I recommend you right-click specific objects in the interface to work with the context menu for the selected object. Or, click an object to select it and then open the File menu to view the available commands.
- View—Use the View menu to turn on or off the toolbar and status bar, change icon display modes for the right pane (small icons, large icons, list, and details), and refresh the view.
- Window—This is a common menu that enables you to open other cluster windows, switch between them, and tile or cascade the windows.
- Help—Use this menu to view the Cluster Administrator Help content.
The Cluster Administrator also includes a toolbar with the following buttons:
- Open—Open a connection to an existing cluster, create a new cluster, or add nodes to a cluster.
- Bring Online—Available when an offline resource or group is selected; click to bring the selected item back online.
- Take Offline—Available when an online resource or group is selected; click to take the item offline.
- Delete—Click to delete the selected resource.
- Properties—Click to view the properties of the selected item.
- Refresh—Click to refresh the display.
- View Large Icons—Click to view the objects in the right pane as large icons.
- View Small Icons—Click to view the objects in the right pane as small icons.
- View List—Click to view the items in the right pane as a list.
- View Details—Click to view the items in the right pane as a detailed list.
The console tree
Although the Cluster Administrator isn't an MMC snap-in, it looks and functions like one, so I'll use the same terminology for it as for a typical snap-in and refer to the left pane as the console tree. In the console tree, you'll find each open cluster connection displayed in its own hierarchical tree. The tree comprises the following objects:
- Groups—This branch lists all of the resource groups in the cluster. A group is a collection of clustered resources that share common characteristics, such as failover and failback properties. Groups that are offline are represented by a red arrow icon beside the group name.
- Resources—This branch lists all resources in the cluster; resources that are offline are represented by a red arrow icon beside the resource name. Windows Server 2003 includes several standard cluster resource types, including Physical Disk, DHCP Service, Print Spooler, and File Server. When you create a cluster, for example, it contains a Cluster IP Address resource and Cluster Name resource at a minimum. It will likely contain other resources, such as a shared quorum disk. Developers can also create additional cluster resource types.
- Cluster Configuration—This branch contains resource types and associated resource DLLs, public network interfaces for the cluster, and all network interfaces. Sub-branches include Resource Types, which lists the available resource types and the resource DLLs associated with each type; Network, which lists the client-side network interfaces for each node in the cluster and status information about each; and Network Interfaces, which lists all network interfaces for each node in the cluster and status information about each.
- Node—Each node in the cluster is represented by its own branch in the console tree. The node's server name appears beside the node icon. Sub-branches include Active Groups, which lists all active groups hosted by the node and their status; Active Resources, which lists all active resources hosted by the node and their status; and Active Interfaces, which lists all active network interfaces for the node and their status.
The Details pane
The right pane, or Details pane, shows the contents of the item you have selected in the console tree. The information listed in the pane naturally depends on the type of object selected. For example, click the Cluster Group item in the console tree, and the right pane shows all of the resources in that group (Figure B).
Each cluster object offers certain properties. For example, right-click a group and choose Properties (or choose File, Properties) to display the property sheet for the group (Figure C).
|The property sheet for a cluster resource group|
This property sheet includes three tabs:
- General—This tab lists the group name, optional description, and preferred owners (nodes in the cluster that want to own the group). When a group comes back online, the group attempts to fail back to the preferred owner node.
- Failover—Use this tab to specify the Threshold and Period properties for the group. Threshold specifies the number of times the group can fail in the specified period (in hours). If this threshold is exceeded, the cluster will not try to bring the group back online.
- Failback—Use the Failback tab to specify what should happen when the group comes back online. Choose Prevent Failback to prevent the group from failing back to a failed node that returns to online status. Choose Allow Failback to enable failback, then specify that the failback will either occur immediately or within a specified span of hours.
The property sheet for a resource (Figure D) includes four tabs:
- General—This tab includes the resource name, an optional description, and nodes that can host the resource. You can click the Modify button to change the possible owners lists, adding or removing nodes. Choose the option Run This Resource In A Separate Resource Monitor if you want to run the resource DLL separate from other cluster service resources. Doing so can avoid conflicts between DLLs and when debugging resources.
- Dependencies—One resource can be dependent on one or more other resources. For example, you would make a File Share resource dependent on the underlying Physical Disk resource where the share is hosted. The Dependencies tab lists the resources that the Cluster Service must bring online before bringing up the selected resource. Click Modify to open the Modify Dependencies dialog box (Figure E) to add or remove dependencies.
- Advanced—Use the Advanced tab (Figure F) to configure restart, polling, and timeout properties for the resource. Choose Affect The Group if you want the group to fail over when the resource fails. The Threshold and Period values determine how many times the Cluster Service will attempt to restart the resource in a specified period before the group fails. Use the Looks Alive and Is Alive parameters to specify how often the Cluster Service polls the resource to determine if it is up. Use the Pending Timeout value to specify the amount of time a resource can be in a pending state before the Cluster Service fails the resource.
- Parameters—This tab (Figure G) contains resource-specific parameters for the resource. What the tab displays depends on the resource type. With the File Share resource, for example, the tab displays the share name, path, optional comment, user limit, and buttons to set permissions, the share type, and offline caching. An IP Address resource displays the IP address, subnet mask, network segment, and whether NetBIOS will be enabled on it. Other resources present options specific to that resource type.
|The property sheet for a cluster resource|
|Add or remove resource dependencies with the Modify Dependencies dialog box.|
|Configure restart, polling, and timeout properties on the Advanced tab.|
|Configure resource-specific settings on the Parameters tab.|
Working with wizards
The Cluster Administrator provides some wizards that help you accomplish common tasks such as setting up a cluster, adding nodes, adding groups, and adding resources. I won't cover each in step-by-step fashion, but instead explain how to start the wizard and what information you'll need in each.
Creating a cluster
To start the New Server Cluster Wizard (Figure H), choose File | Open Connection to open the Open Connection To Cluster dialog box. Choose Create A New Cluster from the Action dialog box and click OK.
|The New Server Cluster Wizard|
The wizard prompts for the following information:
Domain and cluster name
All of the servers in the cluster must reside in the same domain. The servers can be either member servers or domain controllers, primarily because the Cluster Service must run in the security context of a domain account. In general, using member servers rather than domain controllers will provide better performance. Specify the domain in which the cluster will reside and a name for the cluster.
Specify the computer that will serve as the first node in the cluster.
You can allow the wizard to configure all cluster options or specify many of the options yourself. Even if you allow the wizard to configure the cluster, you can still choose a different quorum disk or type before creating the cluster.
Cluster IP address
Specify the IP address that the cluster tools will use to connect to the cluster. This is the IP address to which the cluster name will resolve. It should be a unique IP address not already in use by any of the servers in the cluster or by other computers on the network.
Cluster Service credentials
Specify the account under which the Cluster Service will run. This can be a regular domain account. With a member server, the wizard will grant the necessary privileges to the account, but if you are clustering a domain controller, keep in mind that the account must have the right to log on locally to domain controllers. Generally, this means you will have to manually assign that privilege through the Default Domain Controllers Policy. The Cluster Service account requires the following privileges:
- Act as part of the operating system
- Adjust memory quotas for a process
- Back up files and directories
- Increase scheduling priority
- Log on as a service
- Restore files and directories
In addition, the account you select must have write permission to the root folder of all cluster disks. If you are just experimenting with clustering in a lab setting, you can use the Administrator account for the Cluster Service. In a real cluster, however, you should create an account specifically for the Cluster Service and set its password to not expire. If this violates your password policies, you will have to periodically reset the account's password. Unlike in Windows 2000, however, you can do so transparently without taking down cluster nodes.
You can choose from three quorum types:
- Local Quorum—This option stores the quorum database on the server's local hard drive. The wizard chooses this option if it does not detect a shared disk subsystem. A cluster that uses a Local Quorum can contain only a single node and offer no failover capability. However, it can be useful for experimenting with clustering and testing clustered resources and applications.
- Drive x—Each shared drive is listed in the drop-down list. These drives must be connected to the other nodes through shared SCSI or Fibre Channel devices. Fibre Channel is required if the cluster will contain more than two nodes or if the servers are running the 64-bit version of Windows Server 2003. Approximately 500 MB is sufficient for the quorum disk, and the drive should be used exclusively for the cluster database and quorum log. Dynamic disks, software RAID, GPT disks, and volumes are not supported for shared cluster storage.
- Majority Node Set—In this configuration, each node in the cluster stores its own copy of the cluster configuration data, typically on a drive local to each node. The quorum traffic travels between nodes over SMB file shares. This model offers the advantage of distributing the quorum data across multiple devices so that if one local quorum disk becomes corrupted, the cluster can still continue to operate. However, in a majority node set quorum, if more than half of the nodes fail, the cluster will lose quorum and fail. In a single quorum device model, the quorum will not fail even if only one node remains.
Adding nodes to the cluster
Unless you are creating a one-node cluster for testing or development, the next step is to add other nodes to the cluster. To do so, open the cluster in the Cluster Administrator and choose File | New, then Node. You can also right-click almost anywhere in the console and choose New, then Node from the context menu. Either action starts the Add Nodes Wizard. The wizard prompts for the following information:
- Nodes—Enter or browse the AD for the computers that will be added as cluster nodes.
- Cluster Service credentials—The account is already entered; you must specify the password and domain.
The additional nodes appear in the Cluster Administrator after the wizard finishes adding them. Each node appears under its own branch in the console tree.
To add a resource, open the Cluster Administrator and expand the node where the resource group resides. Right-click the target group and choose New | Resource or choose File | New | Resource to start the New Resource Wizard (Figure I).
|The New Resource Wizard|
The wizard prompts for the following information:
- Name—This is the name by which the resource appears in the Cluster Administrator.
- Description—This is an optional description for the resource.
- Resource Type—Choose the resource type from a drop-down list of available resource types.
- Group—Choose the group in which the resource will reside.
- Run This Process In A Separate Resource Monitor—Run the resource DLL separate from other cluster service resources.
- Possible Owners—Specify nodes in the cluster that can host the resource.
- Dependencies—Specify other resources that the Cluster Service must start prior to starting the selected resource.
- Resource-specific properties—These properties vary according to the resource type.
To add a resource group, right-click the target node and choose New | Group or choose File | New | Group to start the New Group Wizard.
The wizard prompts for the following information:
- Name—This is the name of the group as it appears in the Cluster Administrator.
- Description—This is an optional description for the group.
- Preferred Owners—Choose the preferred nodes for hosting the group. After you add the nodes to the list, you can change the priority order of the selected nodes.
Now that you are familiar with the Cluster Administrator, you're ready to start creating and managing clusters. Table A lists common cluster administration tasks and tells how to accomplish them with the Cluster Administrator.