ISCSI启动器

17 Mar 2025 | 6 分钟阅读

引言

Internet Small Computer System Interface initiator(互联网小型计算机系统接口启动器)是一种软件或硬件设备,它通过以太网适配器,在基于 TCP 的 IP 网络上,将主机计算机与外部 iSCSI 存储阵列之间的数据传输。

iSCSI 协议通过 TCP/IP 网络促进输入/输出 (I/O) 设备和块存储之间的通信。借助 SCSI 命令,该标准提供了一种连接数据存储设备的方法,并通过 LAN、WAN 甚至互联网实现对这些设备的块级访问。

ISCSI initiator

由于它便于在 IP 网络上部署存储区域网络,iSCSI 技术也被称为 SAN over IP 技术。该协议无需对现有网络基础设施进行大量升级即可在长距离上传输。与光纤通道和其他通信技术相比,iSCSI 能够在现有基础设施上运行是其独特的优势。

iSCSI 中的目标和启动器是什么?

iSCSI 是一种基于 IP 的协议,它促进启动器和目标(两种不同的设备类型)之间的通信。为了允许数据传输到存储设备(也称为 iSCSI 目标),iSCSI 启动器会启动 I/O 命令序列。iSCSI 启动器通过 TCP/IP 网络将命令通信到目标。如果启动器是软件,则它是客户端系统的设备驱动程序。

启动器通过 TCP/IP 网络发送命令,iSCSI 目标接收该命令并响应启动器。硬件或软件都可以是目标。硬件 iSCSI 目标可以是没有任何内部或嵌入式存储的网关设备,但它们通常是带有嵌入式存储的存储设备。

为了便于识别,所有 iSCSI 启动器和目标都被分配了唯一的名称。T11 网络地址管理局、扩展唯一标识符和 iSCSI 限定名称 (IQN) 是特殊 iSCSI 名称格式的示例,用于标识启动器和目标。每个 IQN 都是一个 ASCII 名称,代表美国信息交换标准代码,其字节大小为 233。

iSCSI 如何与启动器和目标协同工作?

iSCSI 架构以客户端-服务器模型为基础。启动器充当客户端,它们使用存储。目标充当服务器。它们通过通过 TCP/IP 网络发送的命令与启动器通信来共享存储。

启动器和目标之间的每次对话都会被分解成消息,这些消息作为 iSCSI 协议的数据单元发送。iSCSI 的基本信息单元,即 PDU,可以包含来自启动器的数据和通信参数、控制消息以及 SCSI 命令。

启动器和目标之间的所有通信都通过形成会话的 TCP 连接进行。一旦会话开始,就会生成会话 ID,并且启动器会与目标绑定(即两者都可以通信)。为了与目标通信,启动器必须首先检测目标节点并建立会话。然后,通过 iSCSI 命令和响应在启动器和目标之间传输或共享数据。

硬件 iSCSI 与软件 iSCSI

硬件 iSCSI 启动器是一种专用的基于主机的网络接口卡 (NIC),它包含了 iSCSI 和 TCP/IP 处理的资源。随着服务器处理核心能力的提高,对基于 NIC 的 TCP/IP 卸载引擎的需求已有所下降。如果网卡集成了加密功能,硬件 iSCSI 启动器可能仍然有助于安全性、数据保护或从本地磁盘启动服务器。

软件 iSCSI 启动器通常存在于服务器操作系统 (OS) 中,它将 SCSI I/O 命令集映射到 TCP/IP,以便 iSCSI 存储系统可以使用它。它通过利用主机 CPU 的资源来实现这一点。

基于软件的 iSCSI 启动器比基于硬件的 iSCSI 启动器更普遍。

如何设置 iSCSI 启动器?

Windows、Red Hat Enterprise Linux (RHEL) 和 Ubuntu 等许多操作系统都可以用于配置 iSCSI 启动器。

Windows

以下是在 Windows 上配置 iSCSI 启动器的步骤

  1. 使用“开始”菜单搜索“iSCSI Initiator”。
  2. 当“iSCSI Initiator Properties”(iSCSI 启动器属性)打开时,导航到“Targets”(目标)选项卡。
  3. 在“Target”(目标)框中输入 iSCSI 目标的 IP 地址或域名。
  4. 单击“Quick Connect”(快速连接)和“Done”(完成)继续。
  5. 如果目标设备未自动发现,请在“iSCSI Initiator Properties”(iSCSI 启动器属性)框中导航到“Discovery”(发现)选项卡,然后单击“Refresh”(刷新)。
  6. 完成添加目标设备和管理来自启动器的 iSCSI 会话的步骤。

