IBM Cloud Docs
CloudLinux 上安装 iSCSI 卷

CloudLinux 上安装 iSCSI 卷

本教程将指导您如何在运行 8 操作 CloudLinux 系统的服务器上挂载 卷 IBM Cloud® Block Storage for Classic。 您将创建从一个主机网络接口到存储阵列的两个目标 IP 的两个连接。

若您使用 Linux® 其他操作系统,请参阅您所用发行版的文档,并确保多路径功能支持ALUA以实现路径优先级控制。

准备工作

如果多个主机安装同一 Block Storage for Classic 卷而不进行协同管理,那么数据存在损坏风险。 如果多个主机同时对卷进行了更改,那么可能会发生卷损坏。 您需要集群感知的共享磁盘文件系统以防止数据丢失,例如 Microsoft Cluster Shared Volumes (CSV),Red Hat Global File System (GFS2),VMware® VMFS 等。 有关更多信息,请参阅您的操作系统文档。

最好是在绕过防火墙的 VLAN 上运行存储流量。 通过软件防火墙运行存储流量会延长等待时间,并对存储器性能产生负面影响。 有关将存储流量路由到其自己的 VLAN 接口的更多信息,请参阅 常见问题解答

开始之前,请确保要访问该卷的主机 Block Storage for Classic 已获得授权。 有关详细信息,请参阅For more information, see 在控制台中授权主机从 CLI 授权主机使用 Terraform 授权主机

安装 iSCSI 和多路径实用程序

请确保您的系统已更新,并包含 iscsi-initiator-utilsdevice-mapper-multipath 软件包。

  1. 使用以下命令安装软件包。

    dnf install iscsi-initiator-utils device-mapper-multipath
    
  2. 启动服务。

    chkconfig multipathd on
    
    chkconfig iscsid on
    

设置多路径

