搭建iSCSI服务

木头的喵喵拖孩

iSCSI(Internet Small Computer System Interface)是一种基于因特网及 SCSI-3 协议下的存储技术,
简单来说就是把网络上的硬盘通过网线挂载成电脑的本地硬盘,方便扩容。
接下来就是简单的搭建过程

硬件处理

将硬盘插入主板,然后开机,先查看一下硬盘信息

1
sudo fdisk -l

找到你的新硬盘,硬盘一般按顺序起名,例如从第一个硬盘开始起名:/dev/sda、/dev/sdb、/dev/sdc……
/dev/sda 一般是系统盘,我的新硬盘是第二个,所以是 /dev/sdb

格式化硬盘并分区

注意:如果你的硬盘只想通过 iSCSI 提供给 Windows 系统使用,请忽略此处内容,直接参考Windows-格式化硬盘并分区
注意:进行此处操作时,请关闭 iSCSI 服务

1
2
sudo parted /dev/sdb mklabel gpt  # 初始化磁盘为GPT格式
sudo parted /dev/sdb mkpart primary 0% 100% # 创建完整空间的分区(如/dev/sdb1)

刷新分区表,强制内核重新读取分区信息

1
sudo partprobe /dev/sdb

格式化分区为 exFAT

1
2
3
4
5
6
# 安装exFAT支持包(Ubuntu 22.04默认未集成exFAT驱动)
sudo apt update
sudo apt install exfat-fuse exfatprogs

# 格式化
sudo mkfs.exfat /dev/sdb1

验证文件系统格式化结果

1
lsblk -f /dev/sdb  # 应显示文件系统类型为exfat

临时挂载测试

1
2
sudo mkdir /mnt/exfat_disk  # 创建挂载点
sudo mount /dev/sdb1 /mnt/exfat_disk

持久化挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 获取硬盘UUID
sudo blkid /dev/sdb1 # 输出示例:/dev/sdb1: UUID="ABCD-1234" TYPE="exfat"
# 获取用户uid和gid
id -u $USER # 输出示例:1000
id -g $USER # 输出示例:1000

# 修改/etc/fstab文件
sudo vim /etc/fstab
# 添加一行,后面两个0分别代表:备份表及:无需备份;检查顺序:无需检查
UUID=ABCD-1234 /mnt/iscsi exfat defaults,uid=1000,gid=1000 0 0

# 测试挂载
sudo mount -a # 若无错误则配置正确

# 确认挂载状态
lsblk -f /dev/sdb1

Ubuntu 安装 tgt

Ubuntu 官方推荐使用 tgt 作为 iSCSI 目标服务

1
2
sudo apt update
sudo apt install tgt

然后创建配置文件

1
sudo vim /etc/tgt/conf.d/iscsi.conf

写入配置内容

1
2
3
4
5
6
<target iqn.2025-05.yourdomain:storage.sdb>
backing-store /dev/sdb1 # 指向新硬盘分区
write-cache on # 启用写入缓存提升性能
allow-in-use yes # 允许多客户端同时挂载(需注意数据一致性)
initiator-address ALL # 允许所有IP访问(生产环境建议限制IP段)
</target>

这里的 iqn.2025-05.yourdomain:storage.sdb 相当于该配置的 id,后续会使用到。
重启服务并验证配置

1
2
sudo systemctl restart tgt
sudo tgtadm --mode target --op show # 查看目标状态

开放 iSCSI 端口,iSCSI 默认使用 TCP 3260端口,这里可以通过宝塔面板配置

Windows 客户端挂载 ​

打开 iSCSI 发起程序,在 ​​ 发现 ​​ 标签页点击 发现门户,输入 Ubuntu 服务器 IP 和端口(默认 3260),
目标 标签页选择发现的 IQN(如 _iqn.2025-05.yourdomain:storage.sdb_),点击 连接

格式化硬盘并分区

上一步完成后,如果你的新硬盘已经格式化并分区,就可以直接在 此电脑 中看到该硬盘,
如果看不到,说明硬盘的格式化工作或分区工作没做好,
这里推荐 傲梅分区助手 傲梅分区助手(百度网盘)

已知问题

可能由于 Windows 和 Ubuntu 对于文件系统(exFAT、NTFS 等)的支持不统一,导致在 Windows 上格式化的文件系统无法在 Ubuntu 上挂载,而在 Ubuntu 上格式化的文件系统无法被 Windows 识别。

其他

我搭建 iSCSI 服务主要是给我的 Windows 系统存储扩容。
普通情况下,机械硬盘顺序读写速度通常为 150-190MB/s,
我选择将其安装到另一台电脑(要有千兆网卡),通过 Ubuntu 系统部署为 iSCSI 服务,然后接入到千兆局域网,
Windows 系统的电脑通过网络使用该硬盘(和本地硬盘一样的使用方法),速度也可以达到千兆局域网的上限 125MB/s

  • 标题: 搭建iSCSI服务
  • 作者: 木头的喵喵拖孩
  • 创建于: 2025-05-21 21:10:26
  • 更新于: 2025-05-22 21:44:04
  • 链接: https://blog.xx-xx.top/2025/05/21/搭建iSCSI服务/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。