Linux 如何连接 iSCSI 存储(CentOS为例)

什么是 iSCSI

iSCSI(Internet Small Computer System Interface)是一种基于IP网络的存储协议,允许主机(计算机或服务器)通过TCP/IP网络访问远程存储设备。它将SCSI(Small Computer System Interface)命令封装在IP数据包中,实现了远程存储的访问和管理。iSCSI是一种常见的存储区域网络(SAN)技术,用于构建企业级存储解决方案。

iSCSI的工作原理

iSCSI的基本工作原理是将SCSI命令和数据封装到IP数据包中,并通过网络传输。这包括以下几个关键组件:

  1. Initiator(发起者): 发起iSCSI请求的设备,通常是服务器或计算机。Initiator发送SCSI命令给存储设备。
  2. Target(目标): 接收并响应iSCSI请求的存储设备。Target可以是磁盘阵列、存储服务器或其他存储硬件。
  3. iSCSI协议: 定义了在Initiator和Target之间传输SCSI命令和数据的方式,包括封装、传输和解封装的过程。

iSCSI的典型应用场景

  • 数据中心: 大规模存储需求的数据中心,通过iSCSI构建SAN,实现集中存储和管理。
  • 虚拟化环境: 在虚拟化平台(如VMware、Hyper-V)中,通过iSCSI连接虚拟机和存储资源,提高存储灵活性和利用率。
  • 远程备份和灾难恢复: 通过iSCSI实现异地备份和灾难恢复,确保数据安全性和可用性。
  • 企业存储: 各种规模的企业通过iSCSI实现文件存储、数据库存储等应用,提高数据管理效率。

配置iSCSI的基本步骤

  1. 配置Target: 在存储设备上配置iSCSI Target,设置目标名称和访问权限。
  2. 配置Initiator: 在主机上安装并配置iSCSI Initiator软件,输入Target的IP地址和目标名称。
  3. 连接和发现: Initiator通过网络连接到Target,发现并映射可用的存储资源。
  4. 使用和管理: 在操作系统中将iSCSI存储资源作为本地磁盘使用,并进行常规的存储管理操作。

开始实操

安装iSCSI Initiator

yum install -y iscsi-initiator-utils

配置iSCSI Initiator(可选)

vim /etc/iscsi/initiatorname.iscsi

在该文件中,可以自定义Initiator名称。

发现iSCSI目标:

sudo iscsiadm -m discovery -t sendtargets -p [目标IP地址]

当配置了 CHAP 认证时:

先进行账号密码认证:

iscsiadm -m node -T iqn.2004-04.com.qnap:ts-464c:iscsi.test.6a1945 -p 192.168.6.200 --op=update --name node.session.auth.authmethod --value=CHAP
iscsiadm -m node -T iqn.2004-04.com.qnap:ts-464c:iscsi.test.6a1945 -p 192.168.6.200 --op=update --name node.session.auth.username --value=yuwanpeng
iscsiadm -m node -T iqn.2004-04.com.qnap:ts-464c:iscsi.test.6a1945 -p 192.168.6.200 --op=update --name node.session.auth.password --value=yuwanpeng666

参数释义:
-m node: 这个参数指定了操作的对象类型,即节点。
-T iqn.2004-04.com.qnap:ts-464c:iscsi.test.6a1945: 这个参数指定了目标的唯一标识符(IQN)。IQN是iSCSI设备的命名标准,用于唯一标识每个iSCSI设备。在这个例子中,指定了一个名为iqn.2004-04.com.qnap:ts-464c:iscsi.test.6a1945的目标。
-p 192.168.6.200: 这个参数指定了目标的IP地址。
–op=update: 这个参数指定了要执行的操作,即更新节点信息。
–name node.session.auth.authmethod: 这个参数指定了要更新的节点属性名称,即认证方法。
–value=CHAP:这个参数指定了要设置的节点属性值,即认证方法的值,这里设置为CHAP,表示使用CHAP认证方式。
–name node.session.auth.username: 这个参数指定了要更新的节点属性名称,即用户名。
–value=yuwanpeng:这个参数指定了要设置的节点属性值,即用户名。
–name node.session.auth.password: 这个参数指定了要更新的节点属性名称,即密码。
–value=yuwanpeng666: 这个参数指定了要设置的节点属性值,即密码。

如果iSCSI目标还配置了反向CHAP(Mutual CHAP)

即要求iSCSI发起者也进行身份验证,则还需配置反向CHAP的用户名和密码:

sudo iscsiadm -m node -T [目标名称] -p [目标IP地址] --op=update --name node.session.auth.username_in --value=[反向CHAP用户名]
sudo iscsiadm -m node -T [目标名称] -p [目标IP地址] --op=update --name node.session.auth.password_in --value=[反向CHAP密码]

再发起连接:

iscsiadm -m node -T iqn.2004-04.com.qnap:ts-464c:iscsi.test.6a1945 -p 192.168.6.200  -l

开机自动连接:

sudo iscsiadm -m node -T [目标名称] -p [目标IP地址] --op update -n node.startup -v automatic

大功告成!

CHAP的工作原理:
Challenge(挑战): 服务器向客户端发送一个随机生成的质询(Challenge)。
Response(响应): 客户端使用预先共享的秘密(通常是密码)和质询,通过一个单向哈希函数(如MD5)生成一个响应。
Handshake(握手): 客户端将响应发送回服务器。服务器也使用预先共享的秘密和同样的质询生成一个响应,并与客户端的响应进行比较。
Verification(验证): 如果客户端的响应与服务器生成的响应匹配,身份验证成功;否则,验证失败,连接被拒绝。

CHAP的优势:
动态质询: 由于每次连接使用不同的随机质询,CHAP可以防止重放攻击。
单向哈希: 使用单向哈希函数确保密码不会在网络上传输,从而增加安全性。
周期性验证: CHAP在会话期间可以周期性地重新验证客户端,进一步提高安全性。

iSCSI环境中CHAP:
在iSCSI环境中,CHAP认证可以用来确保客户端和服务器之间的连接是合法的,防止未授权的设备访问存储资源。配置iSCSI时,管理员可以设置单向或双向CHAP认证:
单向CHAP认证:服务器验证客户端的身份。
双向CHAP认证:双方互相验证身份,增加了安全性
通过使用CHAP认证,iSCSI存储系统可以提供更高的安全性,保护数据免受未经授权的访问。

赞(2) 打赏
未经允许不得转载:万万没想到 » Linux 如何连接 iSCSI 存储(CentOS为例)

评论 抢沙发

评论前必须登录!

立即登录   注册

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

登录

找回密码

注册