IBM Cloud Docs
在 Ubuntu OS 上挂载 iSCSI 卷

在 Ubuntu OS 上挂载 iSCSI 卷

本教程将指导您如何在装有 Ubuntu 操作系统的服务器上挂载 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 接口的更多信息,请参阅 常见问题解答

在开始配置 iSCSI, 之前,请确保网络接口已正确设置和配置,以便 open-iscsi 软件包正常工作,尤其是在启动时。 在 Ubuntu 的新版本中,设置网络地址信息的主要工具是 Netplan。 它使用 YAML 配置文件定义网络设置,取代了 /etc/network/interfaces 等旧方法。 Netplan 可通过命令行或桌面环境中的 NetworkManager 进行配置。

有关 iSCSI 服务如何在 Ubuntu 操作系统上运行的详细信息,请参阅 iSCSI 启动程序(或客户端) 文档。

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

安装 iSCSI 和多路径实用程序

请确保您的系统已更新,并包含 open-iscsimultipath-tools 软件包。 使用以下命令来安装软件包。

  • 安装 open-iscsi

    sudo apt install open-iscsi
    

    安装软件包时,它会创建以下两个文件。

    • /etc/iscsi/iscsid.conf
    • /etc/iscsi/initiatorname.iscsi
  • 安装 multipath-tools

    sudo apt install multipath-tools
    

    如果您想从该卷启动,则需要同时安装 multipath-tools-boot 软件包。

设置多路径

  1. 安装多路径实用程序后,创建名为 /etc/multipath.conf 的空配置文件。

  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 "3 queue_if_no_path pg_init_retries 50"
    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/mpathn,其中 mpathn 是设备的 WWID 号。 更多信息,请参阅 Ubuntu 手册—— multipath.conf

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

  4. 启动多路径服务。

    service multipath-tools start
    

    如果在启动多路径守护程序后需要编辑多路径配置文件,那么必须重新启动 multipathd 服务以使更改生效。

    有关在 Ubuntu 20 上使用 Device Mapper Multipath 功能的更多信息,请参阅 Device Mapper Multipathing-Introduction

更新 /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。

重新启动 iscsi 服务,使更改生效。

systemctl restart iscsid.service

有关详细信息,请参阅 Ubuntu 手册 - iscsidUbuntu 手册 - systemctl

发现存储设备并登录

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

  1. 针对 iSCSI 阵列运行发现程序。

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

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

  2. 配置自动登录。

    sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic
    sudo iscsiadm -m node --op=update -n node.startup -v automatic
    
  3. 启用必需的服务。

    systemctl enable open-iscsi
    systemctl enable iscsid
    
  4. 重新启动 iscsid 服务。

    systemctl restart iscsid.service
    
  5. 登录到 iSCSI 阵列。

    sudo iscsiadm -m node --loginall=automatic
    

验证配置

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

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

    multipath -ll
    

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

    $ sudo multipath -ll
    mpathb (360014051f65c6cb11b74541b703ce1d4) dm-1 LIO-ORG,TCMU device
    size=1.0G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 7:0:0:2 sdh 8:112 active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
      `- 8:0:0:2 sdg 8:96  active ready running
    mpatha (36001405b816e24fcab64fb88332a3fc9) dm-0 LIO-ORG,TCMU device
    size=1.0G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 7:0:0:1 sdj 8:144 active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
      `- 8:0:0:1 sdi 8:128 active ready running
    

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

    在此示例中,36001405b816e24fcab64fb88332a3fc9 是在卷存在时持久的 WWID。 建议应用程序使用 WWID。 还可以在 multipath.conf 中使用 "user_friendly_names "或 "alias "关键字来指定更易于阅读的名称。

  3. 检查 dmesg 以确保检测到新磁盘。

    dmesg
    

创建分区和文件系统 (可选)

在主机上安装并可访问卷之后,可以创建文件系统。 您可以通过执行以下步骤,在新安装的卷上创建文件系统。

  1. 创建分区。

    $ sudo fdisk /dev/mapper/mpatha
    
    Welcome to fdisk (util-linux 2.34).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0x92c0322a.
    
    Command (m for help): p
    Disk /dev/mapper/mpatha: 1 GiB, 1073741824 bytes, 2097152 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 65536 bytes
    Disklabel type: dos
    Disk identifier: 0x92c0322a
    
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1):
    First sector (2048-2097151, default 2048):
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151):
    
    Created a new partition 1 of type 'Linux' and of size 1023 MiB.
    
    Command (m for help): w
    The partition table has been altered.
    
  2. 创建文件系统。

    $ sudo mkfs.ext4 /dev/mapper/mpatha-part1
    mke2fs 1.45.5 (07-Jan-2020)
    Creating filesystem with 261888 4k blocks and 65536 inodes
    Filesystem UUID: cdb70b1e-c47c-47fd-9c4a-03db6f038988
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    
  3. 安装块设备。

    sudo mount /dev/mapper/mpatha-part1 /mnt
    
  4. 访问数据以确认新分区和文件系统已准备就绪可供使用。

    ls /mnt
    

卸装 Block Storage for Classic 卷

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

  1. 卸装文件系统。

    umount /dev/mapper/XXXp1 /PerfDisk
    

    更多信息,请参阅 Ubuntu 手册—— umount

  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>
    

    更多信息,请参阅 Ubuntu 手册—— iscsiadm