SQL virtualization best practice?
Posted: Fri Apr 19, 2019 11:11 am
We have an MS SQL server running as a VM under Hyper-V on a two-server failover cluster. All cluster storage is managed by Starwind. I know the best best practice for virtualizing SQL server is "don't", but we're stuck with this setup because reasons.
Right now, the Starwind storage is accessed by the host servers as cluster storage, and the SQL server's data drive is a .vhdx.
I'm wondering if we could improve SQL performance by instead having the SQL VM connect directly to Starwind via iSCSI, thus removing several layers of abstraction. But I'm wondering a) if that really would give a significant performance increase, and b) are there any "gotchas" - reasons not to do this.
Does anyone have any thoughts on this?
Just some background info: the host servers are running Windows Server 2012 and have tons of CPU and RAM, storage is direct-attached and is all flash. The VM is running SQL Server 2016 on Windows Server 2016.
Right now, the Starwind storage is accessed by the host servers as cluster storage, and the SQL server's data drive is a .vhdx.
I'm wondering if we could improve SQL performance by instead having the SQL VM connect directly to Starwind via iSCSI, thus removing several layers of abstraction. But I'm wondering a) if that really would give a significant performance increase, and b) are there any "gotchas" - reasons not to do this.
Does anyone have any thoughts on this?
Just some background info: the host servers are running Windows Server 2012 and have tons of CPU and RAM, storage is direct-attached and is all flash. The VM is running SQL Server 2016 on Windows Server 2016.