1. 什么是多路径
在计算机系统中,多路径是指在存储系统中使用多个物理路径来连接主机和存储设备,以增加系统的可用性和容错性。多路径技术的目标是提供冗余路径,以确保在某个路径发生故障时,数据仍然可以通过其他路径进行传输
具体而言,多路径通常用于连接主机和存储区域网络(SAN)上的存储设备,例如磁盘阵列。在这种配置中,多个物理路径(例如光纤通道或 iSCSI 连接)可以同时连接主机和存储设备。主机操作系统使用多路径软件来管理这些路径,确保对存储设备的访问是冗余和可靠的。
关键特点和优势包括:
容错性: 如果其中一个路径发生故障,系统可以无缝切换到其他路径,避免数据访问中断。
负载均衡: 多路径软件可以平衡数据流量,确保多个路径上的负载均匀分布,提高性能。
高可用性: 多路径配置提高了整个存储系统的可用性,因为即使某些路径不可用,仍然可以使用其他路径。
自动故障恢复: 多路径软件通常具有自动故障检测和恢复机制,可以在发生故障时自动切换到备用路径
2. 常用命令
- multipath -ll # 查看服务器下的磁盘
包括设备名(例如,asm_ocr02)、WWID(例如,360000000000000000e00000000010002)、设备类型(例如,dm-4)、路径信息(例如,sdc)等。
- multipath -v3 # 查看当前系统上多路径软件的配置以及连接到主机的存储设备的多路径信息
- 什么是wwid
wwid(World Wide Identifier)是一种独特的标识符,用于唯一标识 SCSI 设备。在 Linux 中,wwid 通常用于识别磁盘设备,尤其是在配置多路径设备时。
每个 SCSI 设备都有一个唯一的 wwid,该标识符通常基于设备的硬件属性,例如厂商、产品型号和序列号等。wwid 确保在系统重新启动或重新配置时,多路径软件能够正确地将所有路径与相应的设备关联起来
在 Linux 系统中,您可以使用命令 scsi_id 获取磁盘设备的 wwid:
如: /usr/lib/udev/scsi_id -g -u -d $devnode
for i in `cat /proc/partitions | awk {'print $4'} | grep sd`
do
echo "Device: $i WWID: `/lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/$i`"
done | sort -k4
- 查看映射过来的iSCSI磁盘wwid
/lib/udev/scsi_id --whitelisted --device=/dev/sdb
- multipath配置文件模板
multipaths {
multipath {
wwid "360000000000000000e00000000010001" ## 填写磁盘wwid
alias asm_ocr01 ## 自定义名字
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
multipath {
wwid "360000000000000000e00000000010002"
alias asm_ocr02
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
}
参考:http://www.sunrisenan.com/docs/wybl/duolujing # centos7.6多路径配置
defaults {
polling_interval 10
user_friendly_names no
}
blacklist {
# black local disk
wwid 3600508b1001c27907eca5c5df3253752
wwid 3600508b1001caad1587d7d457eaf7045
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^cciss"
}
multipaths {
multipath {
wwid 360060e80059559000000955900000400
alias mpatha
}
multipath {
wwid 360060e80059559000000955900000401
alias mpathb
}
}