Tuesday, September 6, 2016

Preparing ReFS Volumes for Exchange 2016 DAG

Hi folks,

According to the Exchange 2016 Preferred Architecture by Microsoft disk drives should be formatted  with ReFS with the integrity feature disabled. This file system is better for larger volumes of data and also has a lot of improvemets over NTFS on how it manages data. You can read more of it here.

Unfortunately formatting drives via GUI is not available in the Disk Manager GUI tool. And this is where PowerShell comes to our help.

Below I will share with you the commands I used to create volume mount points and format them with ReFS. This is the whole process of building DAG with AutoReseed.

First we will need to prepare directories structure for volume mount points that will be used by AutoReseed for volumes and for databases:

New-Item C:\Volumes -Type Directory
New-Item C:\Databases -Type Directory
New-Item C:\Volumes\Vol01 -Type Directory
New-Item C:\Volumes\Vol02 -Type Directory
New-Item C:\Volumes\Vol03 -Type Directory
New-Item C:\Databases\DB01 -Type Directory
New-Item C:\Databases\DB02 -Type Directory

Then we will create partitions. Against all volumes, including the spare one, you will need to run this command to create partition that uses the whole space:

New-Partition -DiskNumber X -UseMaximumSize

After partitions are created we will need to format volumes with ReFS with disable integration streams. This is not possible with the Disk Manager MMC console and therefore PowerShell is the best way to achieve it;

Get-Partition –Disknumber X –PartitionNumber 2 | Format-Volume –FileSystem ReFS –NewFileSystemLabel "ExchVol00$VolNum" -AllocationUnitSize 65536 -SetIntegrityStreams:$false –Confirm:$false

After volumes have been formatted you will need to add volume mount points to volume directory and directory that corresponds to each database that will be stored on this volume like below:

Add-PartitionAccessPath -DiskNumber X -PartitionNumber 2 -AccessPath C:\Volumes\Vol01
Add-PartitionAccessPath -DiskNumber X -PartitionNumber 2 -AccessPath C:\Databases\DB01
Add-PartitionAccessPath -DiskNumber X -PartitionNumber 2 -AccessPath C:\Databases\DB02

Don't also forget to configure spare volume without any mount points to databases:

Add-PartitionAccessPath -DiskNumber X -PartitionNumber 2 -AccessPath C:\Volumes\Vol03

I hope you will find it helpful for a small Exchange deployments, however for large Exchange deployments I would recommend you using scripts that are generated in the Exchange capacity calculator. It can be found on the Distribution tab of the calculator. All the buttons are self explanatory so I won't explain all of them here.