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

Linux 7 Multipath 多路径配置

原创 一个老兵 2024-05-14
3523

Linux 7 Multipath 多路径配置

1.安装程序

yum install device-mapper-multipath -y

2、将多路径软件添加至内核模块中

modprobe dm-multipath modprobe dm-round-robin

3、检查内核添加情况

lsmod |grep multipath 显示如下即可: dm_multipath 27427 3 dm_round_robin,dm_service_time dm_mod 123303 13 dm_round_robin,dm_multipath,dm_log,dm_mirror,dm_service_time

二、启动服务

1、启动服务并设置开机自启

systemctl enable multipathd --now

2、centos6 用以下方式

查看启动级别

chkconfig --list|grep multipathd multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

配置启动级别

chkconfig --level 2345 multipathd on chkconfig --list|grep multipathd multipathd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

三、编辑配置文件

1、手动创建/etc/multipath.conf配置文件并写入如下内容:

blacklist { wwid 3600508b1001c044c39717726236c68d5 } defaults { user_friendly_names yes polling_interval 10 queue_without_daemon no flush_on_last_del yes checker_timeout 120 } devices { device { vendor "3par8400" product "HP" path_grouping_policy asmdisk no_path_retry 30 prio hp_sw path_checker tur path_selector "round-robin 0" hardware_handler "0" failback 15 } } multipaths { multipath { wwid 360002ac0000000000000000300023867 alias mpathdisk01 } } 如果有两个或者多个就再加一条即可。 multipaths { multipath { wwid 360002ac0000000000000000400023867 alias mpathdisk02 } }

2、之后重启服务

systemctl restart multipathd

centos6用以下方式重启服务
/etc/init.d/multipathd restart

可以看到已经配置成功

