multipaths配置多路径


multipaths配置多路径

一、什么是多路径?

​ **多路径(Multipath)**通常指的是数据在网络或存储系统中从源到目的地之间存在多个可能的传输路径。这个概念可以应用于不同的技术领域,但最常见的是在计算机网络和存储区域网络(SAN, Storage Area Network)中。

  1. 计算机网络中的多路径: 在计算机网络中,多路径路由允许数据包通过多个不同路径到达目的地。这可以通过动态路由协议来实现,这些协议能够根据当前网络状况选择最佳路径。多路径路由可以提高网络的可靠性和性能,因为它可以在一条路径失败时自动切换到另一条路径,并且可以通过负载均衡来优化带宽使用。
  2. 存储系统中的多路径: 在存储系统中,特别是对于SAN环境,多路径是指服务器和存储设备之间的多个连接路径。它提供了冗余,以防止单点故障导致的数据访问中断。例如,如果一个HBA(主机总线适配器)、交换机端口或电缆发生故障,数据仍然可以通过其他路径进行访问。此外,多路径软件还可以提供负载均衡功能,将I/O请求分散到多个可用路径上,从而提高性能。

二、多路径该如何配置?

#!/bin/bash

# 1.安装程序
yum install device-mapper-multipath -y

# 2.将多路径软件添加至内核模块中
modprobe dm-multipath
modprode 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

# 4.启动服务
systemctl enable multipathd --now

# 5.备份并编辑配置文件
# 先查看存储设备的WWID(以下两条命令均可)
sudo udevadm info --query=all --name=/dev/sdX | grep ID_SERIAL
multipath -ll

cp /etc/multipath.conf /etc/multipath.conf.bak
vim /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放在这里
           wwid    360002ac0000000000000000300023867
           # 设置多路径设备的别名
           # 例如:mpathdisk01
           alias    mpathdisk01
        }
        multipath {
           wwid    360002ac0000000000000000400023867
           alias    mpathdisk02
        }
}
"""

# 6.重启服务
systemctl restart multipathd

# 7.查看是否成功
lsblk
#结果类似
[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
"""

# 查看状态
multipath -d -l

# 配置文件解析
"""
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(优先选择第一个路径)算法,或者是上层应用程序自己控制路径选择。
"""
### Linux系统中配置多路径(Multipath) 在Linux环境中,为了提高存储设备访问的可靠性和性能,通常会采用多路径技术。通过该技术可以实现冗余路径管理以及负载均衡等功能。 #### 安装Multipath工具 对于大多数现代Linux发行版而言,`device-mapper-multipath`包提供了必要的支持来管理和配置多路径设置。可以通过系统的软件仓库安装此组件: ```bash sudo apt-get install multipath-tools # 对于Debian/Ubuntu系列 sudo yum install device-mapper-multipath # 对于RedHat/CentOS/Fedora系列 ``` #### 编辑默认配置文件 编辑位于 `/etc/multipath.conf` 的配置文件以适应特定需求。下面是一个基本的例子[^1]: ```plaintext defaults { polling_interval 10 # 设置轮询间隔时间为10秒 user_friendly_names no # 不启用用户友好名称模式 } blacklist { wwid 3600508b1001c27907eca5c5df3253752 # 黑名单WWID列表项之一 wwid 3600508b1001caad1587d7d457eaf7045 # 另一个黑名单WWID条目 devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" devnode "^cciss" # 排除不需要考虑的设备节点正则表达式 } multipaths { multipath { wwid 360060e80059559000000955900000400 # 特定LUN的世界唯一标识符(wwid) alias mpatha # 给这个多径组指定别名mpatha } multipath { wwid 360060e80059559000000955900000401 alias mpathb # 同样地给另一个多径组命名 } } ``` 上述配置定义了两个主要部分:“defaults”用于设定全局参数;而“blacklist”用来排除某些不希望被纳入多路径处理范围内的磁盘或者分区。最后,“multipaths”区块描述了哪些具体的SAN LUN应该参与多路径机制,并赋予它们易于识别的名字以便后续操作和维护。 完成这些更改之后重启服务使新的配置生效: ```bash sudo systemctl restart multipathd.service ``` 验证当前状态可执行命令 `multipath -ll`, 这将显示所有已知并正在使用的多路径连接详情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值