日常工作问题解决:rhel7下配置多路径设备

时间:2021-11-05 13:37:02

1、情景描述

在安装oracle11g rac时,存储管理人员分配了两块1.5T的共享磁盘,使用fdisk查看,如下所示:


[root@db1 ~]# fdisk -l 磁盘 /dev/sda:119.0 GB, 118999744512 字节,232421376 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x000cb057 设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 230692863 114296832 8e Linux LVM 磁盘 /dev/sdb:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/sdc:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/sdd:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/sde:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/mapper/rhel-root:45.1 GB, 45097156608 字节,88080384 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节 磁盘 /dev/mapper/rhel-swap:34.4 GB, 34359738368 字节,67108864 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节 磁盘 /dev/mapper/rhel-home:37.6 GB, 37580963840 字节,73400320 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节 磁盘 /dev/sdf:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/sdg:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/sdh:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节 磁盘 /dev/sdi:1649.3 GB, 1649267441664 字节,3221225472 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):32768 字节 / 32768 字节

发现除了/dev/sda之外,还有8个1.5T的磁盘,分别为sdc-sdi,确定为多路径.

2、安装多路径软件

2.1 安装多路径

yum install device-mapper

2.2检查安装情况

[root@db1 ~]# rpm -qa|grep multipath
device-mapper-multipath-libs-0.4.9-111.el7.x86_64
device-mapper-multipath-0.4.9-111.el7.x86_64

2.3 重启系统

reboot

2.4 将多路径软件添加至内核模块


modprobe dm-multipath
modprobe dm-round-robin

2.5 检查内核添加情况


[root@db1 ~]# lsmod |grep multipath
dm_multipath 27792 3 dm_round_robin
dm_mod 124501 32 dm_multipath,dm_log,dm_mirror

2.6 启动multipath服务

systemctl start multipathd

2.7 设置开机自启动

systemctl enable multipathd

3、配置多路径

3.1 查看需要设置多路径磁盘的wwid


[root@db1 ~]# more /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:
/360050764008101cf9800000000000030/
/360050764008101cf9800000000000031/

如果查询不到只能一个设备一个设备查看


[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
360050764008101cf9800000000000030
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
360050764008101cf9800000000000031
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sde
360050764008101cf9800000000000031
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
360050764008101cf9800000000000030
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdf
360050764008101cf9800000000000030
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdg
360050764008101cf9800000000000031
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdh
360050764008101cf9800000000000030
[root@db1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdi
360050764008101cf9800000000000031

发现其实只有两个磁盘,wwid分别为360050764008101cf9800000000000030和360050764008101cf9800000000000031

3.2 创建multipath配置文件

/sbin/mpathconf --enable

3.3 修改mutlipath配置文件

[root@db1 ~]# vi /etc/multipath.conf



blacklist {   #  -------黑名单项:即不使用多路径的硬盘,如服务器本地盘等
wwid 3600508e000000000439b837021cf740d # -------不使用多路径的本地盘wwid号
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]" # --------不使用多路径的本地盘hd名称
}
multipaths { # ---使用多路径软件项
multipath { # ---单块存储盘配置,如有多块存储盘,如多个multipath{}配置
wwid 360050764008101cf9800000000000030 # ---使用多路径的存储盘wwid号
alias dbstorage001 # 该存储盘多路径后的别名
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
multipath {
wwid 360050764008101cf9800000000000031
alias dbstorage002
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
}
devices {
device {
vendor "COMPAQ " # ---存储厂家名称
product "HSV110 (C)COMPAQ" # --存储产品型号
path_grouping_policy multibus
path_checker readsector0
path_selector "round-robin 0"
hardware_handler "0"
failback 15
rr_weight priorities
no_path_retry queue
}

保存文件退出。

3.2 启动multipath


[root@db1 ~]# multipath -v2 # 加载多路径配置文件
[root@db1 ~]# systemctl restart multipathd.service # 重启多路径服务
[root@db1 ~]# multipath -ll # 查看多路径配置情况
dbstorage002 (360050764008101cf9800000000000031) dm-3 IBM ,2145
size=1.5T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=30 status=active
|- 12:0:0:1 sdc 8:32 active ready running
|- 11:0:0:1 sdg 8:96 active ready running
|- 12:0:1:1 sde 8:64 active ready running
`- 11:0:1:1 sdi 8:128 active ready running
dbstorage001 (360050764008101cf9800000000000030) dm-2 IBM ,2145
size=1.5T features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=30 status=active
|- 12:0:0:0 sdb 8:16 active ready running
|- 11:0:0:0 sdf 8:80 active ready running
|- 12:0:1:0 sdd 8:48 active ready running
`- 11:0:1:0 sdh 8:112 active ready running

配置完成。

4、查看结果

fdisk -l发现存在dbstorage001和dbstorage002两块磁盘,可以对其进行分区,分区结果也会同步到sdb-sdi这些别名磁盘上。