公司动态

Windows Server 2012 iSCSI存储配置实战:从协议原理到生产部署

📅 2026/7/30 4:33:12
Windows Server 2012 iSCSI存储配置实战:从协议原理到生产部署
1. 项目背景与iSCSI协议核心价值在数据中心和中小型企业的IT基础设施里存储一直是个既基础又核心的议题。你可能遇到过这样的场景一台应用服务器比如跑着SQL Server的Windows Server的本地磁盘空间告急或者你需要为多台服务器提供一个集中、统一且高性能的存储池用于存放虚拟机文件、数据库文件或者共享的应用数据。直接加硬盘对于物理服务器来说扩容麻烦而且存储分散不便于管理。上专业的SAN存储区域网络那意味着要采购昂贵的光纤交换机FC Switch和HBA卡成本和技术门槛一下子就上去了。这时候iSCSIInternet Small Computer System Interface技术就成了一种非常务实且高性价比的选择。它本质上是一种基于IP网络的SCSI指令封装协议允许你将远端的存储设备比如一台专门配置了硬盘的服务器通过网络“伪装”成一块本地硬盘挂载到你的服务器上。对操作系统和应用来说这块“网络硬盘”和本地连接的SAS、SATA硬盘在使用体验上几乎没有区别你可以对它进行分区、格式化、创建文件系统就像对待一块真实的物理磁盘一样。我之所以选择在Windows Server 2012这个平台上深入聊聊iSCSI是因为这个版本是一个承上启下的关键节点。它内置的iSCSI发起程序和目标服务器角色已经相当成熟和稳定图形化管理工具Server Manager也足够友好非常适合从零开始学习和部署。相比于更早的版本它在性能和可靠性上有不少改进而相比于后续的Server 2016/2019它的配置逻辑又足够经典和清晰理解了2012上的操作迁移到新版会非常顺畅。这次我们要做的就是在一台Windows Server 2012上将它配置成iSCSI目标服务器即存储提供方然后在另一台服务器或客户端上使用iSCSI发起程序去连接并使用这块网络存储。整个过程会涉及到IQNiSCSI限定名称的理解、认证配置、LUN逻辑单元号的创建与管理等核心环节。2. 实验环境规划与先决条件准备动手配置之前清晰的规划能避免后续很多混乱。我们先来搭一个最小化的实验环境这在实际的测试或学习场景中非常有用。2.1 网络拓扑与IP规划我建议采用最简单的双机直连或同交换机环境。你需要两台虚拟机或物理机iSCSI目标服务器我们称之为SRV-ISCSI-TGT。角色提供存储空间。安装Windows Server 2012 R2 Standard或Datacenter。iSCSI发起客户端我们称之为SRV-ISCSI-INIT。角色使用存储空间。可以是另一台Windows Server 2012也可以是Windows 10/11等客户端系统它们都内置了iSCSI发起程序。注意强烈建议为iSCSI流量单独规划一个网络。即使是在实验环境也最好为两台机器添加第二块虚拟网卡NIC并配置一个与业务网络如192.168.1.0/24不同的专用子网如10.10.10.0/24。这样做可以避免iSCSI的存储流量与日常的管理、应用流量竞争带宽提升存储性能的稳定性和可预测性。在生产环境中这通常是强制要求。假设我们规划一个专用存储网络SRV-ISCSI-TGT存储网卡IP:10.10.10.10/24SRV-ISCSI-INIT存储网卡IP:10.10.10.20/24确保两台机器在10.10.10.0/24这个网段内可以互相ping通。2.2 系统与磁盘准备在目标服务器SRV-ISCSI-TGT上我们需要准备用于共享的物理存储。如果你用的是虚拟机最简单的方法是添加几块新的虚拟硬盘VHD/VHDX。例如可以添加三块硬盘一块 50GB 用于模拟未来存放数据库文件。一块 100GB用于模拟存放虚拟机VHDX文件。一块 30GB用于模拟存放普通文件共享。这些硬盘在添加到虚拟机后在Windows磁盘管理里会显示为“脱机”和“未初始化”的状态先不用管我们后续通过iSCSI目标服务器角色来管理它们。2.3 理解核心概念IQN与LUN在配置过程中你会反复遇到两个术语IQN和LUN。彻底理解它们配置时就不会迷糊。IQN (iSCSI Qualified Name)这是iSCSI世界里的“身份证号”全球唯一用于标识一个iSCSI节点目标或发起方。它的格式是固定的iqn.yyyy-mm.reversed domain name:optional-identifieryyyy-mm 表示该命名空间被创建的年份和月份。reversed domain name 通常是你的域名倒写如com.example。如果没有域名可以用任意有意义的字符串实验环境常用local或test。optional-identifier 自定义的标识符用于具体说明这个目标或发起方是什么。举例iqn.1991-05.com.microsoft:srv-iscsi-tgt-target。这表示一个由Microsoft域名为microsoft.com倒写为com.microsoft在1991年5月定义的命名空间下的名为srv-iscsi-tgt-target的目标。LUN (Logical Unit Number)逻辑单元号。你可以把它理解为目标服务器上共享出来的“磁盘柜”里的“抽屉编号”。当发起方连接到一个iSCSI目标后可能会看到多个存储卷每个卷都有一个LUN编号通常是0, 1, 2...。发起方通过LUN号来区分和访问不同的存储空间。在Windows iSCSI目标服务器里你创建的每一个“iSCSI虚拟磁盘”都会绑定一个LUN。3. 在Windows Server 2012上部署与配置iSCSI目标服务器现在我们开始在SRV-ISCSI-TGT这台机器上把存储空间通过iSCSI协议共享出去。3.1 安装“iSCSI目标服务器”角色Windows Server 2012将iSCSI目标功能作为一个服务器角色来提供安装非常方便。打开服务器管理器。点击“管理”-“添加角色和功能”。在“选择安装类型”步骤保持默认的“基于角色或基于功能的安装”点击下一步。在“选择目标服务器”步骤确保当前服务器SRV-ISCSI-TGT被选中点击下一步。在“选择服务器角色”步骤在角色列表中找到并勾选“文件和存储服务”-“文件和iSCSI服务”-“iSCSI目标服务器”。示意图勾选iSCSI目标服务器角色在弹出的“添加角色和功能向导”窗口中点击“添加功能”。后续步骤全部点击“下一步”直到“确认安装选择”。确认无误后点击“安装”。安装完成后无需重启服务器点击“关闭”即可。3.2 创建iSCSI虚拟磁盘LUN角色安装好后我们开始创建要共享出去的“虚拟磁盘”。这个虚拟磁盘文件.vhdx会保存在目标服务器本地的一个NTFS或ReFS卷上但其内容将通过网络提供给发起方。在服务器管理器中点击左侧导航栏的“文件和存储服务”。点击“iSCSI”。右侧面板会显示iSCSI目标服务器的仪表板。在“iSCSI虚拟磁盘”区域点击“任务”-“新建iSCSI虚拟磁盘...”。这会启动一个向导。选择位置首先选择将这个虚拟磁盘文件.vhdx存放在服务器的哪个物理卷上。例如选择你的D:盘。点击下一步。指定名称为这个虚拟磁盘起一个名字比如DB_Data.vhdx。这个名字仅用于在目标服务器上管理这个文件。指定大小设置虚拟磁盘的容量比如50 GB。你可以选择“动态扩展”或“固定大小”。动态扩展.vhdx文件初始很小随着写入数据而增长直到达到设定上限。节省初始空间但可能有轻微性能开销。固定大小立即创建一个50GB的.vhdx文件。性能更优但一次性占用磁盘空间。 对于生产环境的关键应用如数据库我通常选择“固定大小”以获得更稳定可预测的性能。实验环境可以用“动态扩展”节省空间。点击下一步。分配iSCSI目标这一步是关键决定谁可以访问这个磁盘。如果是第一次创建可能没有现成的目标。我们选择“新建iSCSI目标”然后点击下一步。指定目标名称给这个iSCSI目标起个名字比如TargetForDBServer。这个名字是管理用的友好名称不是IQN。指定访问服务器这是配置访问控制的核心。你需要在这里添加允许连接的发起方。点击“添加...”按钮。添加发起方有两种主要方式输入选定类型的值在下拉框中选择“IQN”。从发起计算机获取这是更常用的方法。你需要先去发起方计算机SRV-ISCSI-INIT上打开iSCSI发起程序在“配置”选项卡里复制它的“发起程序名称”即它的IQN。然后回到目标服务器这个界面将复制好的IQN粘贴进来。假设我们从发起方获取到的IQN是iqn.1991-05.com.microsoft:srv-iscsi-init将其粘贴添加进来。你还可以添加IP地址或DNS名称作为标识符但IQN是最标准的方式。点击“确定”。启用身份验证可选但建议为了安全可以启用CHAP挑战握手认证协议。勾选“启用CHAP”。设置一个“机密”即密码。这个密码需要在发起方连接时提供。高级还可以启用“反向CHAP”即目标服务器也验证发起方实现双向认证。生产环境建议启用。实验环境可以先跳过。确认设置检查所有配置尤其是IQN是否正确。点击“创建”。向导完成后你就成功创建了一个iSCSI虚拟磁盘并为其关联了一个iSCSI目标该目标只允许你指定的那个IQN的发起方连接。重复以上步骤你可以创建多个不同大小、分配给不同目标的iSCSI虚拟磁盘。3.3 高级配置iSCSI目标属性与管理创建完成后在“iSCSI”管理界面你可以看到已创建的虚拟磁盘和目标。点击某个iSCSI目标在下方可以看到其属性。在“属性”面板中你可以查看IQN系统会自动为目标生成一个IQN格式如iqn.1991-05.com.microsoft:targetname-[GUID]。发起方连接时需要使用这个目标IQN。修改连接可以添加或移除允许连接的发起方IQN。配置身份验证可以事后启用或修改CHAP设置。对于iSCSI虚拟磁盘你可以右键点击进行“扩展”增加容量、“断开连接”强制断开所有发起方连接或“删除”等操作。4. 在客户端配置iSCSI发起程序并连接存储现在我们切换到需要使用存储的客户端机器SRV-ISCSI-INIT上。4.1 启动并配置iSCSI发起程序Windows客户端和服务器都内置了iSCSI发起程序但默认可能未启动。按Win R输入iscsicpl.exe并回车打开“iSCSI发起程序”属性窗口。如果提示服务未运行点击“是”启动它。在“配置”选项卡你可以看到本机的“发起程序名称”即你的IQN。这个就是之前需要复制到目标服务器“访问服务器”列表里的那个字符串。你可以点击“更改”来修改它但通常保持默认即可。切换到“发现”选项卡。这里用于告诉发起程序去哪里寻找iSCSI目标。点击“发现门户...”按钮。输入目标服务器的IP地址我们规划的是10.10.10.10和端口默认是3260保持不变。如果目标服务器启用了CHAP可以点击“高级...”进行配置填入在目标端设置的CHAP用户名和密码。点击“确定”。切换到“目标”选项卡。稍等片刻或者点击“刷新”你应该能看到在“已发现的目标”列表中出现一个目标其IQN就是之前在目标服务器上创建的那个例如iqn.1991-05.com.microsoft:targetfordbserver-[GUID]状态是“不活动”。4.2 连接目标并初始化磁盘在“目标”选项卡中选中发现的目标点击“连接...”。在弹出的连接窗口中勾选“将此连接添加到收藏目标列表”这样系统重启后会自动尝试重新连接。如果配置了CHAP勾选“启用CHAP登录”并填入密码。点击“高级...”可以进行更详细的设置比如指定用于iSCSI连接的本地网卡如果有多块网卡务必选择连接到存储网络10.10.10.20的那一块以及配置IPSec加密一般内网不需要。点击“确定”完成连接。连接成功后目标状态会变为“已连接”。此时打开“计算机管理” - “磁盘管理”系统很可能会弹出“初始化磁盘”的对话框提示你检测到新磁盘。选择磁盘分区样式MBR或GPT对于大于2TB的磁盘必须选GPT点击“确定”。初始化后磁盘会显示为“未分配”空间。右键点击该空间选择“新建简单卷...”按照向导分配驱动器号、格式化建议NTFS完成后在“此电脑”中就能看到一块新的网络驱动器了使用起来和本地硬盘完全一样。5. 性能调优、排错与生产环境考量基础配置完成后这块网络磁盘就能用了。但如果想获得更好的性能或者遇到问题就需要了解一些进阶知识。5.1 性能优化建议iSCSI的性能瓶颈通常在于网络和磁盘IO。网络层面专用网络再次强调为iSCSI划分独立的VLAN或使用独立网卡。巨型帧在存储网络交换机和服务器网卡上启用Jumbo Frame巨型帧通常设为9000字节可以显著降低CPU开销并提升大块数据吞吐量。关键点路径上的所有设备发起方网卡、交换机、目标方网卡都必须支持并启用相同大小的巨型帧否则会导致通信问题。多路径如果服务器有多个存储网络端口可以配置MPIO多路径I/O。这不仅能提供负载均衡和带宽聚合更重要的是提供了链路冗余。在Windows Server上需要额外安装“多路径I/O”功能并在iSCSI发起程序中配置。服务器层面目标服务器磁盘存放iSCSI虚拟磁盘文件.vhdx的物理磁盘其性能直接决定了网络存储的最终性能。使用SSD或高性能RAID阵列如RAID 10能带来质的提升。发起方缓存在iSCSI发起程序属性 - “卷和设备”选项卡选中已连接的设备点击“设备属性”在“RADiUS”选项卡下可以启用缓存。但这有一定风险需根据应用场景权衡。5.2 常见问题排查问题发起方无法发现目标。检查防火墙确保目标服务器10.10.10.10的TCP 3260端口在Windows防火墙以及任何第三方防火墙上是放行的。可以在目标服务器上运行netsh advfirewall firewall add rule nameiSCSI Service dirin actionallow protocolTCP localport3260来快速添加规则。检查网络连通性在发起方用ping 10.10.10.10和telnet 10.10.10.10 3260如果telnet客户端已安装测试基础网络和端口。检查IQN配置确认发起方的IQN是否已被正确添加到目标服务器的“访问服务器”列表中。问题连接成功但磁盘管理里看不到新磁盘。扫描磁盘在发起方的“磁盘管理”中点击“操作” - “重新扫描磁盘”。检查LUN映射在目标服务器上确认虚拟磁盘已正确创建并关联到了允许该发起方连接的目标上且LUN状态正常。检查多路径软件冲突如果安装了第三方多路径或存储管理软件可能会接管磁盘识别需要在其管理界面中查看。问题传输速度慢不稳定。排除网络竞争用ping -t 10.10.10.10持续ping看延迟是否稳定有无丢包。不稳定的延迟和丢包是iSCSI性能杀手。检查巨型帧在发起方和目标方的网卡属性、交换机端口上确认巨型帧设置一致且已启用。检查网卡负载在任务管理器的“性能”选项卡中观察存储网卡的利用率是否已接近瓶颈。5.3 生产环境部署要点在真实业务中部署iSCSI除了性能更要考虑可靠性和可维护性。高可用性单台iSCSI目标服务器是单点故障。可以考虑使用Windows Server Failover Cluster故障转移群集来构建高可用的iSCSI目标服务器或者采用专业的存储设备它们通常也支持iSCSI协议并提供双控制器等高可用架构。备份与快照iSCSI虚拟磁盘文件.vhdx本身是文件可以通过文件级备份来保护。但更常见的做法是在发起方使用存储的服务器上利用卷影复制服务VSS或应用自身的备份功能来备份数据。一些高级的存储系统也支持在目标端对LUN做快照。监控使用Windows性能监视器PerfMon跟踪关键计数器如LogicalDisk(*)\Disk Read/Write Bytes/sec针对发起方看到的磁盘Network Interface(*)\Bytes Total/sec针对存储网卡以及服务器本身的CPU和内存使用情况。安全加固务必使用CHAP认证甚至双向CHAP。严格限制访问控制列表ACL只允许必要的发起方IQN连接。将iSCSI存储网络置于逻辑隔离的网络区域。通过以上从规划、配置到优化、排错的完整流程你应该能够独立完成一个Windows Server 2012 iSCSI存储环境的搭建。这套方法不仅适用于实验和学习其核心思想和步骤也完全适用于更新版本的Windows Server以及生产环境的初步评估。记住存储是数据的家稳定和性能永远是第一位的在每一步操作前多思考一下冗余和回退方案会让你的运维工作更加从容。