IBM Cloud Docs
在 Ubuntu OS 上挂载 iSCSI 卷

在 Ubuntu OS 上挂载 iSCSI 卷

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

有关该 iSCSI 服务在操作系统 Ubuntu 上如何运行的更多信息,请参阅 iSCSI 发起方(或客户端) 文档。 如果使用其他 Linux® 操作系统,请参阅特定发行版的文档,并确保多路径支持 ALUA 的路径优先级。

准备工作

  1. 在控制台、CLI、API 或 Terraform中为 Classic 创建虚拟服务器

  2. 在同一数据中心 订购块存储卷

  3. 确保主机已获得访问 Block Storage for Classic 卷的授权。 有关详细信息,请参阅For more information, see 在控制台中授权主机从 CLI 授权主机使用 Terraform 授权主机。 授权完成后,请注意用户名、密码和主机 IQN 信息。

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

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

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

安装 iSCSI 和多路径实用程序

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

  • 更新操作系统:

    apt-get update
    
  • 安装 open-iscsi

    sudo apt install open-iscsi
    

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

    • /etc/iscsi/iscsid.conf
    • /etc/iscsi/initiatorname.iscsi
  • 启动服务:

    systemctl enable open-iscsi
    
    systemctl enable iscsid  
    
  • 安装 multipath-tools

    sudo apt install multipath-tools
    

配置 ISCSI

更新启动程序名称

  1. 检查 /etc/iscsi/initiatorname.iscsi 文件是否存在,并查看其内容。

    cat /etc/iscsi/initiatorname.iscsi
    
    root@vsi4classicubuntu:~# cat /etc/iscsi/initiatorname.iscsi  
    GenerateName=yes  
    
  2. 使用文本编辑器,用 IBM Cloud® 控制台中的 IQN 更新 /etc/iscsi/initiatorname.iscsi 文件。 按以下格式输入数值。

    InitiatorName=<IQN-value-from-the-portal>
    

配置凭证

  1. 通过检查文件内容来确保该 iscsid.conf 文件存在。

    cat /etc/iscsi/iscsid.conf
    
  2. 使用文本编辑器,取消注释并编辑以下条目。 您可以在 IBM Cloud® 控制台中找到用户名和密码。

    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。

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

    systemctl restart iscsid.service
    

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

设置多路径

  1. 安装多路径实用程序后,可以检查 multipath.conf 文件的默认内容。

    cat /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
    
    1. 启用必需的服务。

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

    有关在 Ubuntu 20 上使用设备映射器多路径功能的更多信息,请参阅 设备映射器多路径简介

发现存储设备并登录

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

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

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

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

    root@vsi4classicubuntu:~# iscsiadm -m discovery -t sendtargets -p 161.26.114.197  
    161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304
    161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304
    
  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. 登录到 iSCSI 阵列。

    sudo iscsiadm -m node --login
    

验证配置

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

    iscsiadm -m session -o show
    
    root@vsi4classicubuntu:~# iscsiadm -m session -o show  
    tcp: [3] 161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304 (non-flash)  
    tcp: [4] 161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304 (non-flash)  
    
  2. 验证是否存在多条路径。

    multipath -ll
    

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

    root@vsi4classicubuntu:~# multipath -ll  
     3600a0980383056666424506a33426478 dm-0 NETAPP,LUN C-Mode
     size=500G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua'
     wp=rw
     |-+- policy='service-time 0' prio=50 status=active
     | `- 3:0:0:0 sdb 8:16 active ready running
     `-+- policy='service-time 0' prio=10 status=enabled
       `- 2:0:0:0 sda 8:0    active ready running
    

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

    在此示例中,3600a0980383056666424506a33426478 是在卷存在时持久的 WWID。 建议应用程序使用 WWID。 还可以在中使用"user_friendly_names multipath.conf "或"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