Tuesday, August 26, 2008

Best Practices and Guidelines for Hyper-V with Exchange Server 2007 SP1

Today we will talk about the new Hyper-V technology support for the Messaging virtualization from Microsoft, Microsoft released its hardware virtualization software a while ago and eventually the Exchange Server 2007 SP1 is supported in the production environment, in able to make it supported, certain aspects and conditions must be met otherwise you will put yourself in unsupported situation, in this document we will refer to the Windows Server 2008 that will hold the Hyper-V component and will host the virtual servers as the Root, the Virtual Machine that will be running on the Hyper-V are called the Guest, so let's start..

First let's list some of the supported software to fully function in the production over a virtualized environment, below are the list with the latest updates on 26th August 2008:

  • Microsoft Application Virtualization (App-V)
  • Microsoft BizTalk Server
  • Microsoft Commerce Server
  • Microsoft Dynamics AX
  • Microsoft Dynamics CRM
  • Microsoft Dynamics NAV
  • Microsoft Exchange Server (Except UM role)
  • Microsoft Forefront Client Security
  • Microsoft Intelligent Application Gateway (IAG)
  • Microsoft Forefront Security for Exchange (FSE)
  • Microsoft Forefront Security for SharePoint (FSP)
  • Microsoft Host Integration Server
  • Microsoft Internet Security and Acceleration (ISA) Server
  • Microsoft Office Groove Server
  • Microsoft Office PerformancePoint Server
  • Microsoft Office Project Server
  • Microsoft Office SharePoint Server and Windows SharePoint Services
  • Microsoft Operations Manager (MOM) 2005
  • Microsoft Search Server
  • Microsoft SQL Server 2008
  • Microsoft System Center Configuration Manager
  • Microsoft System Center Data Protection Manager
  • Microsoft System Center Essentials
  • Microsoft System Center Operations Manager
  • Microsoft System Center Virtual Machine Manager
  • Microsoft Systems Management Server (SMS)
  • Microsoft Visual Studio Team System
  • Microsoft Windows HPC Server 2008
  • Windows Server 2003 Web Edition
  • Microsoft Windows Server Update Services (WSUS)
  • Windows Web Server 2008

Conditions to support Exchange Server 2007:

  1. In Microsoft virtualization environment, it must be Windows Server 2008 Hyper-V x64 (Not Virtual Server NOT virtual PC)
  2. The Virtualization software other than Microsoft Hyper-V must pass the Server Virtualization Validation Program SVVP (at this moment only Hyper-V passed this test)
  3. Exchange Server 2007 must be with SP1 or later
  4. Exchange Server 2007 with SP1 must be installed on a guest operating system running Windows Server 2008 x64
  5. Support high availability and Exchange clustering Local Continuous Replication, Cluster Continuous Replication, Single Copy Cluster and Standby Continuous Replication. However when using Quick Migration with Hyper-V the CCR and SCC will not be supported.
  6. Exchange Server 2007 installed without the Unified Messaging Server role, the UM server role is not yet supported
  7. If you will use virtual hard disks, Only Fixed Size Disks are supported. Differencing, dynamically expanded or any virtual storage are not supported, ONLY FIXED SIZE HARD DISK is supported as virtual disk type
  8. The Root Server (the one that run the Hyper-V components) must be dedicated server for that purpose, it's not supported to install any other software on the Root server, it should function only as Hyper-V Server
  9. Hyper-V include a feature called snapshots that you can revert the system back to this captured state, but it's not supported with Exchange Server 2007 Virtual Guest as the Snapshot is not Exchange-Aware
  10. The virtual processor-to-logical processor mapping must not exceed 2:1 otherwise it's not supported, that's mean if you have server with two processors with dual core, that's make total of 4 logical processors, the maximum supported is 2:1 which is 8 CPUs in this case, note that these 8 CPUs is the maximum allowed per ALL guests on the same root
  11. hardware-based VSS solutions is not supported to back up virtualized Exchange Server



