Server

SQL Server Setup Failure Error Code 0x84B10001

Picture a scenario. You have a SQL Server failover cluster, with one or more nodes in the cluster, and the databases for your instances are presented via remote storage such as Fibre Channel or iSCSI.

When trying to install SQL 2008 R2 updates, including Cumulative Updates and Service Packs using the application .exe files downloaded from Microsoft (SQLServer2008R2SP1-KB528583-x64-ENU.exe  for example), the first thing that happens after launch is that the executable extracts the files required to drive, by default, with the largest percentage of free disk space.

Once the files have been extracted, the install wizard will start. After clicking Next, Next, Update through the wizard, the first thing the installer does is to take the SQL Server and the whole cluster resource group offline to allow it to be serviced. If the disk on which your SQL databases exist happens to be the drive with the most free space, the drive where the files where just extracted to, this drive will actually now be offline and will cause the installation to fail with the following error:

Cannot execute a program. The command being executed was “C:WINDOWSMicrosoft.NETFramework64v2.0.50727csc.exe” /noconfig /fullpaths @ “C:UsersUsernameAppDataLocalTemp6xb11xcu.cmdline”.

Error Code 0x84B10001.

The resolution to this problem is to bring the clustered disk resource online using the Failover Cluster Manager, and copy of the GUID folder which was generated by the extraction process to a local disk, or a remote storage disk which you are not servicing with the installer. I found that you need to copy the files to the local disk path before you click OK on the error message as once the update wizard terminates, it removes the temporary files.

Error 0x84B10001 can actually be initiated by other problems, however the knowledge base article at Microsoft Support advises that these other issues are resolved in a Pre-SP1 update for SQL Server 2008 R2.

Supported SQL Server Versions for System Center 2012

Following on from my post SQL Disk Space Error Installing SCAC 2012 I contacted Microsoft Premier Support to confirm the supported service pack levels for SQL Server 2008 because the release notes were very wooly as to whether Service Pack 3 was supported as well as the stated Service Pack 2.

Here is the response I recieved from them:

When I sent my request to the product group, the Group Program manager for SC 2012, replied back that those products listed are the only ones that were tested and thus fully supported.

It is entirely possible that you could run with SQL 2008 SP3 with no issues, but if a problem is encountered related to the databases we may request you relocate the database to one of the listed SQL platforms.

Until SQL Server 2008 with Service Pack 3 is recognised as tested and supported, I’d recommend that you just go with Service Pack 2 and install the latest Cumulative Update, which is currently Cumulative Update 9.

Deploying Server Core 2008 R2 for Hyper-V: Network Teaming

In our deployment, we are using servers with Intel network adapters, so the first thing is to install the manufacturer driver package because this enables the ANS (Advanced Network Services) functionality such as Teaming.

The new version of the Intel driver for Server 2008 R2 includes a command line utility for managing networks in Server Core known as ProsetCL, which operates with a syntax not too dissimilar from PowerShell.

The commands from ProsetCL I will be using in this post are:

  • ProSetCL Adapter_Enumerate
  • ProSetCL Team_Create

The full Intel documentation for ProsetCL can be found at http://download.intel.com/support/network/sb/prosetcl1.txt.

With all of the adapters nicely named from the previous post Deploying Server Core 2008 R2 for Hyper-V: Network Naming, this part is actually pretty easy.

The first step is to run an export of the current network adapters to a text file with ipconfig /all > C:Adapters.txt. Once you have this open the file with Notepad.exe C:Adapters.txt.

With the text file open, in the command line window, navigate to the directory C:Program FilesIntelDMIXCL which is where the ProsetCL utility is installed. You could register the directory into the PATH environment environment variable if it makes your life easier, but I didn’t do this personally.

Execute the command ProsetCL Adapter_Enumerate. This will output a list of the network adapters on the server into the command line. Sadly, the Intel utility and Windows order the network adapters differently which is why the text file is needed to marry the two up.

Once you have figured out which adapters need to be teamed together to form your various Client Access, Management, Heartbeat, CSV and Live Migration networks, you are ready to proceed.

You need to know at this point what type of teams you want to create also. The Intel adapters and utility support the following team types:

Team Type Team Function ProsetCL Shorthand
Switch Fault Tolerance Two adapters are connected to independent switches, with only one adapter active at any one time. In the event of a switch failure, the standby link will become active allowing communication to continue. SFT
Static Link Aggregation Two or more adapters are teamed in an always active manner. This mode allows you to achieve a theoretical speed equal to the sum of the speed of all the adapters in the team. To be used when LACP (Link Aggregation Control Protocol) is not available on your switch infrastructure. SLA
LACP (Link Aggregation Control Protocol) Similar to Static Link Aggregation, however the network adapter and the switch to which it is connected negotiate the aggregation using the LACP protocol. 802.3AD
Adapter Load Balancing Two or more adapters are teamed together, whereby the utility forces traffic to be routed out of each port in turn, equally sharing the load across the ports. ALB
Adapter Fault Tolerance Allows two or more ports to be connected in a team whereby the ports may have differing connection speeds (Eg. 1Gbps for the Primary Active adapter and 100Mbps for the Failover adapter). AFT

For full details and a more detailed explanation of each teaming mode, refer to the Intel ANS page at http://www.intel.com/support/network/sb/cs-009747.htm

Now that you know which adapters to be teamed together and which teaming mode you want to use for each, it is time to create the teams.

Enter the command as follows:

ProsetCL Team_Create 1,2 MAN_Team SFT

In this example, a team will be created using ports number one and two (the numbers as referenced by the previous Adapter_Enumerate command) with a team name of MAN_Team for the Management network using the Switch Fault Tolerance mode.

Following the command, you should receive a prompt that the team was successfully created. A new network adapter will now be present if you execute the ipconfig /all command named, sadly, Local Area Connection.

Assuming you named all your adapters from the default name using the previous post, the adapter will always be called Local Area Connection with no trailing numbers. If you run the netsh interface set interface name command after creating each team, it makes it much easier to name the teams as you go rather than doing them in a batch at the end.

In the next post, I will describe configuring the network binding order to ensure the correct cluster communication occurs out of the correct adapter.