编程技术分享平台

网站首页 > 技术教程 正文

Linux下ISCSI存储部署教程

xnh888 2025-01-20 17:23:23 技术教程 113 ℃ 0 评论

在Linux系统下部署iSCSI存储是一项常见的任务,它能够为系统提供远程块级存储,使多个服务器可以通过网络访问共享的存储设备。iSCSI是一种基于TCP/IP的协议,通过IP网络来传输SCSI指令,允许远程存储看起来就像本地硬盘一样。本文将详细介绍如何在Linux系统上部署iSCSI存储,并解释每个步骤的相关原理和配置要求。

一、安装iSCSI Initiator软件

1. 安装软件

首先,我们需要在Linux系统上安装iSCSI Initiator软件。iSCSI Initiator用于连接和访问远程的iSCSI存储设备。

在CentOS或RHEL系统上,可以使用以下命令安装:

yum install -y iscsi-initiator-utils

解释:

  • yum install -y iscsi-initiator-utils 命令将从YUM仓库中下载并安装 iscsi-initiator-utils,该工具包含了管理iSCSI连接的必要命令和服务。
  • -y 参数表示自动确认安装,避免手动输入。

二、配置iSCSI Initiator

1. 编辑iSCSI Initiator名称

iSCSI Initiator名称必须是全局唯一的,以便目标设备能够识别和允许连接。

打开iSCSI Initiator的配置文件 /etc/iscsi/initiatorname.iscsi,并设置唯一的Initiator名称。例如:

vi /etc/iscsi/initiatorname.iscsi

找到 InitiatorName字段,修改为类似以下的值:

InitiatorName=iqn.2023-07.com.example:hostname

解释:

  • IQN (iSCSI Qualified Name): 是iSCSI中用于标识Initiator或Target的唯一名称,通常以域名反转格式来命名(iqn.year-month.reverse-domain:hostname)。
  • 编辑这个文件是为了确保iSCSI Initiator有一个独特的标识符,用于后续的目标连接和认证。

三、发现iSCSI目标

接下来,使用 iscsiadm命令发现网络中可用的iSCSI目标。

1. 发现目标设备

使用以下命令发现目标:

iscsiadm -m discovery -t st -p <target_IP_address>

将 <target_IP_address>替换为iSCSI目标的实际IP地址。

解释:

  • iscsiadm 是管理iSCSI连接的主要命令工具。
  • -m discovery:表示我们要进行发现操作,查找网络上的iSCSI目标。
  • -t st:表示使用SendTargets发现模式,发送iSCSI查询请求。
  • -p <target_IP_address>:指定目标的IP地址。

发现目标后,系统将列出所有在该目标上可用的iSCSI设备。例如:

192.168.1.100:3260,1 iqn.2023-07.com.example:storage.target1

四、登录到iSCSI目标

发现iSCSI目标后,我们可以选择连接到其中一个目标。

1. 登录目标

使用以下命令登录到指定的iSCSI目标:

iscsiadm -m node -T <target_iqn> -l

将 <target_iqn>替换为之前发现的目标的IQN,例如 iqn.2023-07.com.example:storage.target1。

解释:

  • -m node:表示要对已发现的节点进行操作。
  • -T <target_iqn>:指定目标的IQN(Qualified Name)。
  • -l:表示要登录目标,建立连接。

一旦成功登录,系统会连接到该存储设备并将其映射为本地块设备。


五、配置自动登录(可选)

为了确保在每次系统启动时自动连接到iSCSI目标,可以配置自动登录功能。

1. 配置自动登录

打开iSCSI配置文件 /etc/iscsi/iscsid.conf并找到 node.startup选项:

vi /etc/iscsi/iscsid.conf

将 node.startup设置为 automatic:

node.startup = automatic

解释:

  • node.startup = automatic:此配置项确保在系统启动时,iSCSI Initiator会自动尝试重新登录所有已配置的目标,避免手动操作。
  • 修改这个设置后,系统会在每次启动时自动连接到之前配置的iSCSI存储设备。

