Application Integration
cancel
Showing results for 
Search instead for 
Did you mean: 

Exchange 2016: iSCSI or VMDK for my databases?

Highlighted
joe37
Occasional Contributor

Exchange 2016: iSCSI or VMDK for my databases?

I'm installing a new Exchange 2016 envirnonment with new Nimble CS1000 equipment and I'm curious to know if you guys have any opinions on iSCSI vs VMDKs for my databases / logs.

According to my Exchange Requirements calculator, I need a little over 2000 IOPS for my environment.

I've ran a JetStress test on both configurations and the numbers look great on both, and both have their pros and cons.

With both the iSCSI and the VMDK tests, I used 10 databases with 3 copies per.
iSCSI is connected from the Guest OS via the Nimble Connection Manager and is using MPIO.
Each iSCSI database is in its own Nimble volume.
The VMDKs are connected to Paravirtual SCSI controllers inside VMware.
I have them all inside a single Nimble volume that is using the vSphere Datastore for Exchange protection policy.
The log files are in another Nimble volume and I created its own protection policy ... no caching with a block size of 4KB.

iSCSI
----------
I've pushed it to 75 threads and have seen up to almost 19,000 IOPS
Thread Count: 75
IOPS: 18556
I/O DB Reads Avg Latency (<20 is ideal, <100 is req): 5.175ms
I/O Log Writes Avg Latency (<10 is ideal, <100 is req): 2.955ms
% Processor Time (<80 is ideal, <90 is req): Avg: 38.7, Max: 52.139
Maximum Database Page Fault Stalls/sec: 11
Database Page Fault Stalls/sec samples higher than 0: 23

VMDK
--------
I've pushed this up to 130 threads with 0 issues
IOPS: 7025
I/O DB Reads Avg Latency (<20 is ideal, <100 is req): 10.484ms
I/O Log Writes Avg Latency (<10 is ideal, <100 is req): 2.570ms
% Processor Time (<80 is ideal, <90 is req): Avg: 11.6, Max: 20.238
Maximum Database Page Fault Stalls/sec: 0
Database Page Fault Stalls/sec: 0

I'm leaning toward iSCSI just because it seems to be a bit easier and I get better performance out of it.  Also, twice now, while doing these JetStress tests, when the Nimble snapshot ran, it took a snapshot of my Exchange test server and crashed it.  It tried to consolidate the snapshots while the database was growing and just hung.  I had to do a block level reclamation on my ESXi host and on my Exchange VM.

Are there any reasons to stick with VMDK over iSCSI?  Am I missing something that makes VMDK preferred over iSCSI for some reason?

If it matters, I will eventually use VEEAM to back up my Exchange servers.

If I've left anything important out, let me know and I'll get it for you.

2 REPLIES
coldfire3000
Occasional Collector

Re: Exchange 2016: iSCSI or VMDK for my databases?

If you connect the Nimble volume using a guest iSCSI initiator then Veeam won't be able to see that volume, so you won't be able to back it up using Veeam from a hypervisor level. The only way you could use Veeam would be to use the Veeam Agent for Windows, within the guest OS.

joe37
Occasional Contributor

Re: Exchange 2016: iSCSI or VMDK for my databases?

Thanks for the reply.

After doing a ton of testing and tweaks to get my iSCSI IOPS to as high as possible, I discovered that VEEAM needs my databases to be on VMDKs so I'm switching gears to that right now.

So far I'm thinking of putting each database onto it's on VMDK (so far 10 of them per server but it will grow to many more I'm sure) and all of the logs on another single VMDK.  I'm still undecided on how I want to do the archiving.

Thanks again man.