如何配置iscsi存储服务器准备存储资源?,什么是iscsi存储服务器?
- 前端开发
- 2026-08-09
- 6
iSCSI存储服务器配置的本质是把一台普通服务器的空闲磁盘空间,通过网络共享给其他服务器使用,核心准备工作集中在存储端LUN创建、网络隔离和客户端挂载三个环节。
准备存储资源前,先理解iSCSI的工作方式
iSCSI(Internet Small Computer System Interface)协议把SCSI指令封装在TCP/IP包里传输,让客户端(Initiator)把远端存储当作本地硬盘使用,这个过程中,存储服务器端(Target)需要先准备好“货”——也就是LUN(Logical Unit Number),然后通过网络把LUN“发布”出去。
如果你之前接触过NAS(网络附加存储),别把两者混淆,NAS提供的是文件级共享(NFS、SMB),而iSCSI提供的是块级共享,客户端拿到的是一个裸设备,需要自己格式化文件系统,这也是iSCSI存储服务器配置和NAS的核心区别。
iscsi存储服务器配置步骤:存储端准备工作全拆解
第一步:确认硬件和系统环境
存储服务器配置前,先盘点硬件资源,CPU至少4核,内存建议8GB以上,磁盘方面优先使用SATA或SAS盘组RAID,一个常见误区是直接把单块盘共享出去,这会导致I/O性能极差,行业共识认为,RAID5或RAID6是iSCSI存储的入门配置,兼顾容量和冗余。
操作系统选择上,CentOS/Rocky Linux和Ubuntu Server占据绝大多数存量市场,Windows Server也可以配置iSCSI Target,但性能和稳定性不如Linux方案,适合小规模测试环境,具体版本选择,取决于你后续要用的管理工具。
第二步:安装Target软件包
Linux环境下,主流方案是LIO(Linux-IO Target)和tgt,LIO从内核3.1版本起内置,是现代Linux发行版的默认选择,安装命令如下:
# CentOS/RHEL/Rocky系列 yum install targetcli -y # Ubuntu/Debian系列 apt install targetcli-fb -y
装完后执行systemctl enable target和systemctl start target,把服务跑起来。
第三步:创建LUN并映射给客户端
这是整个iscsi存储服务器配置准备工作的核心,用targetcli命令初始化环境:

这里解释几个关键概念:
- IQN(iSCSI Qualified Name)是存储资源的唯一标识符,格式为iqn.年份-月份.域名反写:设备标识,命名规则要遵守,否则某些客户端会拒绝连接。
- ACL(访问控制列表)指定哪些客户端可以访问这个LUN,上面命令中的iqn.2026-01.com.client:initiator1是客户端的IQN,需要提前从客户端获取并填入。
- LUN编号默认从0开始,多块磁盘时建议手动指定编号,避免混乱。
第四步:配置网络隔离和IP绑定
iSCSI存储配置中,网络层面的准备工作经常被忽略,但恰恰是性能瓶颈的重灾区。不要用业务网卡跑iSCSI流量,应该单独配置存储专用网络,推荐做法:
- 使用独立VLAN或物理交换机隔离存储流量
- 存储服务器配置双网卡绑定(bonding),模式选active-backup或802.3ad
- 规划专用的IP段,例如168.100.0/24,与业务网段完全隔离
在targetcli里绑定IP时,注意监听端口和入口地址:
cd /iscsi/iqn.2026-01.com.example:storage.disk1/tpg1/ set attribute authentication=0 set attribute generate_node_acls=0
对于生产环境,建议开启CHAP认证(Challenge Handshake Authentication Protocol),设置方式:
cd /iscsi/iqn.2026-01.com.example:storage.disk1/tpg1/acls/iqn.2026-01.com.client:initiator1 set auth userid=storage_user set auth password=your_password
CHAP密码长度不少于12位,客户端和存储端必须同时配置,否则连接会失败。
第五步:保存配置并验证
targetcli修改的配置默认保存在/etc/target/saveconfig.json,下次开机自动加载,验证配置完整性的命令:

