Installing and Configuring BizTalk Server and Hyper-V
Before installing Hyper-V, follow the instructions available on the “How to Install Windows Server 2008 Hyper-V” page at http://go.microsoft.com/fwlink/?LinkId=119204.
“The Performance Tuning Guidelines for Windows Server 2008” document provides details on tuning Windows Server 2008 and includes a section specifically focused on Hyper-V. The document is available at http://go.microsoft.com/fwlink/?LinkId=121171.
Hyper-V Platform Prerequisites
Hyper-V is a server role available for 64-bit, x64-based editions of Windows Server 2008. Additionally, the physical hardware must support hardware assisted virtualization. This means the processor must be compatible with Intel VT or AMD Virtualization (AMD-V) technology, and the system BIOS must support Data Execution Prevention (DEP). DEP must be enabled.
Determining Hardware Requirements
Due to the demands of server consolidation, Hyper-V servers tend to consume more CPU and memory, and require greater disk I/O bandwidth than physical servers with comparable computing loads. In order to deploy an environment that will meet expectations, consider the factors below to determine the exact hardware requirements of your server.
Storage Configuration Options
The storage hardware should provide sufficient I/O bandwidth and storage capacity to meet the current and future needs of the virtual machines that you plan to host. There is a trade-off when choosing storage configuration for Hyper-V between capacity usage and the performance it can provide.
When planning storage configuration, consider the requirements of the environment you are provisioning. The requirements for production, pre-production, and development environments may differ considerably.
If you are deploying a production BizTalk Server environment on Hyper-V, performance will be a key requirement. To avoid Disk I/O contention on busy production systems, allocate a separate physical drive for each VHD file you use.
Typically, development environments do not have stringent performance requirements since maximizing resource utilization tends to be the main priority. Therefore, in this case, consider hosting multiple VHD files on a single drive.
Hyper-V supports several different types of storage disk options. Each of the storage options can be attached via an IDE or SCSI controller to the machine. The best level of performance is provided using pass-through disk; the next best level of performance is obtained by using fixed VHD disks. A potential benefit of using the SCSI controller over the IDE controller is that it will only work correctly if the correct versions of the operating system integration components have been installed on the guest virtual machine.
For intensive read-write activities, such as hosting SQL Server databases, make use of the pass-through disk option. The pass-through option permits the virtual machine to have direct access to the physical disk and it bypasses the NTFS file system in the root partition.
The following table summarizes the advantages and disadvantages of each storage option.
|Hyper-V Storage Type||Pros||Cons||Considerations for BizTalk Server|
Fixed size VHD
Performs better than a dynamic VHD because the VHD file is created at its maximum possible size when it is created on the physical hard drive.
This makes fragmentation less likely and, therefore, reduces the scenario where a single I/O is split into multiple I/O’s. This has the lowest CPU overhead of the VHD types because reads and writes do not need to look up the mapping of the block.
Requires allocation of the full amount of disk space up-front.
Use for operating system volumes on BizTalk Server and SQL.
In BizTalk Server, if streaming large messages to disk or if local file receive locations are used, consider using pass-through disks mounted as a separate volume so that disk I/O does not become a concern.
If performance is a concern do not use this disk configuration for the volumes that SQL Server uses to store the BizTalk Server databases.
Placing these files on separate physical disks will increase performance.
Dynamically Expanding VHD
The size of the VHD file increases to the size specified when creating the disk, as more data is stored on the virtual machine itself. This makes it possible to make the most efficient use of storage.
Does not perform as well as a fixed size VHD. This is because the blocks in the disk start as zeroed blocks but are not backed by any actual space in the file. Reads from such blocks return a block of zeros. When a block is first written to, the virtualization stack must allocate space within the VHD file for the block and then update the metadata. In addition to this every time an existing block is referenced the block mapping must be looked up in the metadata. This increases the number of necessary disk I/Os for read and write activities and causes an increased CPU usage.
The dynamic growth also requires that the server administrator monitor disk capacity to ensure that there is sufficient disk storage as the storage requirements increase.
Does not perform as well as a fixed size VHD.
If performance is not a concern, for instance in a developer environment this may be a suitable option for the operating system hard drives.
Causes additional CPU overhead due to block mapping lookup.
This a parent-child configuration where this type of drive stores all changes relative to a base VHD. Therefore only the blocks which are different from the parent need to be stored in the child differencing VHD.
Performance can degrade because read/writes need to access the fixed/dynamic parent VHD as well as the differencing disk. This adds increased CPU utilization and disk I/O overhead.
A large amount of machine specific configuration is required for BizTalk Server installations; therefore, the child VHD files could grow substantially which would minimize the benefits of using this disk configuration. Reading from multiple VHD’s in this scenario incurs I/O and CPU overhead.
These are physical disks which are set to offline in the root partition and enable Hyper-V to have exclusive read-write access to the physical disk.
Requires a fully dedicated disk in order for it to be allocated to a virtual machine.
The physical disk can be more difficult to move between machines than VHD files.
If your SQL Server instance is running on a Hyper-V, consider using pass-through disks for the BizTalk Server database volumes.
If you are hosting local file receive locations on BizTalk Server or streaming large messages to disk during processing, consider using pass-through disks to take advantage of the improved disk I/O performance.
The SCSI controller should be used for pass-through disks. The SCSI controller will only work if the correct version of the operating system integration components are installed. Therefore, this provides a validation method and ensures optimal performance gains from the pass-through disks.
BizTalk Server tends to exhibit high network utilization. Therefore, when network performance is an issue, consider allocating a separate physical network card for each virtual machine.
When configuring a virtual machine, ensure that you use the Network Adapter instead of the Legacy Network Adapter. The legacy network adapter is intended for operating systems that do not support integration components.
To measure network performance use the “\Network Interface \Bytes Total/sec” performance monitor counter on the host operating system to measure overall performance of the network card. If you identify a physical network as being busy use the “\Hyper-V Virtual Network Adapter (*)\Bytes/sec” counter on the guest operating system to identify which virtual machine network adapter is generating the load.
Hyper-V supports different numbers of virtual processors for different guest operating systems, this is summarized in the table below. To gain the maximum performance currently available for BizTalk Server 2006 R2, install it on a Windows 2003 64-bit or 32-bit edition guest operating system, both of which support two virtual processors per virtual machine.
Configure a 1-1 mapping between virtual and physical processors to prevent excessive context switching which results in performance degradation.
The “\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time” Performance Monitor counter measures the overall resource utilization of all guest machines and the hypervisor on the physical server. If this value is above 90%, the server is running at maximum capacity; allocating additional virtual processors to the server in this scenario can degrade overall system performance and should be avoided. For further details on using the Hyper-V performance counters, see the Evaluating BizTalk Server Performance on Hyper-V section of this guide.
|Guest Operating System||Virtual Processor Limit|
Windows Server 2008, all editions
Windows Server 2003, all editions
Windows Vista with Service Pack 1 (SP1)
Windows XP with Service Pack 3 (SP3)
|For more information about the guest operating systems that are supported on Hyper-V see http://go.microsoft.com/fwlink/?LinkID=118347.|
The physical server requires enough memory for the root partition and any virtual machines running on the server. During testing, a minimum of 2GB of memory was allocated to the root partition and the Memory/Available Mbytes performance monitor counter was monitored to ensure no memory pressure was experienced.
The amount of memory that should be allocated to each virtual machine in a BizTalk Server environment depends on the workload and type of processing that will be performed. There are many factors that affect memory requirements of a BizTalk Server including:
Size of messages you are processing
Throughput of messages
Number of BizTalk hosts that you plan to run within the virtual machine
For a comprehensive list of factors that affect memory, see “The Performance Factors” section of the BizTalk Server Performance Optimizations Guide at http://go.microsoft.com/fwlink/?LinkId=122587.
Proactively monitor the Memory/Available Mbytes counter from within each virtual machine and the root partition itself. The following guidelines from Measuring Performance on Hyper-V should be used to determine whether there is enough free physical memory for the virtual machine and for the root partition:
- 50% of free memory available or more = Healthy
- 25% of free memory available = Monitor
- 10% of free memory available = Warning
- Less than 5% of free memory available = Critical, performance will be adversely affected
Choosing Root Operating System Version
Hyper-V is supported on a server core as well as a full installation of 64-bit Windows Server 2008. If you want to minimize the overhead of the root partition, server core can be used. The Hyper-V role can be managed remotely from an existing Hyper-V Manager MMC on a different system. Server core provides a smaller disk and memory profile, therefore, leaving more resources available for virtual machines.
If you choose to use a full installation of Windows Server 2008, ensure that the root partition is dedicated only to the Hyper-V server role. Running additional server roles will consume memory, disk, processor and network resources and will degrade performance.
Creating Your Virtual Machines
After you have installed and configured the Hyper-V server role, you need to create the virtual machines. Before doing this, it is useful to answer the following questions:
- What edition of Windows Server 2008 will I use to run Hyper-V?
- What storage configuration will I use?
- How many virtual processors does the guest operating system support?
- How much memory will be allocated to the virtual machine?
- How many virtual machines can I run on my Hyper-V Server?
- How will I install the operating system onto the machine?
Steps 2-4 in the “Step-by-Step Guide to Getting Started with Hyper-V” guide provide a full walk-through of how to create and configure virtual machines in Hyper-V. This guide is available at http://go.microsoft.com/fwlink/?LinkId=122588.
Installing the Base Operating System
All the options available for a physical server installation are available in Hyper-V. A bootable CD/DVD-ROM media or an ISO image can be used to perform a manual installation. A network installation can be performed if the virtual machine has been configured with a network adapter connected to the same network as an image server.
|Whichever installation method is chosen, for performance reasons it is critical the operating system integration components be installed for each virtual machine running under Hyper-V. The integration components provide a set of drivers and services that enable the guest machine to perform by using synthetic devices. Synthetic devices avoid the need for emulated devices, which are used on operating systems that do not support integration components. Emulated devices incur greater system overhead compared to synthetic devices.|
To install and configure the machines used in this lab, an initial base image was created on a fixed size VHD. This involved a manual installation of Windows Server 2003 R2 64-bit Enterprise Edition with Service Pack 2. All necessary security updates were then applied to the server and the latest version of the operating system integration components were installed. To create an operating system image VHD, the SP2 version of the System Preparation tool (SysPrep) was then used to remove any machine-specific information. Sysprep is available at http://support.microsoft.com/?kbid=926028.
When installing BizTalk Server in a virtual environment, the same practices should be followed as in a physical environment. The following resources should be utilized when installing and configuration BizTalk Server:
- The BizTalk Server 2006 R2 installation and upgrade guides provide full details of how to configure BizTalk Server in a single and multiple server environment. The installation guides are available at http://go.microsoft.com/fwlink/?LinkId=81041.
- The Microsoft BizTalk Server Operations Guide provides Operational Readiness Checklists that can be used to ensure that all necessary prerequisite software has been installed. Checklists that provide BizTalk Server specific configuration information are provided for all the components required as part of a BizTalk Server stack including the operating system, IIS, and SQL Server. In addition, guidance is provided on how to configure BizTalk Server for high availability. These checklists are available at http://go.microsoft.com/fwlink/?LinkId=122577.
- The BizTalk Best Practice Analyzer (BPA) v1.1 is used to perform configuration level verification of your BizTalk Server installation. BPA is available at http://go.microsoft.com/fwlink/?LinkId=122578.
- The Optimizing Performance section of the Microsoft BizTalk Server Performance Optimization Guide should also be followed in order to tune the components of the BizTalk stack. The Microsoft BizTalk Server Performance Optimization Guide is available at http://go.microsoft.com/fwlink/?LinkId=122579.