搭建iSCSI存储服务器,准备存储资源的核心是创建LUN并配置iSCSI Target,通过IP网络将块级存储映射给客户端使用。无论你用Linux还是Windows,核心步骤都围绕存储池、LUN、Target和ACL展开,下面直接进入实操。
存储资源规划是搭建的起点
很多人在搭建iSCSI存储服务器时,上手就装软件,结果后面发现空间不够或性能瓶颈。存储资源规划决定了整个方案的稳定性,你需要先明确三个问题:谁在用、用多少、用什么方式。
存储介质与容量估算
根据目标场景选择物理介质,如果用于虚拟化平台,建议用RAID级别的SSD或HDD组合。行业共识认为,针对数据库场景,采用RAID10的SSD阵列能提供最佳IOPS,下面是一个常见场景的容量规划参考:
- 虚拟化存储:按虚拟机数量估算,每台虚拟机系统盘30-50GB,数据盘按业务需求叠加。
- 备份存储:按增量与全量比例预留1.5倍空间。
- 文件共享:按用户数×配额计算。
网络与性能匹配
iSCSI依赖网络,存储资源的性能上限受限于网络带宽,规划时需考虑:
- 使用Dedicated网络(专用网段)隔离iSCSI流量。
- 启用Jumbo Frame(MTU 9000)降低CPU开销。
- 多路径IO(MPIO)需要至少两个物理网卡。
iscsi存储资源分配实战步骤
准备存储资源不仅仅是划分空间,还包括让客户端能识别并挂载,以下以Linux LIO(Linux-IO Target)为例,这是目前最主流的开源方案,也兼容Windows Server的iSCSI Target。
创建物理存储池
在服务器上先准备好后端存储,可以是单独的磁盘分区、LVM逻辑卷或文件镜像,推荐使用LVM,便于扩展。
- 使用
pvcreate、vgcreate创建卷组。 - 使用
lvcreate创建指定大小的逻辑卷,作为LUN的后端。
示例命令:lvcreate -n lv_iscsi_01 -L 500G vg_iscsi
配置iSCSI Target
安装targetcli工具(yum install targetcli或apt install targetcli),然后进入Shell交互。
- 创建backstore:
cd /backstores/block,create dev=/dev/vg_iscsi/lv_iscsi_01 name=disk1 - 创建iSCSI Target:
cd /iscsi,create iqn.2026-08.com.example:storage.target1 - 创建LUN:
cd iqn.2026-08.com.example:storage.target1/tpgt1/luns,create /backstores/block/disk1 - 配置ACL:
cd acls,create iqn.2026-08.com.example:client1(客户端initiator名称) - 绑定CHAP认证:在ACL下设置
set auth userid=username password=passwd
客户端挂载与验证
客户端(Windows或Linux)安装iSCSI Initiator,输入target IP地址,连接后即可看到LUN,在Windows上,连接后需要联机并初始化磁盘,Linux上使用iscsiadm命令发现并登录:
iscsiadm -m discovery -t sendtargets -p 192.168.1.100
iscsiadm -m node -l
验证是否识别:lsblk或fdisk -l。
iscsi target配置的常见误区
很多人在iscsi target配置时忽略安全性和性能参数,导致线上故障,下面列出几个关键点。
CHAP认证必须开
如果不配置CHAP,任何客户端只要知道IP和IQN就能连接,相当于裸奔。
业内专家指出,企业内部也建议启用双向CHAP,防止数据泄露,配置方法:
- 在Target端设置ACL用户名密码。
- 在Initiator端填匹配的凭据。
多路径IO的配置
如果使用多网卡,需要在客户端配置MPIO,否则只有一条路径生效,Windows Server直接添加iSCSI后启用MPIO功能;Linux使用dm-multipath,配置后multipath -ll可以看到多路径设备。
LUN的映射粒度
不要将整个存储池映射给一个客户端,按需分配LUN,每个LUN对应一个逻辑卷,便于后期扩展和迁移,一个数据库一个LUN,一个文件系统一个LUN。
不同操作系统下的准备资源对比
如果你在Windows Server上搭建,流程类似但工具不同,Windows Server 2012以上自带iSCSI Target Server角色,通过服务器管理器添加,下面简单对比:
| 项目 | Linux LIO | Windows iSCSI Target |
|---|---|---|
| 后端存储类型 | LVM、文件、分区 | 物理磁盘、VHDX文件、分区 |
| 管理工具 | targetcli / /etc/target/ | 图形界面 + PowerShell |
| 性能 | 较高(内核级) | 稳定(但虚拟化环境有额外开销) |
| 多路径支持 | 需额外配置 | 原生支持(需MPIO功能) |
| 认证 | CHAP双向 | CHAP、Kerberos |
选择哪种,取决于团队熟悉度,如果是纯Windows环境,直接用iSCSI Target Server更省事;如果追求性能或混合环境,Linux LIO更灵活。
iscsi存储服务器搭建后的验证清单
资源准备完毕后,不要急着上线,按以下清单验证,避免翻车:
- 网络连通性:发起端与目标端之间
ping延迟,建议<1ms。 - LUN识别:客户端能否正常看到LUN,并正确识别大小。
- 读写性能:使用
dd或fio测试IOPS和吞吐量,检查是否达到预期。 - 持久化配置:服务器重启后,target是否自动启动,LUN是否自动挂载。
- 安全测试:尝试用未授权的客户端连接,应被拒绝。
常见问题与解答(Q&A)
如何查看iscsi存储资源是否已分配?
在Linux目标端使用targetcli ls查看所有backstore和LUN,在客户端用iscsiadm -m session查看当前连接,如果LUN未显示,检查ACL配置和网络防火墙。
iscsi存储服务器搭建时,磁盘性能达不到预期怎么办?
先排查网络,是否开启巨帧,是否使用专用网卡,再查后端存储是否直通(不要用软RAID,推荐硬件RAID),如果使用文件作为LUN,替换为块设备(LVM或分区)可提升性能。
准备存储资源时,LUN大小能否在线扩展?
可以,但需要后端存储支持,LVM可在线扩展逻辑卷,然后调整LUN大小,在targetcli中,使用backstores/block/disk1的set size命令,客户端需重新扫描SCSI总线,Windows客户端需扩展卷。
准备存储资源是iSCSI存储服务器搭建中最关键的环节,直接决定性能与安全性,合理规划存储池、严格配置CHAP认证、按需分配LUN,你就能得到一套稳定可靠的网络存储方案。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/585783.html




