Fotolia
Thorough Exchange Server testing regimen eliminates doubt
Don't assume your Exchange 2016 implementation will work because you bought the right gear. Follow these pointers to execute a successful Exchange 2016 migration project.
You've done your due diligence and bought the right hardware for your move to Exchange Server 2016. After you put all the pieces together, then it's time for a thorough Exchange Server testing regimen.
A few factors have many organizations that use on-premises Exchange planning a move to Exchange Server 2016. Exchange Server 2010 has less than two years before it leaves extended support. Exchange Server 2013 left mainstream support this year.
After the decision to move to Exchange 2016, the next stage of planning process should have involved using the Exchange Server role requirements calculator to size your deployment, creating a suitable design, then purchasing and installing the hardware to support your implementation. But this is only part of the overall effort.
There are vital areas you must test in the time after implementing Exchange Server 2016 and before migrating mailboxes. As part of the overall Exchange Server testing strategy, you should check the functionality of the storage infrastructure next.
Using Jetstress to test storage performance
Whether you run Exchange Server on physical hardware and follow Microsoft's preferred architecture or you use virtual infrastructure, make sure your storage meets the IOPS requirements outlined in the Exchange Server role requirements calculator.
The calculator recommends the RAM and storage needed. The organization determines what type of disks to purchase and their size. However, it's possible to buy the wrong type of disk controller or to receive a faulty drive. Eliminate any doubt about the hardware and run tests on the storage.
For this segment of Exchange Server testing, use Jetstress to generate a workload with the same Exchange Server 2016 binaries, database and log file configuration used in the Exchange Server deployment. Microsoft also supplies a Jetstress field guide to follow when planning your storage test. Microsoft developed the instructions for Exchange Server 2013, but it is supported and applicable to Exchange Server 2016.
Some might say this test is a waste of time if you purchased correctly sized hardware, but it's better to get confirmation. Jetstress can fail the storage hardware due to a configuration error or some other reason, which may involve extensive troubleshooting.
After you implement Exchange Server 2016
After the servers pass the Jetstress test, start your deployment of Exchange Server 2016. What is right for your organization will vary, but in most circumstances, admins implement a database availability group (DAG) with the Exchange mailbox servers along with the appropriate load balancing and, where appropriate, backup software.
What Exchange admins need is a checklist to verify all the settings before you go live. Although every Exchange deployment differs slightly, there are key areas worth checking to avoid any surprises.
Set up Exchange for basic tests
You should test the Exchange 2016 infrastructure at a high level to verify its status. At this point, it's unlikely you have migrated the client access role across, so you might need to reconfigure the local host files on your test clients to run these trials.
Area |
Test activity |
User accounts |
Create test mailboxes in each data center on Exchange 2016. |
User accounts |
Create test mailboxes in each DAG on Exchange 2010. |
Client |
Configure host file records to simulate connectivity to Exchange 2016 load balancers. |
OWA 2016 |
Test Outlook on the web/Outlook Web App (OWA) login functionality for an Exchange 2016 user in each data center. |
OWA 2016 |
Test reading, opening and replying to emails for an Exchange 2016 user in each data center. |
OWA 2016 |
Test creating, updating and modifying a calendar item for an Exchange 2016 user in each data center. |
OWA 2016 |
Test creating, updating and modifying a contact item for an Exchange 2016 user in each data center. |
OWA 2016 |
Test disabling user access to OWA for security purposes. |
|
Test mail flow between Exchange 2016 users in each data center. |
|
Test mail flow to an Exchange 2016 user in each data center from Exchange 2010 in each data center. |
|
Test mail flow to an Exchange 2016 user in each data center from an external source. |
|
Test mail flow from an Exchange 2016 user to an Exchange 2010 user. |
|
Test external out-of-office settings of an Exchange 2016 user from an external source. |
Federation |
Test availability of an Exchange 2016 mailbox from an external partner. |
Federation |
Test availability of an external partner's mailbox from Exchange 2016. |
Exchange general |
Test mailbox move functionality from Exchange 2010 to Exchange 2016 in each DAG. |
Exchange general |
Test mailbox move functionality from Exchange 2016 to Exchange 2010 in each DAG. |
Testing each database availability group
After you complete these basic checks, you should run tests with the following PowerShell cmdlets against each DAG to check mailbox services.
Area |
Test activity |
Service health |
Use Test-ServiceHealth to verify services are running. |
Service health |
Use Get-HealthReport to check if each server is healthy. |
Mail flow |
Use Test-Mailflow to test the mail flow against each server. |
Mail flow |
Use Test-SmtpConnectivity to test connectivity to each receive connector. |
Mailbox |
Use Test-ReplicationHealth to validate the DAG continuous replication status. |
Mailbox |
Use Get-MailboxDatabaseCopyStatus to view the health of the database copies within the DAG. |
Mailbox |
Use Test-MapiConnectivity to verify MAPI and LDAP work with a user's login. |
Mailbox |
Use Test-AssistantHealth to check that the Mailbox Assistants service is running and healthy against each server. |
Client access |
Use the Microsoft Connectivity Analyzer to execute the Outlook connectivity tests. |
Client access |
Use Test-WebServicesConnectivity to test client connectivity to Exchange Web Services virtual directories against each server. |
Client access |
Use Test-ActiveSyncConnectivity to simulate a full synchronization with a mobile device. |
Client access |
Use a browser to log on to the Exchange Admin Center to verify functionality of all Exchange 2016 servers. |
Client access |
Use Test-MRSHealth to verify that the Mailbox Replication service is running and that it responds to a remote procedure call ping check. |
High availability |
Validate that the passive copy of databases in the same data center comes online automatically after a failure of a database. |
High availability |
Validate that the services that are running in the secondary data center continue to operate without any interruption after failing all the servers within the DAG in the primary data center. |
High availability |
Manually remove a disk from a passive database to test if auto reseed works as expected. Reverse the process to return the disks to the original state. |
High availability |
Perform a cold start of the DAG to validate that the DAG will start correctly if a major outage occurs. |
Load balancer |
Disable all load balanced servers for each server in turn within the same data center. Validate client access and mail flow for mailboxes hosted on failed servers. |
Load balancer |
Disable all load balanced services within the first data center. Validate client access and mail flow for mailboxes hosted on the failed data center. |
Load balancer |
Disable all load balanced services within the secondary data center. Validate client access and mail flow for mailboxes hosted on the failed data center. |
Backups |
Use Get-MailboxDatabase to validate the right setting for circular logging: disabled if using backup software or enabled if there is no backup software installed. |
Backups |
Perform a full backup of each mailbox database. |
Backups |
Perform an incremental backup of each mailbox database. |
Backups |
Restore a full database to a temporary location and recover a mailbox. |
Backups |
Restore a full database to the original location and mount it. |
Unified messaging |
Test leaving a voicemail to an Exchange 2016 mailbox. |
Unified messaging |
Test receiving a voicemail in an Exchange 2016 mailbox via the Outlook client. |
Unified messaging |
Test receiving a voicemail in an Exchange 2016 mailbox via Play on Phone. |
Unified messaging |
Test access to Outlook Voice Access in Exchange 2016. |
Unified messaging |
Test instant messaging sign-in to Exchange 2016. |
Unified messaging |
Test Skype for Business meeting scheduling in OWA. |
Check client connectivity
In the final stage of Exchange Server testing, you should examine client connectivity. If the Exchange system passes all the previous tests, then basic connectivity is most likely fine. It's important to run a full set of tests using the builds of the clients the end users will use.
Your checklist might vary from the one below to include the different Outlook versions and mobile devices to test.
Area |
Test Activity |
Outlook 2016 |
Test before/after migration experience. |
Outlook 2016 |
Test Autodiscover in Exchange 2016. |
Outlook 2016 |
Test cached mode access via Exchange 2016 in each data center. |
Outlook 2016 |
Test offline address book download functionality via Exchange 2016 in each data center. |
Outlook 2016 |
Test Exchange Web Services -- free, busy, out of office -- functionality via Exchange 2016 in each data center. |
Outlook 2016 |
Test Outlook Anywhere functionality via Exchange 2016 in each data center. |
Outlook 2016 |
Test mail send/receive/synchronization via Exchange 2016 in each data center. |
Outlook 2016 |
Test open additional mailbox functionality via Exchange 2016 in each data center. |
Outlook 2016 |
Test open additional on-premises mailbox functionality via Exchange 2016 in each data center. |
Mobile device |
Test Autodiscover functionality in Exchange 2016 in each DAG. |
Mobile device |
Test ActiveSync synchronization in Exchange 2016 in each DAG. |
Skype for Business client |
Test Exchange access after migration to Exchange 2016. |
As you test, record the results for reference purposes. For example, you may wish to:
- collect screenshots or screen recordings as you test;
- work with a colleague to help oversee the testing process and sign off on the checklist; and
- there may be other areas to resolve, so add a column to add notes for any remediation actions before retesting the environment.
Further investigation required for a full test
This list is just a starting point. Consider if you need to refine the checklist to fit your specific needs. Perhaps you need to add tests to cover aspects like Office 365 hybrid or public folder migrations.
This article should be a useful start for administrations about to embark on an Exchange Server 2016 deployment.