iSCSI 全称 Internet Small Computer System Interface。简单来说,它是一种在 IP 网络 上传输 SCSI 命令的协议
一个典型的 iSCSI 架构包含两个主要角色:
iSCSI Target(目标端):
- 是什么: 存储资源的提供者。它是一台服务器或专用存储设备,将自身的物理存储空间(如硬盘、RAID阵列、LUN)通过 iSCSI 协议 "导出" 到网络上
- 功能: 监听网络请求,模拟一个 SCSI 设备
- 常见实现:
- 专业存储设备( 如Dell EMC、NetApp、Synology、QNAP 的 NAS/SAN )。
- 服务器软件:如 Windows Server 的 iSCSI 目标服务器,Linux 上的 LIO 或 SCSI Target Framework,以及 FreeNAS/TrueNAS 等。
iSCSI Initiator(发起端):
- 是什么: 存储资源的使用者。它是需要连接远程存储的客户端(如应用服务器、虚拟机宿主机)
- 功能: 像安装驱动程序一样,发起连接请求,发现并登录到 Target,然后在本地操作系统里生成一块新的 "磁盘"
- 常见实现:
- Windows: 内置的 iSCSI 发起程序(可在 "功能和角色" 中安装)
- Linux: 开源的 open-iscsi 软件包
- VMware ESXi: 内置的软件 iSCSI 适配器
- 硬件 HBA 卡: 专用的 iSCSI HBA 卡,可卸载 TCP/IP 协议处理,提升性能
# 第一步:安装 iSCSI Target 软件并设置服务状态
# Debian/Ubuntu
apt update
apt install -y targetcli-fb
# Redhat/CentOS
yum -y install targetcli
systemctl enable target --now
systemctl status target
# 第二步:创建后端存储
# nvme0n1 是系统盘,sda 使用整块硬盘共享给 Windows,sdb 作为 LVM 逻辑卷共享给 Linux

# 配置 sda

# 配置 sdb


# 第三步:创建 iSCSI Target
创建 Target IQN(命名规则:iqn.YYYY-MM.域名反转:标识)

# 第四步:配置 LUN

# 第五步:配置 ACL

# 第六步:配置 portals

# 第七步:客户端测试
# iscsiadm discovery

# 设置 InitiatorName 并测试登录

# 若 lsblk 未查看到 iscsi-lv01 可执行 rescan-scsi-bus.sh 命令扫描下总线后再查看

# 格式化、挂载、写入文件测试

# Linux 客户端设置自动连接和启动

# 配置持久化挂载