IBM Cloud Docs
CloudLinux 上安装 iSCSI 卷

CloudLinux 上安装 iSCSI 卷

本教程指导您如何在具有 CloudLinux 8 操作系统的服务器上安装 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. 使用以下命令安装软件包。

    yum 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。 也可以在 multipath.conf 中使用“user_friendly_names”或“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 是预装的。 不过,如果您需要,可以通过以下命令安装它。

# yum 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>