检查输出中luns、acls和portals三个节点是否都包含预期条目,存储端准备完成后,可以用targetcli的saveconfig命令手动保存一次,确认无报错。
iscsi存储配置不重启客户端,块设备能不能直接变出来
这是新手最容易踩坑的地方,iscsi存储配置完成后,客户端扫描新磁盘通常不需要重启,但需要执行正确的扫描命令。
Linux客户端操作
安装iscsi-initiator-utils:
yum install iscsi-initiator-utils -y
发现Target:
iscsiadm -m discovery -t sendtargets -p 192.168.100.10
登录Target:

iscsiadm -m node -T iqn.2026-01.com.example:storage.disk1 -p 192.168.100.10 -l
登录成功后,执行lsblk或fdisk -l查看新出现的磁盘设备,如果磁盘没有立即出现,用partprobe或echo 1 > /sys/class/scsi_device/设备路径/device/rescan触发重新扫描。
Windows客户端操作
Windows 10/Server 2012以上版本自带iSCSI发起程序,路径是控制面板→管理工具→iSCSI发起程序,或者直接用Win+R输入iscsicpl.exe,在“目标”选项卡里填入存储服务器IP,点击快速连接即可。
Windows下需要注意,新接入的iSCSI磁盘默认是脱机状态,需要到磁盘管理里右键联机并初始化磁盘,否则磁盘只读不可写。
iscsi存储服务器搭建常见错误和排查思路
连接超时或discovery失败
- 检查存储端防火墙是否放行3260端口(默认端口)
- 确认客户端和存储端路由可达,用ping和telnet IP 3260测试
- 网络不通时,先检查VLAN配置和网卡绑定状态
认证失败
- 错误码CHAP authentication failure表示密码不匹配或未启用CHAP的地方配了密码
- 客户端配置CHAP的地方在/etc/iscsi/iscsid.conf里,修改node.session.auth.authmethod和node.session.auth.username/password三个参数
- 存储端修改CHAP配置后必须重启target服务,否则不生效
磁盘性能差
- 检查交换机端口是否协商到千兆或万兆,半双工模式会导致吞吐量骤降
- 使用dd测试写入性能,如果低于预期,优先排查网络而非存储本身
- 多路径场景下,确认是否安装并配置了multipath工具,单路径跑多个网卡反而会引发I/O错误
重启后连接丢失
- 存储端确认target服务设置了开机自启
- 客户端执行iscsiadm -m node -T iqn名称 -p IP -o update -n node.startup -v automatic,把自动登录选项打开
- 系统服务依赖顺序问题,在/etc/fstab里挂载iSCSI设备时,必须加_netdev参数,否则开机挂载会卡住
iscsi存储服务器报价和选型参考
iscsi存储服务器配置的硬件成本,取决于单台还是高可用,对于中小型机房,单台存储服务器预算集中在2万到8万元区间,主要包括:
- 按需定制的服务器主机(2U,双路CPU,64GB内存)
- 8块4TB SATA硬盘组成的RAID6阵列
- 万兆双口网卡+千兆管理口
- 操作系统和软件(开源方案占多数,无额外授权费)
如果要求双活或主备切换,成本会翻倍,涉及两台存储服务器和共享仲裁机制,国内市场的带外管理需求,部分品牌机型会额外收取远程管理模块费用,采购时问清楚。
对于预算敏感的团队,可以考虑用二手服务器过渡,但存储不吃二手硬件,磁盘故障率随时间呈指数上升,不建议生产环境使用。
常见问题集中解答
iscsi存储服务器配置需要具备哪些前置知识
需要掌握Linux基础命令、磁盘分区和RAID概念、TCP/IP网络基础,如果从零开始,先花一周熟悉LVM逻辑卷管理,因为后续LUN的扩容和快照都依赖LVM,网络层面至少要会配置静态IP和VLAN,理解端口3260的作用。
iscsi存储和光纤存储哪个更适合虚拟化场景
虚拟化平台同时支持两种协议,光纤存储(FC-SAN)延迟更低,通常稳定在0.5ms以内,但交换机和企业级阵列投入成本高,iSCSI万兆网络下的延迟在1-2ms,性能差距已经缩小到几乎可忽略,对于中小型虚拟化集群,iSCSI存储搭配万兆网络是性价比最高的方案,这也是近年国内私有云项目中iSCSI占比上升的原因。