CentOS 7 下iscsi存储服务配置&验证

一、环境说明

  • centos7服务器*2
  • 服务器ip:服务端10.10.10.186 客户端10.10.10.184
  • 服务端存储卷sda1
  • 提前关闭防火墙,或开放默认 iSCSI 使用 3260 端口

二、服务端(Target)配置

  1. 安装 iSCSI target 服务
j 复制代码
yum install -y targetcli
systemctl enable target --now
  1. 创建后端存储
j 复制代码
mkdir -p /iscsi_disks
truncate -s 5G /iscsi_disks/disk01.img
  1. 配置 target
    进入管理界面
j 复制代码
targetcli

执行

j 复制代码
/backstores/fileio create disk01 /iscsi_disks/disk01.img
# 绑定lun
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1/luns create /backstores/fileio/disk01
# 添加 ACL(客户端 IQN 必须和 initiator 配置一致)
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1/acls create iqn.2025-09.com.example:client01
/saveconfig
exit

验证配置

j 复制代码
targetcli

ls

三、客户端(Initiator)配置

  1. 安装 iSCSI initiator 工具
j 复制代码
yum install -y iscsi-initiator-utils
systemctl enable iscsid --now
  1. 修改 initiator 名称
j 复制代码
vi /etc/iscsi/initiatorname.iscsi
修改为与服务端 ACL 配置一致:
InitiatorName=iqn.2025-09.com.example:client01
重启服务
systemctl restart iscsid
  1. 发现 target
j 复制代码
iscsiadm -m discovery -t sendtargets -p 10.10.10.186
  1. 登录 target
j 复制代码
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --login

5.确认磁盘

j 复制代码
lsblk
fdisk -l

会看到新设备(通常是 /dev/sdb 之类)。

6.格式化并挂载

j 复制代码
mkfs.xfs /dev/sdb
mkdir -p /mnt/iscsi_disk
mount /dev/sdb /mnt/iscsi_disk

7.测试写入

j 复制代码
echo "hello iscsi" > /mnt/iscsi_disk/test.txt
cat /mnt/iscsi_disk/test.txt

NOTICE!!!

1、

如果第四步login失败

j 复制代码
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1 set attribute authentication=1
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1 set auth userid=myuser
/iscsi/iqn.2025-09.com.example:storage.target01/tpg1 set auth password=mypassword

客户端则需要

j 复制代码
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --op update -n node.session.auth.authmethod -v CHAP
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --op update -n node.session.auth.username -v myuser
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --op update -n node.session.auth.password -v mypassword

再次登录

j 复制代码
iscsiadm -m node -T iqn.2025-09.com.example:storage.target01 -p 10.10.10.186 --login

✅ 总结:

  • 大概率是 initiatorname 不一致(客户端 /etc/iscsi/initiatorname.iscsi 和 targetcli ACL 配置的不一样)。

  • 如果一致,那就检查是否启用了 CHAP,需配套用户名密码。

验证是否生效

1、客户端挂载 iSCSI 盘到目录

j 复制代码
fdisk /dev/sdb

示例操作(新建一个分区):

  • 输入 n(新建分区)
  • 输入 p(主分区)
  • 默认即可(全盘)
  • 输入 w 保存退出
    之后会出现 /dev/sdb1。

2、格式化文件系统

j 复制代码
mkfs.xfs /dev/sdb1

3、挂载到目录

j 复制代码
mkdir -p /mnt/iscsi_disk
mount /dev/sdb1 /mnt/iscsi_disk

4、验证

j 复制代码
df -h /mnt/iscsi_disk

echo "hello from iscsi" > /mnt/iscsi_disk/test.txt
cat /mnt/iscsi_disk/test.txt

5、设置开机自动挂载

j 复制代码
查看UUID
blkid /dev/sdb1
编辑 /etc/fstab,加一行:
UUID=<刚才的UUID>  /mnt/iscsi_disk  xfs  _netdev  0  0

6、验证

j 复制代码
ls -lh /iscsi_disks/disk01.img   # 显示 5.0G
du -sh /iscsi_disks/disk01.img   # 应该很小,比如 0M 或几K
相关推荐
江华森11 小时前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森11 小时前
Matplotlib 数据绘图基础入门
运维
XIAOHEZIcode11 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
江华森11 小时前
NumPy 数值计算基础入门
运维
唐青枫13 小时前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo4 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux