在Red Hat Enterprise Linux 上安装 iSCSI 卷
本教程指导您如何在具有 Red Hat Enterprise Linux® 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-utils
和 device-mapper-multipath
软件包。 使用以下命令安装软件包。
sudo dnf -y install iscsi-initiator-utils device-mapper-multipath
设置多路径
您可以使用 mpathconf
实用程序设置 DM Multipath,该实用程序将创建多路径配置文件 /etc/multipath.conf
。
- 如果 /etc/multipath.conf 文件存在,那么 mpathconf 实用程序可以对其进行编辑。
- 如果 /etc/multipath.conf 文件不存在,那么 mpathconf 实用程序将从头开始创建 /etc/multipath.conf 文件。
有关 mpathconf 实用程序的更多信息,请参阅 mpathconf(8)man page。
-
输入带有
--enable
选项的 mpathconf 命令。# mpathconf --enable --user_friendly_names n
-
使用以下最低配置编辑
/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。 -
如果需要,请保存配置文件并退出编辑器。
-
发出以下命令。
systemctl start multipathd.service
如果在启动多路径守护程序之后需要编辑多路径配置文件,那么必须发出
systemctl reload multipathd.service
命令以使更改生效。有关在 RHEL 8 上使用“设备映射器多路径”功能部件的更多信息,请参阅 配置设备映射器多路径。
更新 /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 数据库。 有关更多信息,请参阅 iscsiadm(8)man page。 在此步骤中,使用从 IBM Cloud® 控制台获取的目标IP地址来发现设备。
-
将发现与 iSCSI 数组进行对比。
iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
如果显示 IP 地址信息和访问详细信息,那么表示发现成功。
-
登录到 iSCSI 阵列。
iscsiadm -m node --login
验证配置
-
验证是否已建立 iSCSI 会话。
iscsiadm -m session -o show
-
验证是否存在多条路径。
multipath -l
此命令会报告路径。 如果配置正确,那么每个卷都有一个组,其路径数等于 iSCSI 会话数。 虽然可以通过单一路径连接多个卷,但重要的是,必须在两条路径上建立连接,以防止服务中断。
如果未正确配置 MPIO,那么当发生网络中断或 IBM Cloud® 团队执行维护时,存储设备可能断开连接并显示为脱机。 MPIO在这些活动中提供额外级别的连接,并保持已建立的会话,以进行主动的读/写操作。
-
列出已连接设备的分区表。
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”关键字来指定更易读的名字。 有关更多信息,请参阅multipath.conf
联机页面。现在卷已安装到主机上并可供访问。 接下来可以创建文件系统。
创建文件系统(可选)
您可以通过执行以下步骤,在新安装的卷上创建文件系统。 大多数应用程序都需要文件系统才可使用卷。 对于小于 2 TB 的驱动器,请使用 fdisk
;对于大于 2 TB 的磁盘,请使用 parted
。
使用 fdisk
创建文件系统
-
获取磁盘名称。
fdisk -l | grep /dev/mapper
返回的磁盘名称类似于
/dev/mapper/XXX
。 -
在磁盘上创建分区。
fdisk /dev/mapper/XXX
XXX 表示步骤 1 中返回的磁盘名称。
-
在新分区上创建文件系统。
fdisk –l /dev/mapper/XXX
-
新分区与磁盘一起列出,类似于
XXXp1
,后面是大小、类型(83)和 Linux®。 -
记下分区名称,在下一步中将需要此信息。 (XXXp1 表示分区名称。)
-
创建文件系统:
mkfs.ext3 /dev/mapper/XXXp1
-
-
为文件系统创建安装点并安装文件系统。
-
创建分区名称
PerfDisk
或要在其中安装文件系统的分区的名称。mkdir /PerfDisk
-
使用分区名称安装存储器。
mount /dev/mapper/XXXp1 /PerfDisk
-
检查是否看到新的文件系统列出。
df -h
-
-
要启用自动安装 om 引导,请将新文件系统添加到系统的
/etc/fstab
文件。- 将以下行附加到
/etc/fstab
的末尾(使用步骤 3 中的分区名称)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1
更多信息,请参阅 Linux
/etc/fstab
文件简介。 - 将以下行附加到
使用 parted
创建文件系统
在许多 Linux® 分发版中,parted
是预装的。 不过,如果您需要,可以通过以下命令进行安装。
# dnf install parted
要使用 parted
创建文件系统,请执行以下步骤。
-
启动交互式
parted
shell。parted
-
在磁盘上创建分区。
-
除非另有说明,
parted
工具使用您的主驱动器,在大多数情况下,主驱动器是/dev/sda
。 使用 select 命令切换到要分区的磁盘。 将 XXX 替换为新设备名称。select /dev/mapper/XXX
-
请运行
print
以确认您正在正确的磁盘上。print
-
创建 GPT 分区表。
mklabel gpt
-
可以使用
Parted
来创建主磁盘分区和逻辑磁盘分区,这两个操作所涉及的步骤相同。 创建分区时,该实用程序使用mkpart
。 可以为其提供其他参数,如 primary 或 logical,具体取决于您要创建的分区类型。mkpart
列出的单位缺省为兆字节 (MB)。 要创建 10 GB 的分区,请从 1 开始,到 10000 结束。 还可以根据需要,通过输入
unit TB
将大小单位更改为太字节。 -
使用
parted
退出quit
。quit
-
-
在新分区上创建文件系统。
mkfs.ext3 /dev/mapper/XXXp1
运行此命令时,选择正确的磁盘和分区非常重要。 通过打印分区表来验证结果。 在文件系统一栏中,您可以看到 ext3。
-
为文件系统创建安装点并安装文件系统。
- 创建分区名称
PerfDisk
或要在其中安装文件系统的分区的名称。
mkdir /PerfDisk
- 使用分区名称安装存储器。
mount /dev/mapper/XXXp1 /PerfDisk
- 检查是否看到新的文件系统列出。
df -h
- 创建分区名称
-
要启用自动安装 om 引导,请将新文件系统添加到系统的
/etc/fstab
文件。- 将以下行附加到
/etc/fstab
的末尾(使用步骤 3 中的分区名称)。
/dev/mapper/XXXp1 /PerfDisk ext3 defaults,_netdev 0 1
更多信息,请参阅 Linux
/etc/fstab
文件简介。 - 将以下行附加到
管理用户对已挂载卷内容的权限
作为系统管理员,您可以管理已挂载卷上数据的访问权限。 文件系统准备就绪后,您可以使用 chown
和 chmod
命令为单个用户和组分配读取、写入和执行权限,从而细化访问控制。 更多信息,请参阅 Red Hat 的教程:如何为用户、群组和其他人管理 Linux 权限。
验证 MPIO 配置
如果未正确配置 MPIO,那么当发生网络中断或 IBM Cloud® 团队执行维护时,存储设备可能断开连接并显示为脱机。 MPIO在这些活动中提供额外级别的连接,并保持已建立的会话,以进行主动的读/写操作。
-
要检查多路径是否正在拾取设备,请列出当前配置。 如果配置正确,那么每个卷都有一个组,路径数等于 iSCSI 会话数。
multipath -l
root@server:~# multipath -l 3600a09803830304f3124457a45757067 dm-1 NETAPP,LUN C-Mode size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=-1 status=active | `6:0:0:101 sdd 8:48 active ready running `-+- policy='round-robin 0' prio=-1 status=enabled `- 7:0:0:101 sde 8:64 active ready running
示例中的字符串
3600a09803830304f3124457a45757067
是该卷的唯一WWID。 每个加密卷都由其独一无二的 WWID 标识,在加密卷存在期间,WWID 始终存在。 -
确认所有磁盘均存在。 在正确的配置中,您可以预期输出中会显示两个具有相同标识符的磁盘,以及一个
/dev/mapper
具有相同标识符的相同大小的列表。/dev/mapper
设备是多路径设置的设备。fdisk -l | grep Disk
- 正确配置的输出示例。
root@server:~# fdisk -l | grep Disk Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1 Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1 Disk /dev/mapper/3600a09803830304f3124457a45757066: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
WWID 包含在多路径创建的设备名称中。 建议您的应用程序使用 WWID。
- 错误配置的输出示例。 不存在
/dev/mapper
磁盘。
root@server:~# fdisk -l | grep Disk Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1 Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
-
要确认多路径设备列表中不包括本地磁盘,请使用 3 级冗余度显示当前配置。 以下命令的输出显示设备并显示哪些设备已添加到阻止列表中。
multipath -l -v 3 | grep sd <date and time>
-
如果在第二个路径不可用时配置并连接了卷,则主机在首次运行发现扫描时可能会看到单个路径。 如果遇到这种罕见现象,请检查 IBM Cloud® 状态页面,查看是否正在发生影响主机访问存储能力的事件。 如果没有报告任何事件,请再次执行发现扫描,以确保正确发现所有路径。 如果事件正在进行中,则可通过单一路径连接存储设备。 然而,事件结束后重新扫描路径至关重要。 如果重新扫描后仍未发现两条路径,创建支持案例以便对其进行适当的调查。
卸装 Block Storage for Classic 卷
- 卸装文件系统。
umount /dev/mapper/XXXp1 /PerfDisk
- 如果您的目标门户网站中没有任何其他卷,那么可以从目标门户网站注销。
iscsiadm -m node -T <TARGET NAME> -p <PORTAL IP:PORT> --logout
- 如果您的目标门户网站中没有任何其他卷,那么可以删除目标门户网站记录,以防止未来的登录尝试。
更多信息,请参阅iscsiadm -m node -o delete -T <TARGET IQN> -p <PORTAL IP:PORT>
iscsiadm
手册。