Cost-Effective iSCSI SAN Solutions for Windows Server 2008/SQL Server Failover Clustering


1 views

When implementing Windows Server 2008/SQL Server failover clustering, the storage solution must support SCSI-3 persistent reservations. While enterprise solutions like Dell MD3000i and HP MSA 2012i are reliable, their $6K+ price point may be prohibitive for small-scale deployments. For databases under 50GB with light IOPS requirements, alternative solutions do exist.

StarWind's iSCSI SAN software provides a viable solution, though licensing costs for replica support (Enterprise Edition at $3,000/node) may exceed hardware alternatives. The free version lacks critical clustering features. For Linux-based solutions, consider this DRBD configuration example:

# DRBD configuration for iSCSI target
resource r0 {
  protocol C;
  disk { on-io-error detach; }
  on node1 {
    device /dev/drbd0;
    disk /dev/sdb1;
    address 192.168.1.1:7788;
    meta-disk internal;
  }
  on node2 {
    device /dev/drbd0;
    disk /dev/sdb1;
    address 192.168.1.2:7788;
    meta-disk internal;
  }
}

Several open-source iSCSI target implementations support SCSI-3 PR:

  • LIO Target (Linux): Included in modern kernels with full Windows clustering support
  • SCST: Requires manual compilation but offers excellent performance
  • TargetCLI: User-friendly interface for LIO configuration

Here's a basic TargetCLI configuration for Windows clustering:

/backstores/block create cluster_disk1 /dev/drbd0
/iscsi create iqn.2023-04.com.example:cluster
/iscsi/iqn.2023-04.com.example:cluster/tpg1/luns create /backstores/block/cluster_disk1
/iscsi/iqn.2023-04.com.example:cluster/tpg1/acls create iqn.1991-05.com.microsoft:win-cluster-node1
/iscsi/iqn.2023-04.com.example:cluster/tpg1/portals create 0.0.0.0 3260

After setup, verify SCSI-3 PR support using PowerShell:

Test-Cluster -Node Node1,Node2 -Include "Storage","Inventory","Network","System Configuration"

For SQL Server specifically, ensure the Failover Cluster instance recognizes the shared storage:

SELECT SERVERPROPERTY('ComputerNamePhysicalNetBIOS') as [Current Node], 
       SERVERPROPERTY('IsClustered') as [Is Clustered],
       SERVERPROPERTY('InstanceName') as [Instance Name]

When setting up a Windows Server 2008/SQL Server failover cluster, the storage subsystem must meet specific technical requirements:

  • SCSI-3 Persistent Reservations support (critical for cluster arbitration)
  • Stable iSCSI target implementation
  • Enterprise-grade reliability for production environments
  • Modest performance requirements for small databases (~30GB)

For budget-conscious deployments, these hardware solutions have proven reliable:

// Example PowerShell script to validate iSCSI connection
Test-NetConnection -ComputerName "SAN_IP" -Port 3260
Get-IscsiTargetPortal | Where-Object {$_.Address -eq "SAN_IP"}

Dell MD3000i ($6K entry point):

  • Proven track record with Windows clustering
  • Supports up to 45 drives in expansion configuration
  • Basic RAID configurations available

HP MSA 2000 (2012i) (Similar $6K range):

  • Dual-controller architecture
  • HP's SmartCache technology
  • Modular design for future expansion

For those considering software solutions, here are configuration examples:

# Linux DRBD + iSCSI target configuration snippet
resource r0 {
  protocol C;
  device /dev/drbd0;
  disk /dev/sdb1;
  meta-disk internal;
  on node1 {
    address 192.168.1.1:7788;
  }
  on node2 {
    address 192.168.1.2:7788;
  }
}

StarWind Virtual SAN:

  • Enterprise edition required for replica support ($3K/license)
  • Excellent Windows integration
  • RAM caching options for performance

Windows Server's own iSCSI Target:

# PowerShell to create iSCSI target
New-IscsiVirtualDisk -Path "C:\iSCSI\disk1.vhd" -Size 50GB
New-IscsiServerTarget -TargetName "SQLCluster" -InitiatorIds "IQN:iqn.1991-05.com.microsoft:sql-node1"

While Linux-based solutions like DRBD+LIO/TGT show promise:

  • SCSI-3 PR support varies by kernel version
  • Requires careful testing before production deployment
  • Community support rather than vendor support

For light workloads, even modest hardware can suffice:

# SQL Server I/O baseline measurement
SELECT
    DB_NAME(vfs.database_id) AS database_name,
    io_stall_read_ms / num_of_reads AS avg_read_latency,
    io_stall_write_ms / num_of_writes AS avg_write_latency
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS vfs

Key steps for successful deployment:

  1. Validate SCSI-3 PR support before purchase
  2. Configure MPIO for redundancy
  3. Implement proper network isolation for iSCSI traffic
  4. Monitor cluster disk timeouts (Event ID 1135)