RHEL8 多路径配置详解
引言
在现代数据中心中,为了提高存储系统的可靠性和性能,多路径技术成为了一种重要的解决方案。多路径技术允许多条物理路径同时连接到同一个存储设备,从而提高了系统的可用性和I/O性能。本文将详细介绍如何在Linux系统中配置多路径技术,包括多路径的基本原理、配置步骤以及常见问题的解决方法。
一、多路径技术概述
多路径技术(MultiPath)是指通过多条物理路径连接到同一存储设备的技术。在Linux操作系统中,多路径软件Device Mapper MultiPath(简称DM-MultiPath)是实现多路径功能的核心组件。DM-MultiPath主要具备以下功能:
- 链路故障的切换和恢复:当一条或多条路径发生故障时,能够自动切换到其他可用路径,确保数据的连续访问。
- I/O流量的负载均衡:通过将I/O请求均匀地分配到所有可用路径上,提高存储系统的整体性能。
- 磁盘的虚拟化:通过将多条物理路径合并为一个逻辑设备,简化了存储管理。
二、配置虚拟机参数
一定要在虚拟机关闭状态下配置!
一定要在虚拟机关闭状态下配置!
一定要在虚拟机关闭状态下配置!
1.1 定位配置文件
右键虚拟机列表中的目标服务器
1.2 编辑配置文件Oracle19c_rhel8.vmx
添加如下内容
disk.EnableUUID = "TRUE"
disk.locking=false
1.3 验证
[root@db2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sda
36000c29fa153119f4f69bf83037b2a06
二、查看当前存储配置
2.1 确认需要配置的存储
[root@db2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2G 0 disk
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
nvme0n1 259:0 0 50G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
├─nvme0n1p2 259:2 0 2G 0 part [SWAP]
└─nvme0n1p3 259:3 0 47.7G 0 part /
nvme0n2 259:4 0 30G 0 disk
└─vg_01-lv01 253:0 0 30G 0 lvm /dbs/pg14
nvme0n3 259:5 0 20G 0 disk
└─vg_01-lv01 253:0 0 30G 0 lvm /dbs/pg14
2.2 批量获取设置的scsi_id
for x in a b c;
do
echo "/dev/sd$x" `/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$x`
done;
示例
[root@db2 ~]# for x in a b c;
> do
> echo "/dev/sd$x" `/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$x`
> done;
/dev/sda 36000c29fa153119f4f69bf83037b2a06
/dev/sdb 36000c29cf5192f3187e7aceb576d7db3
/dev/sdc 36000c29e74792408b024a8953e0f9e60
三、多路径配置
3.1 多路径软件安装
yum -y install device-mapper*
3.2 多路径配置文件
MultiPath Tools主要由以下三个部分组成:
- multipath:主要用于存储工程师对多路径的维护,包括显示多路径信息、管理多路径设备等。
- multipathd:守护进程,负责监视路径状态,当发生故障时将重新配置路径所属的虚拟盘,以便该虚拟盘恢复。
- multipath.conf:配置文件,multipathd服务启动时读取该文件中的参数,并按参数的约定进行多路径设备管理。
3.3、多路径配置文件详解
配置文件multipath.conf位于/etc/multipath.conf,如果该文件不存在,可以通过/usr/share/doc/device-mapper-multipath/multipath.conf获取。
multipath.conf由多个“节”(section)组成,主要包括:
- defaults:定义MultiPath的默认设置。
- blacklist:定义排除哪些设备(黑名单)。
- blacklist_exceptions:定义包含的设备(白名单)。
- multipaths:定义某个多路径设备的设置。
- devices:定义各个存储控制器类型的设置。
3.4 多路径配置
- 以oracle asm磁盘组为示例(用户和权限未配置)
cat <<EOF >>/etc/multipath.conf
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
}
multipaths {
multipath {
wwid '36000c29fa153119f4f69bf83037b2a06'
alias asm_ocr01
}
multipath {
wwid '36000c29cf5192f3187e7aceb576d7db3'
alias asm_ocr02
}
multipath {
wwid '36000c29e74792408b024a8953e0f9e60'
alias asm_ocr03
}
}
EOF
3.5 加载配置
[root@db2 ~]# multipath -r
3.6 验证
- 多路径详细配置
[root@db2 ~]# multipath -v3
。。。
===== paths list =====
uuid hcil dev dev_t pri dm_st chk_st v
36000c29fa153119f4f69bf83037b2a06 32:0:0:0 sda 8:0 1 undef undef V
36000c29cf5192f3187e7aceb576d7db3 32:0:1:0 sdb 8:16 1 undef undef V
36000c29e74792408b024a8953e0f9e60 32:0:2:0 sdc 8:32 1 undef undef V
eui.ed5c00fc547e3125000c2969331c5b03 0:0:1:1 nvme0n1 259:0 1 undef undef N
eui.7b5d349705989cb3000c296d7522417b 0:0:2:2 nvme0n2 259:4 1 undef undef N
eui.c469682eac9c4916000c29600e605c86 0:0:3:3 nvme0n3 259:5 1 undef undef N
- 多路径拓扑
[root@db2 ~]# multipath -ll
asm_ocr02 (36000c29cf5192f3187e7aceb576d7db3) dm-2 VMware,,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 32:0:1:0 sdb 8:16 active ready running
asm_ocr01 (36000c29fa153119f4f69bf83037b2a06) dm-1 VMware,,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 32:0:0:0 sda 8:0 active ready running
asm_ocr03 (36000c29e74792408b024a8953e0f9e60) dm-3 VMware,,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 32:0:2:0 sdc 8:32 active ready running
四、故障排查
4.1 multipath -ll扫不到单路径映射设备设备
- 问题现象
通过multipath -ll扫不到单路径映射设备设备
- 问题原因
FC连接配置问题,vmwar配置的虚拟机只使用一条FC链路进行映射,使用两条FC链路及以上没有该问题
- 问题解决
1)查看映射设备信息
[root@db2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2G 0 disk
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
nvme0n1 259:0 0 50G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
├─nvme0n1p2 259:2 0 2G 0 part [SWAP]
└─nvme0n1p3 259:3 0 47.7G 0 part /
nvme0n2 259:4 0 30G 0 disk
└─vg_01-lv01 253:0 0 30G 0 lvm /dbs/pg14
nvme0n3 259:5 0 20G 0 disk
└─vg_01-lv01 253:0 0 30G 0 lvm /dbs/pg14
2) 查看设备对应的WWID
[root@db2 ~]# sg_inq --page=0x83 /dev/sda
VPD INQUIRY: Device Identification page
Designation descriptor number 1, descriptor length: 20
designator_type: NAA, code_set: Binary
associated with the Addressed logical unit
NAA 6, IEEE Company_id: 0xc29
Vendor Specific Identifier: 0xfa153119f
Vendor Specific Identifier Extension: 0x4f69bf83037b2a06
[0x6000c29fa153119f4f69bf83037b2a06]
[root@db2 ~]# sg_inq --page=0x83 /dev/sdb
VPD INQUIRY: Device Identification page
Designation descriptor number 1, descriptor length: 20
designator_type: NAA, code_set: Binary
associated with the Addressed logical unit
NAA 6, IEEE Company_id: 0xc29
Vendor Specific Identifier: 0xcf5192f31
Vendor Specific Identifier Extension: 0x87e7aceb576d7db3
[0x6000c29cf5192f3187e7aceb576d7db3]
[root@db2 ~]# sg_inq --page=0x83 /dev/sdc
VPD INQUIRY: Device Identification page
Designation descriptor number 1, descriptor length: 20
designator_type: NAA, code_set: Binary
associated with the Addressed logical unit
NAA 6, IEEE Company_id: 0xc29
Vendor Specific Identifier: 0xe74792408
Vendor Specific Identifier Extension: 0xb024a8953e0f9e60
[0x6000c29e74792408b024a8953e0f9e60]
3) 添加设备wwid到wwids文件中
[root@db2 ~]# multipath -a 36000c29fa153119f4f69bf83037b2a06
wwid '36000c29fa153119f4f69bf83037b2a06' added
[root@db2 ~]# multipath -a 36000c29cf5192f3187e7aceb576d7db3
wwid '36000c29cf5192f3187e7aceb576d7db3' added
[root@db2 ~]# multipath -a 36000c29e74792408b024a8953e0f9e60
wwid '36000c29e74792408b024a8953e0f9e60' added
4)确认添加成功
[root@db2 ~]# cat /etc/multipath/wwids
# Multipath wwids, Version : 1.0
# NOTE: This file is automatically maintained by multipath and multipathd.
# You should not need to edit this file in normal circumstances.
#
# Valid WWIDs:
/36000c29fa153119f4f69bf83037b2a06/
/36000c29cf5192f3187e7aceb576d7db3/
/36000c29e74792408b024a8953e0f9e60/
5)重新加载服务
[root@db2 ~]# multipath -r
6)查看信息
[root@db2 ~]# multipath -ll
asm_ocr02 (36000c29cf5192f3187e7aceb576d7db3) dm-2 VMware,,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 32:0:1:0 sdb 8:16 active ready running
asm_ocr01 (36000c29fa153119f4f69bf83037b2a06) dm-1 VMware,,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 32:0:0:0 sda 8:0 active ready running
asm_ocr03 (36000c29e74792408b024a8953e0f9e60) dm-3 VMware,,VMware Virtual S
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
`- 32:0:2:0 sdc 8:32 active ready running
[root@db2 ~]# fdisk -l | grep asm
Disk /dev/mapper/asm_ocr01: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk /dev/mapper/asm_ocr02: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk /dev/mapper/asm_ocr03: 2 GiB, 2147483648 bytes, 4194304 sectors
[root@db2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2G 0 disk
└─asm_ocr01 253:1 0 2G 0 mpath
sdb 8:16 0 2G 0 disk
└─asm_ocr02 253:2 0 2G 0 mpath
sdc 8:32 0 2G 0 disk
└─asm_ocr03 253:3 0 2G 0 mpath
nvme0n1 259:0 0 50G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot
├─nvme0n1p2 259:2 0 2G 0 part [SWAP]
└─nvme0n1p3 259:3 0 47.7G 0 part /
nvme0n2 259:4 0 30G 0 disk
└─vg_01-lv01 253:0 0 30G 0 lvm /dbs/pg14
nvme0n3 259:5 0 20G 0 disk
└─vg_01-lv01 253:0 0 30G 0 lvm /dbs/pg14
[root@db2 ~]# ll /dev/mapper/*
lrwxrwxrwx 1 root root 7 Jul 30 19:59 /dev/mapper/asm_ocr01 -> ../dm-1
lrwxrwxrwx 1 root root 7 Jul 30 19:59 /dev/mapper/asm_ocr02 -> ../dm-2
lrwxrwxrwx 1 root root 7 Jul 30 19:59 /dev/mapper/asm_ocr03 -> ../dm-3
crw------- 1 root root 10, 236 Jul 30 18:31 /dev/mapper/control
lrwxrwxrwx 1 root root 7 Jul 30 18:31 /dev/mapper/vg_01-lv01 -> ../dm-0