您可以使用 mpathconf 实用程序设置 DM Multipath,该实用程序将创建多路径配置文件 /etc/multipath.conf

  • 如果 /etc/multipath.conf 文件存在,那么 mpathconf 实用程序可以对其进行编辑。
  • 如果 /etc/multipath.conf 文件不存在,那么 mpathconf 实用程序将从头开始创建 /etc/multipath.conf 文件。
  1. 输入带有 --enable 选项的 mpathconf 命令。

    # mpathconf --enable --user_friendly_names n
    
  2. 使用以下最小配置编辑该 /etc/multipath.conf 文件。

    defaults {
    user_friendly_names no
    max_fds max
    flush_on_last_del yes
    queue_without_daemon no
    dev_loss_tmo infinity
    fast_io_fail_tmo 5
    }
    # All data in the following section must be specific to your system.
    blacklist {
    wwid "SAdaptec*"
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
    }
    devices {
    device {
    vendor "NETAPP"
    product "LUN"
    path_grouping_policy group_by_prio
    features "2 pg_init_retries 50"
    no_path_retry queue
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    

配置文件的初始缺省值部分用于配置系统,以便多路径设备的名称格式为 /dev/mapper/mpath n,其中 mpath n 是设备的 WWID。

  1. 如果需要,请保存配置文件并退出编辑器。

  2. 运行以下命令:

    # systemctl start multipathd.service
    

    如果在启动多路径守护程序之后需要编辑多路径配置文件,那么必须发出 systemctl reload multipathd.service 命令以使更改生效。

更新 /etc/iscsi/initiatorname.iscsi 文件

使用控制台 IBM Cloud® 中的IQN更新文件 /etc/iscsi/initiatorname.iscsi。 请以小写输入值。

InitiatorName=<value-from-the-Portal>

配置凭证

使用控制台 IBM Cloud® 中的用户名和 /etc/iscsi/iscsid.conf 密码编辑以下设置。 对 CHAP 名称请使用大写。

node.session.auth.authmethod = CHAP
node.session.auth.username = <Username-value-from-Portal>
node.session.auth.password = <Password-value-from-Portal>
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = <Username-value-from-Portal>
discovery.sendtargets.auth.password = <Password-value-from-Portal>

保持其他 CHAP 设置处于注释状态。IBM Cloud® 存储仅使用单向认证。 不要启用相互 CHAP。

发现存储设备并登录

iscsiadm实用程序是一个命令行工具,用于发现和登录 iSCSI 目标,以及访问和管理open-iscsi数据库。 在此步骤中,使用从控制台 IBM Cloud® 获取的目标IP地址发现设备。

  1. 对数组 iSCSI 执行发现操作。

    iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
    

    如果显示 IP 信息和访问详细信息,那么发现成功。

  2. 登录到 iSCSI 阵列。

    iscsiadm -m node --login
    

验证配置

  1. 验证是否已建立 iSCSI 会话。

    iscsiadm -m session -o show
    
  2. 验证是否存在多条路径。

    multipath -l
    

    此命令会报告路径。 如果配置正确,那么每个卷都有一个组,其路径数等于 iSCSI 会话数。 虽然可以通过单一路径连接多个卷,但重要的是,必须在两条路径上建立连接,以防止服务中断。

    如果未正确配置 MPIO,那么当发生网络中断或 IBM Cloud® 团队执行维护时,存储设备可能断开连接并显示为脱机。 在这些事件期间,MPIO提供额外的连接层级,并保持与卷的已建立会话,以执行活跃的读写操作。

  3. 列出已连接设备的分区表。

    fdisk -l | grep /dev/mapper
    

    缺省情况下,存储设备连接到 /dev/mapper/<wwid>。 当卷存在时,WWID 是持久的。 该命令会报告类似以下示例的内容。

    Disk /dev/mapper/3600a0980383030523424457a4a695266: 73.0 GB, 73023881216 bytes
    

    在此示例中,字符串 3600a0980383030523424457a4a695266 是 WWID。 您的应用程序应该使用 WWID。 还可以在中使用"user_friendly_names multipath.conf "或"alias"关键字来分配更易读的名称。

    现在卷已安装到主机上并可供访问。 接下来可以创建文件系统。

创建文件系统(可选)

您可以通过执行以下步骤,在新安装的卷上创建文件系统。 大多数应用程序都需要文件系统才可使用卷。 对于小于 2 TB 的驱动器,请使用 fdisk对于大于 2 TB 的磁盘,请使用 parted

使用 fdisk 创建文件系统

  1. 获取磁盘名称。

    fdisk -l | grep /dev/mapper
    

    返回的磁盘名称类似于 /dev/mapper/XXX

  2. 在磁盘上创建分区。

    fdisk /dev/mapper/XXX
    

    XXX 表示步骤 1 中返回的磁盘名称。

    向下滚动查看 fdisk 命令表中列出的命令代码。

  3. 在新分区上创建文件系统。

    fdisk –l /dev/mapper/XXX
    
    • 新分区与磁盘一同列出,类似 XXXp1 于,随后显示其大小、类型(83)和 Linux®。
    • 记下分区名称,在下一步中将需要此信息。 (XXXp1 表示分区名称。)
    • 创建文件系统:
    mkfs.ext3 /dev/mapper/XXXp1
    
  4. 为文件系统创建安装点并安装文件系统。

    • 创建分区名称 PerfDisk 或要在其中安装文件系统的分区的名称。
    mkdir /PerfDisk
    
    • 使用分区名称安装存储器。
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • 检查是否看到新的文件系统列出。
    df -h
    
  5. 将新的文件系统添加到系统的 /etc/fstab 文件中,以启用引导时自动安装。

    • 将以下行附加到 /etc/fstab 的末尾(使用步骤 3 中的分区名称)。
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

使用 parted 创建文件系统

在许多 Linux® 发行版中,parted 它已预装。 不过,如果需要的话,你可以通过运行以下命令来安装它。

# dnf install parted

要使用 parted 创建文件系统,请执行以下步骤。

  1. 启动交互式 parted shell。

    parted
    
  2. 在磁盘上创建分区。

    • 除非另行指定,否则 parted 将使用主驱动器。 在大多数情况下,主驱动器为 /dev/sda。 使用 select 命令切换到要分区的磁盘。 将 XXX 替换为新设备名称。

      select /dev/mapper/XXX
      
    • 运行 print 以确认您当前所在的磁盘正确。

      print
      
    • 创建 GPT 分区表。

      mklabel gpt
      
    • 可以使用 Parted 来创建主磁盘分区和逻辑磁盘分区,这两个操作所涉及的步骤相同。 要创建分区,parted 会使用 mkpart。 可以为其提供其他参数,如 primarylogical,具体取决于您要创建的分区类型。 列出的单位缺省为兆字节 (MB)。 要创建 10 GB 的分区,请从 1 开始,到 10000 结束。 还可以根据需要,通过输入 unit TB 将大小单位更改为太字节。

      mkpart
      
    • 使用 parted 退出 quit

      quit
      
  3. 在新分区上创建文件系统。

    mkfs.ext3 /dev/mapper/XXXp1
    

    执行此命令时,选择正确的磁盘和分区至关重要。 通过打印分区表来验证结果。 在文件系统列下,您可以看到 ext3.

  4. 为文件系统创建安装点并安装文件系统。

    • 创建分区名称 PerfDisk 或要在其中安装文件系统的分区的名称。
    mkdir /PerfDisk
    
    • 使用分区名称安装存储器。
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • 检查是否看到新的文件系统列出。
    df -h
    
  5. 要启用自动安装 om 引导,请将新文件系统添加到系统的 /etc/fstab 文件。

    • 将以下行附加到 /etc/fstab 的末尾(使用步骤 3 中的分区名称)。
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

管理用户对已挂载卷内容的权限

作为系统管理员,您可以管理已挂载卷上的数据访问权限。 文件系统准备就绪后,您可以使用 chownchmod 命令为单个用户和组分配读取、写入和执行权限,从而细化访问控制。 更多信息,请参阅 CloudLinux 产品文档

卸装 Block Storage for Classic 卷

当您不再需要该卷时,请先将其卸载,然后再删除。

  1. 卸装文件系统。
    umount /dev/mapper/XXXp1 /PerfDisk
    
  2. 如果您的目标门户网站中没有任何其他卷,那么可以从目标门户网站注销。
    iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. 如果您的目标门户网站中没有任何其他卷,那么可以删除目标门户网站记录,以防止未来的登录尝试。
    iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>