存储多路径

存储多路径是指主机存在多条可以访问i/o块存储设备的路径,通过冗余和交叉组网的方式来提升存储路径的性能和可靠性。每条路径在操作系统中都会被识别为一个独立的块设备,但往往指向的是同一个块设备,因此需要使用多路径软件来将他们合并为一个设备,避免使用过程中的操作混乱。

图片

存储多路径的具体作用

使用设备映射器多路径(DM Multipath),可以将服务器节点和存储阵列间的多个 I/O 路径配置为单一设备。通过多路径软件管理和监控i/o块存储设备路径,在正常时平衡I/O请求提升性能,有路径故障时自动切换,保证数据持续访问,提高存储系统的可靠性和可用性。多路径软件可以处理包括HBA故障、链路故障、存储控制器故障在内的多种路径故障。

图片

存储多路径作用

存储多路径软件通过提供故障切换、负载均衡、磁盘虚拟化等功能,增强了存储系统的可靠性、可用性和性能。

  1. 故障切换和恢复:在SAN(存储区域网络)环境中,主机与存储之间可能存在多条路径。当其中一条路径发生故障时,多路径软件能够自动将I/O操作切换到其他可用路径,确保数据访问的连续性和系统的高可用性。

  2. IO流量的负载均衡:多路径软件可以将I/O流量均匀分配到所有可用路径上,避免单一路径过载,从而提高整体性能和效率。

  3. 磁盘的虚拟化:多路径软件可以将多个物理路径虚拟化为一个逻辑路径,对外提供服务。即使物理路径发生变化,如路径故障或新增路径,操作系统看到的仍然是一个统一的设备,简化了管理和使用。

  4. 性能优化:在主动/主动(active/active)模式下,多路径软件可以将I/O以轮询(round-robin)或其他策略分布到所有路径中,提高系统性能。

  5. 路径冗余:多路径软件提供路径冗余,确保在任何单一路径发生故障时,数据仍然可以通过其他路径访问,增强了系统的可靠性。

  6. 动态路径管理:多路径软件能够动态监控路径状态,并在路径失败时自动更新多路径设备,允许对多路径设备进行交互式的修改。

图片

操作系统版本

[root@localhost ~]# uosinfo#################################################Release:  UOS Server release 20 (fuyu)Kernel :  4.19.90-2403.3.0.0270.84.uel20.x86_64Build  :  UOS Server 20 (1070e) 20240423 amd64#################################################

查看HBA卡

lspci|grep Fibre

图片

查看HBA卡WWN

cat /sys/class/fc_host/host*/port_name

图片

HBA卡端口状态

cat /sys/class/fc_host/host*/port_state

图片

HBA卡端口速率

cat /sys/class/fc_host/host*/speed

图片

HBA卡超时参数配置信息

cat /sys/class/fc_host/host*/dev_loss_tmo

图片

查看目标器信息

cat /sys/class/fc_transport/*/port_name

图片

重新扫描块设备

echo "- - -" /sys/class/scsi_host/host0/scan

未安装多路径软件系统下识别sdb-sdq16块磁盘为同一存储lun

图片

查看系统下SCSI设备信息

图片

安装multipath软件

dnf install device-mapper-multipath

显示多路径的版本信息

rpm -qa | grep multipath

生成multipath 默认配置

mpathconf --enable --with_multipathd y

启动multipathd服务

systemctl  start  multipathdsystemctl  enable multipathd

查看多路径设备

multipath -ll

图片

清除所有未使用的路径重新扫描路径

multipath -F && multipath -rr

显示路径

multipathd show paths

图片

显示multipathd后台服务的PID

multipathd show daemon

图片

显示当前多路径加载的所有配置

echo 'show config' | multipathd -k

Multipath配置文件结构描述

  • blacklist

不视为多路径的特定设备列表。

  • blacklist_exceptions

根据 blacklist 部分的参数,列出其他将被忽略的多路径设备。

  • defaults

multipath多路径的常规默认设置。

  • multipaths

各个多路径设备特性的设置。配置参数会覆盖在配置文件中的devices, 和 defaults 部分指定的值。

  • devices

各个存储控制器的设置。配置参数覆盖配置文件的 defaults 部分中指定的内容。

配置文件blacklist段

blacklist中设置不被multipath配置的本地磁盘设备

通过设备的WWID设置,获取到本地设备,如sda的wwid

[root@localhost~]# multipathd show paths raw format "%d %w" | grep sdaDec 03 10:05:18 | missing '}' at end of /etc/multipath.confsda 3600508b1001c711a384cea39ace96923

编辑/etc/multipath.conf文件

blacklist {      wwid 3600508b1001c711a384cea39ace96923}

通过设备名称设置,使用devnode 本地磁盘设备名称设置blacklist

blacklist { devnode "^sd[a-z]"}

 此方式不推荐,因为如果某些设备不经udev规则绑定,可能在系统重启后,设备名称会发生变化。

multipath.conf配置文件

vim /etc/multipath.conf

defaults {        user_friendly_names yes        path_grouping_policy multibus        find_multipaths yes        enable_foreign "^$"        prio multipath_prio        rr_min_io 100}
blacklist_exceptions {        property "(SCSI_IDENT_|ID_WWN)"}
blacklist {        wwid 3600508b1001c711a384cea39ace96923        #devnode "^sda"}multipaths{        multipath{        wwid 3600a098038314e2d525d5856334d5a61        alias netapp-dm0        path_grouping_policy multibus        prio alua}}devices {        device {        vendor "NETAPP  "        product "Virtual disk"        path_grouping_policy multibus        getuid_callout "/usr/lib/udev/scsi_id -g -u -s /block/%n"        failback     immediate        no_path_retry      queue        rr_min_io       100
}

查看多路径软件设备

图片

虚拟存储卷

图片

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