暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RHEL8 多路径配置详解

原创 yunbhuahua 2024-07-31
456

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
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论