Windows Server 2019 iScsi MPIO multiple targets
I'm looking to setup a Windows Server 2019 failover cluster with iScsi shared storage (for a SQL Server Always-On instance). The additional requirement is to not have a single point of failure.
Let's say I have two iScsi Initiator nodes A and B and an iScsi Target C. If I implement MPIO, it will provide redundancy and multiple paths to the Storage, good. However, if C goes down, then nodes A and B lose connection the storage.
Questions:
- Should I create 2 iScsi Target Servers, C and D? If so, what's the best configuration so that if C goes down, D will takeover as the Target?
- When spinning up the Target Servers, what should the minimum requirements be? e.g. RAM, cores, etc.?
- Is it best practice to keep the primary iScsi Target separate from the Domain Controller?
- With MPIO, would it be best to use Round-Robin or Failover Only?
Solution 1:
You are totally right in case server C goes down, your nodes will lose connection to the storage. Answering your questions:
-
You can use different kinds of Software-defined Storage solutions. Couple exmamples: https://www.starwindsoftware.com/resource-library/starwind-virtual-san-installing-and-configuring-sql-server-2019-tp-failover-cluster-instance-on-windows-server-2016/ https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-storage-spaces-direct-manually-configure?tabs=windows2012
-
As for the requirements, it depends on the software you choose. I haven't found requirements for Microsoft iSCSI Target Server.
-
From security stand point, I would isolate iSCSI storage from AD, but I am not security engineer, there might be different best practices.
-
MPIO policy depends on your configuration. As far as I remember, StarWind recommends using Least Queue Depth in their setups.