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
相关推荐
叱咤少帅(少帅)3 分钟前
新版本jenkins的共享库的实现
运维·jenkins
姚不倒7 分钟前
Keepalived 系列(二):生产最佳实践与面试考点
运维·keepalived·haproxy
pt10438 分钟前
网络自动化Python课程:利用Cisco NSO编排网络服务
运维·网络·自动化
tedcloud12313 分钟前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
AAA代码批发商19 分钟前
Days 39 Linux C 开发之 SQLite 数据库完整学习笔记
linux·c语言·数据库
七夜zippoe1 小时前
DolphinDB 运维工具实战:自动化脚本体系设计与落地(2.0.x)
运维·dolphindb·自动化脚本·体系设计·体系落地
玉&心1 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
额额额对了1 小时前
Linux 数据库开发实战:使用 C 语言与 SQLite3 构建轻量级终端词典
linux·数据库·oracle
爱笑鱼1 小时前
Android 系统启动机制(六):Zygote 创建 App 为什么走 Socket?哪些是源码事实,哪些是架构解释?
android·linux
2601_962299881 小时前
Linux下运行Python脚本
linux·python·ubuntu·脚本·命令