[root@test ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 557G 0 disk ├─sda1 8:1 0 4G 0 part /boot └─sda2 8:2 0 553G 0 part ├─centos-root 253:0 0 488.9G 0 lvm / └─centos-swap 253:1 0 64G 0 lvm [SWAP] sdb 8:16 0 2T 0 disk └─mpathdisk01 253:2 0 2T 0 mpath sdc 8:32 0 2T 0 disk └─mpathdisk01 253:2 0 2T 0 mpath sdd 8:48 0 2T 0 disk └─mpathdisk01 253:2 0 2T 0 mpath sde 8:64 0 2T 0 disk └─mpathdisk01 253:2 0 2T 0 mpath

3、查看状态 multipath -d -l

[root@fceclpdatapool1 ~]# multipath -d -l mpathdisk01 (360002ac0000000000000000300023867) dm-2 3PARdata,VV size=2.0T features='1 queue_if_no_path' hwhandler='1 alua' wp=rw `-+- policy='service-time 0' prio=0 status=active |- 1:0:0:0 sdb 8:16 failed faulty running |- 1:0:1:0 sdc 8:32 active undef running |- 3:0:0:0 sdd 8:48 active undef running `- 3:0:1:0 sde 8:64 active undef running

4、重新扫描设备 multipath -v3

四、配置文件解析

字段解析

这段代码是一个 multipath.conf 配置文件,用于配置 Linux 操作系统中的多路径设备。以下是每个字段的含义:

blacklist:定义了一些被禁用的设备,只要 WWID 匹配了列表中的任何一个,它就会被黑名单所拒绝。
wwid:唯一标识多路径设备的 32 位十六进制字符串。
defaults:定义了一些默认设置,这些设置可以在其他部分被重写。
user_friendly_names:使多路径设备更易于理解和使用。
polling_interval:检查路径状态的频率(以秒为单位)。
queue_without_daemon:定义了当 multipathd 守护程序处于未运行状态时处理 I/O 请求的行为。
flush_on_last_del:在删除最后一个路径时是否刷新 IO 缓存。
checker_timeout:指定检查器超时的时间。
devices:包含一个或多个 
device 块,每个块都描述了一个特定的多路径设备。
device:描述了一个多路径设备及其属性。
vendor、product:设备的制造商和产品名称。
path_grouping_policy:指定将路径分组到哪个组中。
no_path_retry:当无法访问某个路径时进行重试的次数。
prio:指定优先级算法,如 alua、emc、hp_sw 等。
path_checker:指定 IO 路径检查器的类型。
path_selector:指定选择路径的算法。例如,“round-robin 0” 表示依次将请求分发到每个路径上。
hardware_handler:指定用于处理硬件错误的脚本或程序。
failback:指定多长时间后进行故障切换。
multipaths:包含一个或多个 
multipath 块,每个块都描述了一个设备的多个路径。
alias:为指定的多路径设备定义别名。

prio 是 multipath.conf 配置文件中的一个关键字,表示优先级算法。它可以指定多路径设备使用哪种算法来选择 I/O 请求路径。例如:

prio alua

以上配置指定了使用 Asymmetric Logical Unit Access(ALUA) 算法进行路径选择。这个算法主要用于 SAN 存储环境下,能够更好地处理存储阵列并发访问的问题。
除了 ALUA,还有其他一些可用的优先级算法,如:
emc:用于与 EMC 存储阵列配合使用。
hp_sw:用于与 HP 存储阵列配合使用。
rdac:用于与 LSI 存储阵列配合使用。
如果没有指定 prio 设置,则默认为 const(优先选择第一个路径)算法,或者是上层应用程序自己控制路径选择。

可以使用以下命令来查看硬盘的 WWID:

sudo udevadm info --query=all --name=/dev/sdX | grep ID_SERIAL 将 /dev/sdX 替换为您要查看的磁盘设备,例如 /dev/sda 或 /dev/sdb。该命令将打印出设备的所有属性,然后使用 grep 命令过滤出包含 ID_SERIAL 的行,从而找到设备的 WWID。

另外,还可以使用以下命令列出系统中所有的多路径设备及其 WWID:

multipath -ll 这个命令将显示多路径设备的别名、WWID 和路径等信息。

启用 Linux 上的 MPIO

  1. 运行以下命令,以确保已安装多路径守护程序并将其设置为运行时启动:

    chkconfig multipathd on
    
  2. 确保每个 OSS/MDS 主机上的 /etc/multipath.conf 文件中存在正确的条目。为

    ME4 Series

    存储系统创建单独的设备条目。下表指定了应设置的四个属性。运行以下命令以获取准确的供应商和产品 ID 值:

    multipath -v3
    
    属性
    prio alua
    故障恢复 即时
    供应商 供应商名称
    产品 产品 ID
  3. 运行以下命令以重新加载 multipath.conf 文件:

    service multipathd reload
    
  4. 运行以下命令以确定多路径守护程序是否使用了 ALUA 获取最佳/非最佳路径:

    multipath -v3 | grep alua
    

    您应看到输出,表明使用了 ALUA 来配置路径优先级。例如:

    Oct 01 14:28:43 | sdb: prio = alua (controller setting) Oct 01 14:28:43 | sdb: alua prio = 130

ATTRIBUTE VALUE
prio alua
failback immediate
vendor vendor-name
product product-ID

挂载磁盘

[root@acdm-db1 ~]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Sat Jul 1 08:21:14 2023 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=ee3f5af2-a3ab-4bcd-847e-2f5b7c3dcd5d /boot xfs defaults 0 0 UUID=A2C3-48E8 /boot/efi vfat umask=0077,shortname=winnt 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/mapper/mpathdisk01 /data xfs defaults 0 0 /dev/mapper/mpathdisk02 /zhongcai xfs defaults 0 0

格式化磁盘并挂载

[root@acdm-db1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1.1T 0 disk ├─sda1 8:1 0 200M 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 1.1T 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 15.4G 0 lvm [SWAP] └─centos-home 253:2 0 1T 0 lvm /home sdb 8:16 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sdc 8:32 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath sdd 8:48 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sde 8:64 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath sdf 8:80 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sdg 8:96 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath sdh 8:112 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sdi 8:128 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath loop0 7:0 0 4.3G 0 loop /media/centos/ loop1 7:1 0 4.3G 0 loop /mnt [root@acdm-db1 ~]# mount /data /zhongcai [root@acdm-db1 ~]# mount /dev/mapper/mpathdisk01 /data/ mount: /dev/mapper/mpathdisk01 is write-protected, mounting read-only mount: wrong fs type, bad option, bad superblock on /dev/mapper/mpathdisk01, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so. [root@acdm-db1 ~]# /dev/mapper/mpathdisk01 meta-data=/dev/mapper/mpathdisk01 isize=512 agcount=7, agsize=268435455 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=1753771776, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=521728, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@acdm-db1 ~]# mkfs.xfs -f /dev/mapper/mpathdisk02 meta-data=/dev/mapper/mpathdisk02 isize=512 agcount=4, agsize=610176 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2440704, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [root@acdm-db1 ~]# mount /dev/mapper/mpathdisk01 /data/ [root@acdm-db1 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1.1T 0 disk ├─sda1 8:1 0 200M 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 1.1T 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 15.4G 0 lvm [SWAP] └─centos-home 253:2 0 1T 0 lvm /home sdb 8:16 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sdc 8:32 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath /data sdd 8:48 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sde 8:64 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath /data sdf 8:80 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sdg 8:96 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath /data sdh 8:112 0 9.3G 0 disk └─mpathdisk02 253:3 0 9.3G 0 mpath sdi 8:128 0 6.5T 0 disk └─mpathdisk01 253:4 0 6.5T 0 mpath /data loop0 7:0 0 4.3G 0 loop /media/centos/ loop1 7:1 0 4.3G 0 loop /mnt [root@acdm-db1 ~]# mount /dev/mapper/mpathdisk02 /zhongcai/ [root@acdm-db1 ~]# mount -a [root@acdm-db1 ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=16162432k,nr_inodes=4040608,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=36427) debugfs on /sys/kernel/debug type debugfs (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) /dev/sda2 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro) /dev/mapper/centos-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=3236100k,mode=700,uid=42,gid=42) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=3236100k,mode=700) gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) /root/CentOS-7.6-x86_64-DVD-1810.iso on /media/centos/ type iso9660 (ro,relatime) /root/CentOS-7.6-x86_64-DVD-1810.iso on /mnt type iso9660 (ro,relatime) /dev/mapper/mpathdisk01 on /data type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/mapper/mpathdisk02 on /zhongcai type xfs (rw,relatime,seclabel,attr2,inode64,noquota) [root@acdm-db1 ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 50G 11G 40G 22% / devtmpfs devtmpfs 16G 0 16G 0% /dev tmpfs tmpfs 16G 12K 16G 1% /dev/shm tmpfs tmpfs 16G 12M 16G 1% /run tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/sda2 xfs 1014M 255M 760M 26% /boot /dev/sda1 vfat 200M 12M 189M 6% /boot/efi /dev/mapper/centos-home xfs 1.1T 37M 1.1T 1% /home tmpfs tmpfs 3.1G 4.0K 3.1G 1% /run/user/42 tmpfs tmpfs 3.1G 28K 3.1G 1% /run/user/0 /dev/loop0 iso9660 4.3G 4.3G 0 100% /media/centos/? /dev/loop1 iso9660 4.3G 4.3G 0 100% /mnt /dev/mapper/mpathdisk01 xfs 6.6T 33M 6.6T 1% /data /dev/mapper/mpathdisk02 xfs 9.4G 33M 9.3G 1% /zhongcai
最后修改时间:2024-05-14 09:25:55
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论