Linux网络iSCSI协议详解(从零开始搭建iSCSI存储服务)

V5主机测评

在现代数据中心和云计算环境中,iSCSI协议(Internet Small Computer System Interface)是一种广泛使用的块级存储技术。它允许你通过标准的TCP/IP网络将远程存储设备挂载为本地磁盘,从而实现高效、灵活的存储管理。本教程将手把手教你如何在Linux系统中配置iSCSI initiator(客户端)并连接到iSCSI target(服务器),即使是完全的新手也能轻松上手。

什么是iSCSI?

iSCSI是一种基于IP网络传输SCSI命令的协议。简单来说,它让你可以通过网络把远程硬盘“当成”本地硬盘来使用。这种技术常用于虚拟化平台、数据库服务器等需要高性能、低延迟存储的场景。

Linux网络iSCSI协议详解(从零开始搭建iSCSI存储服务)

准备工作

在开始之前,请确保:

  • 你有一台运行Linux的客户端机器(如Ubuntu、CentOS等)
  • 你有一个可访问的iSCSI target服务器(可以是NAS设备或另一台Linux服务器)
  • 客户端与target之间网络互通,且防火墙允许iSCSI端口(默认3260)通信

步骤一:安装iSCSI initiator工具

在大多数Linux发行版中,你需要安装open-iscsi包:

# Ubuntu/Debiansudo apt updatesudo apt install open-iscsi# CentOS/RHELsudo yum install iscsi-initiator-utils# 或者在较新版本中sudo dnf install iscsi-initiator-utils

步骤二:启动并启用iSCSI服务

sudo systemctl start iscsidsudo systemctl enable iscsid

步骤三:发现iSCSI target

使用iscsiadm命令扫描可用的target。假设你的target服务器IP是192.168.1.100

sudo iscsiadm -m discovery -t st -p 192.168.1.100

如果成功,你会看到类似以下输出:

192.168.1.100:3260,1 iqn.2024-06.com.example:storage.disk1

步骤四:登录并挂载iSCSI目标

使用发现到的target名称进行登录:

sudo iscsiadm -m node -T iqn.2024-06.com.example:storage.disk1 -p 192.168.1.100 --login

登录成功后,系统会自动创建一个块设备(如/dev/sdb)。你可以用lsblk命令查看:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda      8:0    0   20G  0 disk ├─sda1   8:1    0  512M  0 part /boot└─sda2   8:2    0 19.5G  0 part /sdb      8:16   0   10G  0 disk   ← 这就是iSCSI磁盘!

步骤五:格式化并挂载使用

首次使用时,需要格式化该磁盘(注意:这会清除所有数据):

sudo mkfs.ext4 /dev/sdbsudo mkdir /mnt/iscsisudo mount /dev/sdb /mnt/iscsi

现在你就可以像使用本地磁盘一样使用这个远程存储了!

自动挂载设置(可选)

为了让系统重启后自动重新连接iSCSI target并挂载,你可以将挂载信息写入/etc/fstab,但更推荐的做法是让iSCSI initiator自动重连。通常,只要登录过一次,open-iscsi会在系统启动时自动重新连接已保存的target。

常见问题与安全提示

  • 性能问题:确保网络带宽充足,建议使用千兆或万兆以太网。
  • 安全性:iSCSI默认不加密,建议在受信任的内网中使用,或配合IPsec/VLAN增强安全。
  • 多路径:生产环境可配置多路径I/O(multipath)提高可用性。

通过本教程,你应该已经掌握了在Linux中使用iSCSI initiator连接远程存储的基本方法。无论你是搭建家庭实验室还是管理企业级存储,Linux网络存储中的iSCSI都是一个强大而实用的工具。

提示:操作前请务必备份重要数据,避免误操作导致数据丢失。

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。