六、挂载iSCSI存储

1. 查看已登录的设备

在成功登录到iSCSI目标后,使用以下命令查看系统中可用的设备:

lsblk

解释:

  • lsblk:该命令列出系统中的所有块设备,包括本地硬盘、连接的iSCSI存储等。
  • 此命令输出将显示已连接的iSCSI存储设备,通常是类似 /dev/sdb或 /dev/sdc这样的设备文件。

2. 格式化并挂载存储

根据需求,你可以选择将iSCSI存储设备格式化并挂载。例如,假设新的iSCSI设备被映射为 /dev/sdb,我们可以执行以下步骤:

格式化设备:

mkfs.ext4 /dev/sdb

创建挂载点并挂载设备:

mkdir /mnt/iscsi_storage
mount /dev/sdb /mnt/iscsi_storage

解释:

  • mkfs.ext4:格式化设备为EXT4文件系统。
  • mkdir /mnt/iscsi_storage:创建一个挂载点目录。
  • mount /dev/sdb /mnt/iscsi_storage:将iSCSI存储设备挂载到该目录,以便系统使用。

3. 持久化挂载

为了在系统重启后自动挂载iSCSI存储设备,可以将其写入 /etc/fstab文件:

echo '/dev/sdb /mnt/iscsi_storage ext4 defaults,_netdev 0 0' >> /etc/fstab

解释:

  • /etc/fstab:这个文件用于定义系统启动时自动挂载的文件系统。
  • _netdev:表示这是一个网络设备,挂载过程应在网络可用之后进行。

七、iSCSI连接管理

1. 断开iSCSI连接

如果需要断开iSCSI连接,可以使用以下命令:

iscsiadm -m node -T <target_iqn> -u

解释:

  • -u:表示断开与目标的连接。

2. 停止iSCSI服务

如果要停止iSCSI服务,可以使用以下命令:

systemctl stop iscsi

解释:

  • systemctl stop iscsi:停止iSCSI服务,将断开所有当前的iSCSI连接。

3. 设置iSCSI服务开机自启动

为了在系统启动时自动启动iSCSI服务,可以运行以下命令:

systemctl enable iscsi

八、总结

在Linux系统下部署iSCSI存储是实现远程存储共享的高效方法。通过以下步骤,你可以成功完成部署和配置:

  1. 安装iSCSI Initiator工具(iscsi-initiator-utils)。
  2. 配置唯一的iSCSI Initiator名称。
  3. 发现可用的iSCSI目标设备。
  4. 登录到指定的iSCSI目标。
  5. (可选)配置系统启动时自动登录iSCSI目标。
  6. 挂载并格式化iSCSI存储。
  7. 管理iSCSI连接,包括自动登录、挂载管理等。

分析说明表

步骤

说明

原理解释

安装iSCSI Initiator

安装 iscsi-initiator-utils工具包,用于管理iSCSI连接

该工具提供了必要的命令行工具来配置、管理iSCSI连接

配置Initiator名称

配置唯一的iSCSI Initiator名称,便于识别和认证

IQN用于标识Initiator或Target,是iSCSI的核心标识符

发现iSCSI目标

使用 iscsiadm发现网络中的iSCSI目标

通过SendTargets模式查询目标设备的可用性

登录目标

使用 iscsiadm登录并连接到iSCSI存储

登录过程通过TCP/IP建立连接并将远程存储设备映射为本地设备

自动登录配置

配置系统启动时自动登录到iSCSI目标

系统每次启动后自动尝试重新

连接到所有配置的目标 |
| 挂载存储 | 格式化并挂载远程存储设备,允许操作系统使用iSCSI存储 | 挂载后,远程设备与本地设备类似,可以被普通应用程序使用 |

通过这些步骤,您可以确保在Linux系统上实现高效的iSCSI存储部署,并根据实际需求进行进一步的优化和调整。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表