在 RHEL/CentOS 7 上使用 iSCSI Target 和 Initiator 创建集中式安全存储


iSCSI(Internet Small Computer System Interface)是一种存储网络技术,允许在 IP 网络上传输块级数据。它是传统光纤通道 SAN(存储区域网络)的替代方案,后者使用专用电缆将存储设备连接到服务器。iSCSI 可以提供一种经济高效且灵活的方式来创建集中式存储基础设施。

在本教程中,我们将在 RHEL/CentOS 7 服务器上设置 iSCSI target,并使用另一台 RHEL/CentOS 7 服务器上的 iSCSI initiator 连接到它。我们将配置 CHAP(Challenge-Handshake Authentication Protocol)身份验证,以确保 target 和 initiator 之间的安全通信。

步骤 1:安装所需的软件包

首先,我们需要在 target 和 initiator 服务器上安装所需的软件包。在 target 服务器上,输入以下命令:

sudo yum install scsi-target-utils -y

这将安装“scsi-target-utils”软件包,该软件包提供配置 iSCSI target 所需的工具。在 initiator 服务器上,输入以下命令:

sudo yum install iscsi-initiator-utils -y

这将安装“iscsi-initiator-utils”软件包,该软件包提供连接到 iSCSI target 所需的工具。

步骤 2:配置 iSCSI Target

现在,我们将配置 target 服务器上的 iSCSI target。target 服务器将向 initiator 服务器提供存储。target 服务器将充当 iSCSI target。

要配置 iSCSI target,请按照以下步骤操作:

  • 创建一个新的 LUN(逻辑单元号),该 LUN 将与 initiator 服务器共享。在这个例子中,我们将创建一个 10 GB 的 LUN。

sudo dd if=/dev/zero of=/var/lib/iscsi_disks/lun01 bs=1M count=10000

    这会在“/var/lib/iscsi_disks”目录中创建一个名为“lun01”的 10 GB 文件。

  • 创建一个新的 iSCSI target 配置文件:

sudo nano /etc/tgt/conf.d/iscsi.conf

    将以下几行添加到文件中:

<target iqn.2021-05.example.com:lun01>
  backing-store /var/lib/iscsi_disks/lun01
  incominguser chap_user secret_password
</target>

    将“iqn.2021-05.example.com:lun01”替换为 target 的唯一标识符。将“chap_user”替换为 CHAP 身份验证的用户名,并将“secret_password”替换为 CHAP 身份验证的安全密码。

  • 重新启动 tgtd 服务以应用更改:

sudo systemctl restart tgtd

步骤 3:配置 iSCSI Initiator

现在,我们将配置 initiator 服务器上的 iSCSI initiator。initiator 服务器将连接到 target 服务器上的 iSCSI target。要配置 iSCSI initiator,请按照以下步骤操作:

  • 通过输入以下命令来发现 iSCSI target:

sudo iscsiadm -m discovery -t sendtargets -p target_ip_address

    将“target_ip_address”替换为 target 服务器的 IP 地址。

  • 通过输入以下命令登录到 iSCSI target:

sudo iscsiadm -m node -T iqn.2021-05.example.com:lun01 -p target_ip_address -l

    将“iqn.2021-05.example.com:lun01”替换为 target 的唯一标识符,并将“target_ip_address”替换为 target 服务器的 IP 地址。

  • 通过输入以下命令验证 iSCSI target 是否已连接:

sudo lsblk

    此命令列出 initiator 机器上可用的块设备。您应该看到已连接的 iSCSI target 设备列出。

步骤 4:在 iSCSI Target 上创建文件系统

现在 iSCSI target 已连接到 initiator 机器,我们可以在其上创建一个文件系统。在这个例子中,我们将在 iSCSI target 上创建一个 ext4 文件系统。要创建 iSCSI target 上的文件系统,请按照以下步骤操作:

  • 输入以下命令在 iSCSI target 上创建一个新分区:

sudo fdisk /dev/sdb

    注意:将“/dev/sdb”替换为系统上 iSCSI target 的块设备名称。

  • 在 fdisk 提示符下,按顺序输入以下命令:

    • 键入“n”以创建新分区。

    • 键入“p”以创建主分区。

    • 键入“1”以分配分区号。

    • 按“Enter”两次以接受分区的第一个和最后一个扇区的默认值。

    • 键入“w”以写入更改并退出 fdisk。

  • 接下来,使用 ext4 文件系统格式化新分区,输入以下命令:

sudo mkfs.ext4 /dev/sdb1

    注意:将“/dev/sdb1”替换为您在上一步中创建的分区名称。

步骤 5:挂载 iSCSI Target 文件系统

要挂载 iSCSI target 上新创建的文件系统,请按照以下步骤操作:

  • 通过输入以下命令创建文件系统的挂载点:

sudo mkdir /mnt/iscsi_target
  • 通过输入以下命令挂载文件系统:

sudo mount /dev/sdb1 /mnt/iscsi_target
  • 通过输入以下命令验证文件系统是否已挂载:

df -h

    此命令列出当前挂载在系统上的文件系统。您应该看到新挂载的 iSCSI target 文件系统列出。

步骤 6:配置 iSCSI Target 文件系统的自动挂载

为了确保 iSCSI target 文件系统在重新引导后自动挂载到 initiator 机器上,我们需要配置系统在启动时挂载它。为此,请按照以下步骤操作:

  • 在文本编辑器中打开 /etc/fstab 文件:

sudo nano /etc/fstab
  • 在文件末尾添加以下行以自动挂载 iSCSI target 文件系统:

/dev/sdb1 /mnt/iscsi_target ext4 defaults 0 0

    保存并退出文件。

步骤 7:测试 iSCSI Target 文件系统

要测试 iSCSI target 文件系统,请在挂载点上创建一个测试文件,并验证 initiator 和 target 机器都可以访问它。

  • 要创建一个测试文件,请输入以下命令:

sudo touch /mnt/iscsi_target/testfile.txt
  • 要验证测试文件是否存在于 iSCSI target 上,请在 target 机器上输入以下命令:

sudo ls /mnt/iscsi_target
  • 要验证从 initiator 机器可以访问测试文件,请在 initiator 机器上输入以下命令:

sudo ls /mnt/iscsi_target

如果在这两种情况下都列出了测试文件,则 iSCSI target 文件系统已成功配置,并且可以从两台机器访问。

结论

在本教程中,我们演示了如何在 RHEL/CentOS 7 上使用 iSCSI target 和 initiator 配置集中式安全存储系统。通过在一台机器上创建 iSCSI target 并将其连接到另一台机器上的 initiator,我们可以创建一个可以从多台机器安全访问的集中式存储系统。

更新于:2023年6月23日

浏览量:95

开启您的职业生涯

通过完成课程获得认证

开始学习
广告