Wednesday, November 30, 2011

Disable iSCSI Networks for DAGs


If you have Exchange 2010 DAGs and you use iSCSI to present those servers with storage for the databases, you must ensure the DAG does not use this network.

When a DAG is configured, it tries to discover all networks configured on the server and configure them to be used by the underlying cluster, which includes any iSCSI networks... If you have a problem with your MAPI and Replication networks, Exchange will try to use the iSCSI network for normal DAG and user traffic which, obviously, will not work and generate loads of errors (such as cluster.exe trying to communicate with other nodes over this network).

As a best practice, iSCSI storage should use dedicated networks and network adapters. These networks shouldn't be managed by the DAG or its cluster, or used as DAG networks (MAPI or replication).


You can check what networks your DAG is currently using by running the following cmdlet in EMS:
Get-DatabaseAvailabilityGroup -Status | Select Name, NetworkNames

or get a more detailed view with which networks were detected, what are they used for and if they are excluded from the DAG:
Get-DatabaseAvailabilityGroupNetwork -Server MBX1 | Select Name, MapiAccessEnabled, ReplicationEnabled, IgnoreNetwork


Disabling it/them, is a two-step process:

1. DAG

Configure the DAG to ignore your iSCSI networks (replace with the correct name):
Set-DatabaseAvailabilityGroupNetwork <MbxDAG1\iSCSInetwork> –ReplicationEnabled $False –IgnoreNetwork $True


2. Cluster

To disable the network for use by the cluster you can use the GUI. However, there was a bug in a certain Windows 2008 R2 version (apologies, not sure which one) where you would select the following option:



You would then click ok but when you went back to the same screen, the Allow cluster network communication on this network was still selected...


So, the best option is to use the Cluster Network command. You can check what the network is currently configured for:




  • Role 0 (0x0) tells the cluster not to use the network;
  • Role 1 (0x1) tells the cluster that this is a private network;
  • Role 3 (0x3) tells the cluster that this is a public network.


And set the Role to 0:
Cluster network ClusterNetworkName /prop Role=0

To check if the command worked properly, run the Cluster network ClusterNetworkName /prop again.


After disabling all iSCSI networks for use by the DAG and its cluster, you can optionally force network discovery by running the Set-DatabaseAvailabilityGroup cmdlet with the DiscoverNetworks parameter.

Hope this helps!

No comments:

Post a Comment