在 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-iscsi
和 multipath-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
软件包。
设置多路径
-
安装多路径实用程序后,创建名为
/etc/multipath.conf
的空配置文件。 -
修改
/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
。 -
如果需要,请保存配置文件并退出编辑器。
-
启动多路径服务。
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 手册 - iscsid
和 Ubuntu 手册 - systemctl
。
发现存储设备并登录
iscsiadm实用程序是一个命令行工具,用于发现和登录 iSCSI 目标,以及访问和管理open-iscsi数据库。 更多信息,请参阅 Ubuntu 手册—— iscsiadm
。在此步骤中,使用从 IBM Cloud® 控制台获取的目标IP地址来发现设备。
-
针对 iSCSI 阵列运行发现程序。
iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
如果显示 IP 信息和访问详细信息,那么发现成功。
-
配置自动登录。
sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic sudo iscsiadm -m node --op=update -n node.startup -v automatic
-
启用必需的服务。
systemctl enable open-iscsi systemctl enable iscsid
-
重新启动 iscsid 服务。
systemctl restart iscsid.service
-
登录到 iSCSI 阵列。
sudo iscsiadm -m node --loginall=automatic
验证配置
-
验证是否已建立 iSCSI 会话。
iscsiadm -m session -o show
-
验证是否存在多条路径。
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 "关键字来指定更易于阅读的名称。 -
检查
dmesg
以确保检测到新磁盘。dmesg
创建分区和文件系统 (可选)
在主机上安装并可访问卷之后,可以创建文件系统。 您可以通过执行以下步骤,在新安装的卷上创建文件系统。
-
创建分区。
$ 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.
-
创建文件系统。
$ 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
-
安装块设备。
sudo mount /dev/mapper/mpatha-part1 /mnt
-
访问数据以确认新分区和文件系统已准备就绪可供使用。
ls /mnt
卸装 Block Storage for Classic 卷
当您不再需要该卷时,请先将其卸载,然后再删除。
-
卸装文件系统。
umount /dev/mapper/XXXp1 /PerfDisk
更多信息,请参阅 Ubuntu 手册——
umount
。 -
如果您的目标门户网站中没有任何其他卷,那么可以从目标门户网站注销。
iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout
-
如果您的目标门户网站中没有任何其他卷,那么可以删除目标门户网站记录,以防止未来的登录尝试。
iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>
更多信息,请参阅 Ubuntu 手册——
iscsiadm
。