// Linux · 2026-03-02

iSCSI 存储挂载指南:服务端 & 客户端配置

一、服务端配置步骤

1. 安装 iSCSI 服务端工具

# Debian/Ubuntu 系统
sudo apt update && sudo apt install -y targetcli-fb

# CentOS/RHEL 系统
sudo yum install -y targetcli

2. 创建存储目录并生成镜像文件

# 创建存储目录
sudo mkdir -p /srv/iscsi

# 生成 150MiB 的镜像文件(按需调整大小,如 10G 则写 10G)
sudo dd if=/dev/zero of=/srv/iscsi/shadowblocks.img bs=1M count=150

# 设置文件权限
sudo chmod 644 /srv/iscsi/shadowblocks.img
sudo chown root:root /srv/iscsi/shadowblocks.img

3. 配置 iSCSI Target

示例配置信息

  • iSCSI 目标名(IQN):iqn.2026-02.nyx.shadowblocks:storage.disk1
  • 监听端口:3260(默认)
  • 存储文件:/srv/iscsi/shadowblocks.img(150MiB)
  • 监听地址:0.0.0.0(所有网卡都可访问)
# 进入 targetcli 配置界面
sudo targetcli

# 1. 创建 fileio 存储对象
/backstores/fileio create shadowblocks /srv/iscsi/shadowblocks.img 150M

# 2. 创建 iSCSI 目标(使用指定的 IQN)
/iscsi create iqn.2026-02.nyx.shadowblocks:storage.disk1

# 3. 将存储对象关联到 LUN 0
/iscsi/iqn.2026-02.nyx.shadowblocks:storage.disk1/tpg1/luns create /backstores/fileio/shadowblocks

# 4. 配置监听端口和地址(默认 3260,0.0.0.0 监听所有网卡)
/iscsi/iqn.2026-02.nyx.shadowblocks:storage.disk1/tpg1/portals create 0.0.0.0:3260

# 5. 关闭认证(简化配置,生产环境建议开启)
/iscsi/iqn.2026-02.nyx.shadowblocks:storage.disk1/tpg1 set attribute authentication=0 generate_node_acls=1

# 6. 保存配置并退出
saveconfig
exit

4. 启动并设置服务开机自启

# 启动 target 服务
sudo systemctl start target

# 设置开机自启
sudo systemctl enable target

# 验证服务状态
sudo systemctl status target

5. 验证服务端配置

# 查看 iSCSI 配置详情
sudo targetcli ls

正常输出示例:

o- / ......................................................................................................................... [...]
  o- backstores .............................................................................................................. [...]
  | o- fileio ................................................................................................. [Storage Objects: 1]
  | | o- shadowblocks ................................................ [/srv/iscsi/shadowblocks.img (150.0MiB) write-back activated]
  o- iscsi ............................................................................................................ [Targets: 1]
  | o- iqn.2026-02.nyx.shadowblocks:storage.disk1 ........................................................................ [TPGs: 1]
  |   o- tpg1 .................................................................................................. [gen-acls, no-auth]
  |     o- luns .......................................................................................................... [LUNs: 1]
  |     | o- lun0 ........................................... [fileio/shadowblocks (/srv/iscsi/shadowblocks.img)]
  |     o- portals .................................................................................................... [Portals: 1]
  |       o- 0.0.0.0:3260 ..................................................................................................... [OK]

二、客户端连接步骤

1. 安装 iSCSI 客户端工具

# Debian/Ubuntu 系统
sudo apt update && sudo apt install -y open-iscsi

# CentOS/RHEL 系统
sudo yum install -y iscsi-initiator-utils

2. 发现服务端的 iSCSI 目标

把下面的 SERVER_IP 替换成你服务端(shadowblocks)的实际 IP(比如 192.168.1.10):

sudo iscsiadm -m discovery -t st -p SERVER_IP:3260

正常输出示例:

SERVER_IP:3260,1 iqn.2026-02.nyx.shadowblocks:storage.disk1

3. 登录(建立连接)

方法1:通用登录(自动匹配发现的目标)

sudo iscsiadm -m node -l

方法2:指定目标登录(更精准)

sudo iscsiadm -m node -T iqn.2026-02.nyx.shadowblocks:storage.disk1 -p SERVER_IP:3260 -l

成功提示:Login to [iface: default, target: iqn.2026-02.nyx.shadowblocks:storage.disk1, portal: SERVER_IP,3260] successful.

4. 验证连接并找到磁盘

# 查看新增的磁盘设备
sudo lsblk

# 查看 iSCSI 会话状态
sudo iscsiadm -m session

关键结果:会看到一个新的磁盘(比如 /dev/sdb),这就是挂载的 iSCSI 虚拟盘。 在这里插入图片描述

5. 格式化并挂载使用(首次使用)

# 格式化分区(需要写入权限)
sudo mkfs.ext4 /dev/sdb1

# 创建挂载点
sudo mkdir -p /mnt/iscsi_shadowblocks

# 挂载磁盘
sudo mount /dev/sdb /mnt/iscsi_shadowblocks

# 没有写入权限,只读挂载
mount -o ro /dev/sdb1 /mnt/iscsi_shadowblocks

# 验证挂载
df -h /mnt/iscsi_shadowblocks

在这里插入图片描述


三、可选:设置开机自动连接+挂载

1. 设置 iSCSI 开机自动登录

sudo iscsiadm -m node -T iqn.2026-02.nyx.shadowblocks:storage.disk1 -p SERVER_IP:3260 -o update -n node.startup -v automatic

2. 设置磁盘开机自动挂载

# 查看磁盘 UUID
sudo blkid /dev/sdb

# 编辑 fstab 文件
sudo nano /etc/fstab

在文件末尾添加一行(替换成你的 UUID):

UUID=你的磁盘UUID  /mnt/iscsi_shadowblocks  ext4  defaults,_netdev  0 0

保存退出后,验证配置:

sudo mount -a

四、断开连接(如需)

# 先卸载挂载点
sudo umount /mnt/iscsi_shadowblocks

# 登出 iSCSI 目标
sudo iscsiadm -m node -u

# 或强制登出指定目标
sudo iscsiadm -m node -T iqn.2026-02.nyx.shadowblocks:storage.disk1 -p SERVER_IP:3260 -u

总结

  1. 服务端核心是通过 targetcli 创建 fileio 存储对象、关联 IQN 并配置监听地址,确保服务开机自启;
  2. 客户端需先发现目标再登录,有写入权限时可格式化分区,无权限则用 ro 参数只读挂载;
  3. 开机自动挂载需配置 iSCSI 自动登录 + /etc/fstab 加入 _netdev 参数,适配网络存储特性。

原文 https://blog.csdn.net/2301_79518550/article/details/158582885