Windows Server自带的iSCSI目标服务器,真能当简易SAN用吗?一个完整配置与连接测试实录

张开发
2026/4/13 21:57:56 15 分钟阅读

分享文章

Windows Server自带的iSCSI目标服务器,真能当简易SAN用吗?一个完整配置与连接测试实录
Windows Server自带的iSCSI目标服务器实战评测低成本SAN替代方案可行性分析当团队需要集中存储解决方案却受限于预算时Windows Server内置的iSCSI功能往往成为技术决策者的备选方案。我曾在三个不同规模的项目中尝试用这种方式搭建临时存储环境既有成功案例也有踩坑经历。本文将从一个实践者的角度完整呈现配置流程、性能测试结果以及真实场景下的适用性边界。1. 环境准备与基础配置在开始前需要明确硬件需求。与专业SAN设备不同Windows Server的iSCSI服务对硬件没有特殊要求但存储性能直接受服务器硬件影响。我的测试环境采用了一台Dell PowerEdge R740xd服务器配置如下组件规格备注CPUIntel Xeon Silver 4214R12核24线程内存128GB DDR4 ECC建议至少64GB存储控制器PERC H740P RAID控制器启用Write-back缓存数据磁盘6块1.92TB SSD配置为RAID10提供约5.7TB可用空间网络双端口10GbE网卡(Teaming)启用Jumbo Frame(9014字节)关键提示生产环境中强烈建议使用独立物理网卡专门用于iSCSI流量避免与其他服务争抢带宽。安装iSCSI目标服务器角色只需通过服务器管理器的添加角色和功能向导完成。值得注意的是Windows Server 2016/2019/2022的安装过程几乎完全一致# 也可以通过PowerShell快速安装 Install-WindowsFeature -Name FS-iSCSITarget-Server -IncludeManagementTools2. 存储池与虚拟磁盘配置与传统SAN不同Windows的iSCSI服务建立在存储池概念之上。我的配置流程通常包含以下步骤创建存储池将物理磁盘组合为逻辑资源池配置虚拟磁盘在存储池上创建具有特定冗余级别的虚拟磁盘格式化卷选择适合工作负载的文件系统设置iSCSI目标将卷暴露给网络客户端以下是一个典型的新建iSCSI虚拟磁盘PowerShell脚本# 创建存储池 $physicalDisks Get-PhysicalDisk -CanPool $true New-StoragePool -FriendlyName iSCSI_Pool -StorageSubsystemFriendlyName Windows Storage* -PhysicalDisks $physicalDisks # 创建虚拟磁盘 New-VirtualDisk -StoragePoolFriendlyName iSCSI_Pool -FriendlyName iSCSI_VDisk -Size 4TB -ResiliencySettingName Mirror -ProvisioningType Fixed # 初始化卷 Initialize-Disk -VirtualDisk (Get-VirtualDisk -FriendlyName iSCSI_VDisk) -PartitionStyle GPT New-Partition -DiskNumber 4 -UseMaximumSize -AssignDriveLetter S Format-Volume -DriveLetter S -FileSystem ReFS -AllocationUnitSize 64KB -NewFileSystemLabel iSCSI_Volume实际经验对于虚拟机工作负载ReFS文件系统配合64KB簇大小能提供更好的随机读写性能。而NTFS在小型文件处理上更有优势。3. 多客户端连接与性能测试为验证实际可用性我搭建了包含5台客户端的测试环境。所有客户端通过10GbE网络连接使用MPIO(MultiPath I/O)实现负载均衡。测试工具采用DiskSpd——微软官方的存储性能测试工具。单客户端基准测试结果测试模式IOPS吞吐量(MB/s)平均延迟(ms)随机读(4K)82,0003200.78随机写(4K)45,0001761.42顺序读(64K)-980-顺序写(64K)-850-5客户端并发测试显示性能下降约30%主要瓶颈出现在网络带宽和服务器CPU资源上。一个有趣的发现是当启用SMB Direct(RDMA)时性能波动明显减小。# 典型DiskSpd测试命令示例 diskspd -b4K -d60 -o32 -t8 -h -L -Zr -W0 -D -c4G testfile.dat在实际项目中有几个值得分享的经验点启用MPIO后需要调整负载均衡策略默认的Failover Only无法充分利用多路径定期执行iscsicli SessionList检查连接状态意外断开时可能需要手动恢复对于数据库类应用建议禁用Windows的写入缓存缓冲区刷新直接依赖RAID控制器的BBU保护4. 与专业SAN设备的差异分析经过三个月的实际使用我整理了Windows iSCSI目标服务器与中端SAN存储的对比观察特性Windows iSCSI专业SAN设备最大连接数约50个稳定连接通常支持500连接管理功能基础LUN管理高级QoS、自动分层等高可用性需自行配置故障转移集群内置双控制器自动切换快照功能依赖VSS影响性能专用硬件加速快照扩展性受限于单服务器性能可通过扩展柜线性扩容典型延迟0.7-1.5ms0.2-0.5ms在开发测试环境中这种约5-10%的性能差距往往可以接受。但对于关键业务系统专业SAN设备在稳定性和功能完整性上的优势仍然不可替代。5. 典型应用场景与优化建议基于实测数据Windows iSCSI目标服务器最适合以下场景开发/测试环境快速搭建临时存储特别是需要频繁重建的场景备份存储库作为Veeam等备份软件的存储目标归档存储存放访问频率较低的冷数据培训环境成本敏感的存储技术教学平台针对不同场景我总结了几条优化经验虚拟机存储启用Unmap/TRIM支持设置固定大小的VHDX文件禁用文件系统上的最后访问时间戳数据库工作负载使用单独的物理磁盘存放日志文件调整NTFS的MFT区域大小禁用8.3文件名生成# 优化NTFS设置的示例 fsutil behavior set DisableLastAccess 1 fsutil behavior set MftZoneReservation 2 fsutil behavior set disable8dot3 1在最近的一个Kubernetes测试集群项目中我们将Windows iSCSI作为持久卷后端配合Open-iSCSI initiator实现了动态卷供应。虽然最终因性能考虑迁移到了专用存储但这个临时方案成功支撑了为期两周的密集测试。

更多文章