Linux iSCSI 安装与配置指南
iSCSI 技术概述
iSCSI(Internet Small Computer System Interface)是一种基于 TCP/IP 协议的存储网络技术,允许通过网络将存储设备(如磁盘阵列、SAN)挂载到本地系统,使其表现为本地块设备,相比传统的光纤通道(FC),iSCSI 具有成本低、部署灵活、易于管理等优势,广泛应用于中小企业的存储解决方案中,在 Linux 系统中,可通过开源工具(如 open-iscsi)轻松实现 iSCSI 客户端功能,而服务端则常用 targetcli 或 tgt 等工具提供存储服务。

环境准备
在开始安装前,需确保以下条件满足:
- 网络环境:客户端与服务端需处于同一局域网,且网络互通,建议配置静态 IP 地址以避免动态分配导致连接中断。
- 系统要求:推荐使用 CentOS 7+/Ubuntu 20.04+ 等主流发行版,确保内核版本支持 iSCSI(Linux 2.6.16+ 已原生支持)。
- 存储后端:服务端需提供可共享的存储资源,如本地磁盘分区、LVM 逻辑卷或文件系统镜像。
Linux iSCSI 客户端安装与配置
安装 open-iscsi 软件包
在客户端系统中,执行以下命令安装 open-iscsi 工具:
- CentOS/RHEL:
sudo yum install -y iscsi-initiator-utils
- Ubuntu/Debian:
sudo apt update && sudo apt install -y open-iscsi
配置 iSCSI 客户端
安装完成后,需修改 /etc/iscsi/iscsid.conf 配置文件,调整连接参数(如认证方式、超时时间等)。
node.session.auth.authmethod = CHAP node.session.auth.username = your_username node.session.auth.password = your_password
保存后启动 iscsid 服务并设置为开机自启:
sudo systemctl enable --now iscsid
发现并连接 iSCSI 目标
使用 iscsiadm 命令发现服务端提供的存储目标:
sudo iscsiadm -m discovery -t st -p <server_ip>
<server_ip> 为 iSCSI 服务器的 IP 地址,发现成功后,查看目标列表:
sudo iscsiadm -m node
登录并挂载存储设备
登录目标并确认系统已识别到新的块设备:
sudo iscsiadm -m node -T <target_name> -p <server_ip> --login lsblk
此时应能看到新设备(如 /dev/sdb),创建文件系统并挂载:

sudo mkfs.ext4 /dev/sdb sudo mkdir /mnt/iscsi_disk sudo mount /dev/sdb /mnt/iscsi_disk
为实现自动挂载,需编辑 /etc/fstab,添加以下条目:
/dev/sdb /mnt/iscsi_disk ext4 defaults,_netdev 0 0
注意:
_netdev选项确保系统在网络启动后挂载该设备。
管理连接状态
可通过以下命令管理 iSCSI 连接:
- 断开连接:
sudo iscsiadm -m node -T <target_name> -p <server_ip> --logout - 删除节点:
sudo iscsiadm -m node -T <target_name> -p <server_ip> -o delete
Linux iSCSI 服务端安装与配置
安装 targetcli 工具
以 CentOS 为例,安装 targetcli:
sudo yum install -y targetcli
安装后启动服务并启用自启:
sudo systemctl enable --now targetui
配置存储后端
进入 targetcli 交互界面:
sudo targetcli
执行以下命令创建存储后端(以 LVM 为例):
/backstores/block create disk1 /dev/sdb1
/dev/sdb1 为服务端提供的物理分区。

创建 iSCSI 目标
定义目标名称(格式为 iqn.yyyy-mm.com.domain:identifier):
/iscsi create iqn.2023-10.com.example:storage.target1
将存储后端绑定到目标:
/iscsi/iqn.2023-10.com.example:storage.target1/tpg1/luns create /backstores/block/disk1
配置访问控制
允许客户端 IP 访问:
/iscsi/iqn.2023-10.com.example:storage.target1/tpg1/acls create iqn.2023-10.com.client:client1
iqn.2023-10.com.client:client1 为客户端的 Initiator 名称(可通过 cat /etc/iscsi/initiatorname.iscsi 查看)。
设置认证(可选)
启用 CHAP 认证:
/iscsi/iqn.2023-10.com.example:storage.target1/tpg1/set attribute authentication=1
/iscsi/iqn.2023-10.com.example:storage.target1/tpg1/chap create user=your_user password=your_pass
保存配置并退出
saveconfig
exit
常见问题与解决方案
- 连接超时:检查防火墙设置(如
firewall-cmd --permanent --add-port=3260/tcp)及网络连通性。 - 设备未识别:确认
iscsid服务运行正常,并检查目标名称与 ACL 配置是否匹配。 - 性能优化:调整内核参数(如
/etc/sysctl.conf中的net.core.rmem_max)以提升网络吞吐量。
通过以上步骤,即可在 Linux 系统中完成 iSCSI 客户端与服务端的安装与配置,iSCSI 技术为分布式存储提供了灵活且经济的解决方案,尤其适用于虚拟化环境、数据库集群等场景,实际部署中,建议结合 RAID、快照等功能进一步保障数据安全与可靠性。


