然后,在通过“Run”(运行)命令对话框、Windows “开始”菜单、文件浏览器地址栏、控制面板和任务管理器访问 iSCSI 启动器之前,需要更改注册表项。也可以使用 PowerShell 中的 iscsicpl.exe 命令来打开它,但这确实需要管理员权限。

Red Hat Enterprise Linux

要在 RHEL 上配置 iSCSI 启动器,必须知道 iSCSI 目标的服务器主机名和 IP 地址。以下是在 RHEL 上配置 iSCSI 启动器的步骤

  1. 在客户端计算机上安装 iscsi-initiator-utils。
  2. 使用命令 # cat /etc/iscsi/initiatorname.iscsi 检查启动器名称。
  3. 检查启动器名称是否与 ACL 匹配,然后重新启动 iscsid 服务。
  4. 发现目标。
  5. 使用其显示的 IQN 登录目标。
  6. 在 iSCSI 磁盘上创建文件系统,并将“disk_name”替换为 /var/log/messages 文件中显示的 iSCSI 磁盘名称。
  7. 使用命令 # mkdir /mount/point 挂载文件系统,其中 /mount/point 应为分区的挂载点。
  8. 要使文件系统在系统启动时自动挂载,请编辑 /etc/fstab 文件,其中包含适当的 iSCSI 磁盘名称和分区的挂载点。

Ubuntu

在 Ubuntu 上配置 iSCSI 启动器之前,确认每个网络接口都配置正确至关重要。不正确的配置将导致 open-iscsi 包出现意外行为。要配置 Ubuntu 上的 iSCSI 启动器,请遵循以下步骤

  1. 使用命令 $ sudo apt install open-iscsi 安装 open-iscsi 包。
  2. 配置主配置文件 /etc/iscsi/iscsid.conf。
  3. 重新启动 iSCSI 守护程序。
  4. 配置环境变量,以便 iSCSI 服务了解哪些接口将用作路径。
  5. 配置 iscsi01 和 iscsi02 接口。
  6. 发现目标设备。
  7. 配置自动登录。
  8. 在操作系统初始化期间,验证所有必需的服务是否已启用。
  9. 重新启动 iscsid 服务并登录发现的逻辑单元。

使用 iSCSI 的优势

iSCSI 为将其作为 SAN 的一部分使用的企业提供了诸多优势。以下是最常见的优势:

  1. 内置 TOE。网络接口卡 (NIC) 包含 TCP 卸载引擎 (TOE) 技术,该技术将 TCP/IP 堆栈处理卸载到网络控制器,从而减轻了主机 CPU 的负担。
  2. 低初始投资。使用 iSCSI 协议访问存储设备有助于企业保持较低的总拥有成本 (TCO)。除了较低的 TCO 外,iSCSI 还创建了一个易于安装且维护需求极低的 SAN。
  3. 无需额外硬件。iSCSI 利用基于 IP 的技术、TCP/IP 和以太网互操作性,无需额外硬件。
  4. 增强的安全性。iSCSI 为存储网络带来了额外的安全层。
  5. 低维护和培训费用。iSCSI 协议无需网络人员额外培训即可使用,并且在无需大量监督或管理的情况下增加了存储使用量,从而降低了运营成本。
  6. 高度的兼容性。由于 IP 是一种普遍的、非专有的全球技术,因此不同的网络存储设备可以无缝协同工作。
  7. 灵活的扩展性。通过利用现有的网络硬件和其他设备来创建 iSCSI SAN 环境,企业可以轻松地扩展和增加存储容量。
  8. 低功耗和成本。当在线交换机数量减少时,基础设施、电力和冷却成本都会降低。

iSCSI 的局限性是什么?

与大多数技术一样,iSCSI 除了许多优点之外,也存在局限性。以下是最常见的局限性:

  1. 性能受限。当 iSCSI 技术在处理 iSCSI 和业务数据的混合网络中使用时,会导致延迟增加和性能问题。
  2. 不兼容 SSD。由于 iSCSI 依赖于串行技术,因此无法与固态存储设备 (SSD) 一起使用。
  3. 有限容量。硬盘的最大 LUN 容量为 250 TB,NAS 设备的は最大容量为 144 TB。
  4. 有限快照。iSCSI 应用程序最多可以使用 64 个文件共享卷和 512 个快照(存储数据的虚拟副本)。快照功能失败将导致数据丢失和 iSCSI 性能下降。
  5. 有限连接。iSCSI 每个会话的连接数也有限制,为 255 个。如果会话大小超过 255,目标将拒绝额外的并发连接尝试。

下一个主题最简单的协议