搭建 iSCSI 服务器
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 (LUN name) 可执行 rescan-scsi-bus.sh 命令扫描下总线后再查看

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

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

# 持久化挂载
# 由于 iSCSI 启动器(initiator)在系统启动后(网络就绪后)才连接目标器(target),其设备名的分配顺序晚于本地磁盘,且受网络延迟、目标器响应速度等影响,每次启动可能分配不同的 sdX,所以在 fstab 中强烈推荐用 UUID 进行挂载

# Windows 客户端测试
# 搜索框搜索 "iSCSI发起程序" 或运行框输入 iscsicpl.exe
# 在配置中更改发起程序名称

# 连接 iSCSI Target

# 连接成功后打开磁盘管理就可以看到 Linux 共享的 500G 硬盘,且分配盘符后相当于配置了持久化挂载


浙公网安备 33010602011771号