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:
- Validate SCSI-3 PR support before purchase
- Configure MPIO for redundancy
- Implement proper network isolation for iSCSI traffic
- Monitor cluster disk timeouts (Event ID 1135)