Guidelines, Recommendations and best practices:

  1. Use pass-through SCSI storage disks or internet iSCSI storage for better performance
  2. Before creating virtual disk, it's recommended to start disk defragment on the root server to reduce disk fragments
  3. Install the integration services on the guest operating system
  4. Ensure that an enforced Data Execution Prevention (DEP) must be available and enabled on the hardware level
  5. Put in mind that if you will use Server 2008 datacenter Edition, you physical memory can support up to 1 TERABYTE of memory, with enterprise edition you limited to 64 GB, and for standard only 32 GB of memory
  6. Put on mind that Hyper-V is supported on physical computers with up to 16 logical processors.
  7. Also put in the same mind that you can use TPM chip with Bit Locker ® security feature of Windows Server 2008 to secure your virtual hard disks
  8. The virtual fixed size hard disk is limited in size to 2040 Gigabyte of disk space, while the pass-through physical disks are not limited to a space
  9. You can take up to 50 snapshots of per guest, it's supported only to make your backup solution for a recovery of Exchange disasters
  10. When allocating the number of virtual processors don't forget the root server share of the
  11. Use Windows System Resource Manager WSRM to control the resources utilization
  12. When calculating the total number of virtual processors required by the root machine, you must also account for both I/O and operating system requirements. In most cases, the equivalent number of virtual processors required in the root operating system for a system hosting Exchange virtual machines is 2. This value should be used as a baseline for the root operating system virtual processor when calculating the overall ratio of physical cores to virtual processors. If performance monitoring of the root operating system indicates you are consuming more processor utilization than the equivalent of 2 processors, you should reduce the count of virtual processors assigned to guest virtual machines accordingly and verify that the overall virtual processor-to-physical core ratio is no greater than 2:1.
  13. The Exchange server guest machine's storage and network design requires additional considerations for the root machine, specifically, the impact to the CPUs on the root machine. In some hardware virtualization environments (such as Hyper-V), all I/O requests that are made by guest virtual machines are serviced through the root machine. In these environments, we recommend that no other I/O intensive applications (for example, Microsoft SQL Server) be deployed on guest machines that are hosted on the same root machine as Exchange server guest machines.
  14. Use multiple network adapters for network-intensive VM workloads, and management
  15. Ensure your storage hardware has I/O bandwidth and capacity to meet current and future needs of the VMs.
  16. Consider Placing VMs with highly disk-intensive workloads on different physical disks will likely improve overall performance
  17. If using clustering, make one Exchange cluster node on one Root, and the other node on another Root to truly achieve high availability


Sunday, August 10, 2008

Mailbox Size Quota are not applied on the user mailbox in Exchange 2007


From time to time, policies changes, and special configuration is requested to add one GB to the executive mailbox size for a reason or another. sometimes we experience and incident that when we change the default quota for a mailbox to higher or lower size, it's not reflected on the outlook client even after restarting outlook many times, it still only feel the old value, meanwhile if we wait for couple of hours, or restart the information store service, you will find that the new configuration is applied immediately… why this behavior?

Well, first it's by design. As when the MSExchangeIS (information store)service starts it read the mailbox configuration and cache this configuration, and the MSExchangeIS service use this cached information to enforce the mailbox size. By default, there are two ways to refresh this cached configuration:

  1. Wait for two hours and that will trigger the refresh interval then it will reread the new configuration
  2. Restart the MSExchangeIS service and it will reread the new configuration

Well, that's not practical, our CEO need the new configuration now, otherwise he won't be able to send or receive mails, (or we will get fired) so what's our third option? We need a quick easy without downtime option… do we have such option? Yes we have but this will include only one time restart for the MSExchangeIS service to take the new configuration after the registry modification..

The safe way to do so (if you do it right) is to change the default refresh interval for the mailbox information cache by a regkey called Reread Logon Quotas Interval this value have some dependencies, so if you gonna change it you have to change two other values as well including the DSAccess (part of MAD.EXE, remember it?)

Make sure you backup the registry first, and do the following steps: (please guys, we are talking about MSExchangeIS service, so which server we will do that on?? Choose the right answer: 1) Mailbox server role, 2) the exchange server that hold the mailboxes, 3) the Exchange 2007 server that's NOT CAS, HUB, UM nor edge?)

yeeeeah james you right, the mailbox server role that we will do the following action on, because MSExchangeIS is the service that's responsible for the Mailbox Database activities, and it's only installed on this server role.. this configuration will be configured in multiple steps bulk to get the same final configuration, as I said it have some dependencies..

Part A of configuration:

  1. Open RUN – type regedit
  2. Navigate to this location HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
  3. Right click the ParametersSystem container and choose NEW then choose DWORD value and name it Reread Logon Quotas Interval
  4. Right click the value you just created and choose Modify
  5. Ensure that the base is Decimal, and add the value you want to configure in seconds, e.g. for 20 minutes enter there a value of 1200

Part B of configuration:

  1. Open RUN – type regedit
  2. Navigate to this location HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
  3. Right click the ParametersSystem container and choose NEW then choose DWORD value and name it Mailbox Cache Age Limit
  4. Right click the value you just created and choose Modify
  5. Ensure that the base is Decimal, and add the value you want to configure in Minutes, e.g. for 1 hour enter there a value of 60

Part C of configuration:

  1. Open RUN – type regedit
  2. Navigate to this location HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchange ADAccess\Instance0
  3. If the location is not present, right click the MSExchange ADAccess and choose new KEY and name it Instance0
  4. Right click the Instance0 container and choose NEW then choose DWORD value and name it CacheTTLUser
  5. Right click the value you just created and choose Modify
  6. Ensure that the base is Decimal, and add the value you want to configure in Seconds, e.g. for 20 Minutes enter there a value of 1200

Close regedit, and restart the information store service, from now on the cached information will be kept only for the configured amount of time

Regards

Mohammed Saad