Linux 下多路径 multipath 配置使用

多路径 -- 介绍

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。

多路径 -- 功能

  1. 故障的切换和恢复 
  2. IO流量的负载均衡 
  3. 磁盘的虚拟化

  • 查看当前 scsi 设备 .

suse1:~ # sfdisk -l

Disk /dev/sda: 5221 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1          0+    261-    262-   2103296   82  Linux swap / Solaris
/dev/sda2   *    261+   5221-   4960-  39838720   83  Linux
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

suse1:~ # more /proc/partitions
major minor  #blocks  name

   8        0   41943040 sda
   8        1    2103296 sda1
   8        2   39838720 sda2
  • 获取设备wwid .
for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; 
do echo "### $i: `/lib/udev/scsi_id --whitelist  
--replace-whitespace /dev/$i`"; done

// 获取后,过滤本地磁盘及重复的wwid .

多路径 -- 配置使用

  • 安装和加载多路径软件包 .
# yum –y install device-mapper device-mapper-multipath
# chkconfig --level 2345 multipathd on #设置成开机自启动multipathd
# lsmod |grep dm_multipath #来检查安装是否正常
# rpm  -ql device-mapper-multipath | less  # 生成的配置文件
  • 模块没有加载成功使用下列命初始化DM、重启系统  .
// DM multipath kernel driver not loaded    ----这个提示说明DM模块没有加载成功 !!

# modprobe dm-multipath 
# modprobe dm-round-robin 
# service multipathd start 
# multipath –v2
  • 校验多路径设备 .
# multipath -ll | grep mpath

// 设备的详细信息

# multipath -ll
# dmsetup ls |sort

#以下命令均可以用于校验多路径设备
# ll /dev/disk/by-id/
# ls -l /dev/dm-*
# ll /dev/mapper/

# /dev/dm-*下面的为动态名,即系统重启后会发生变化,此部分用于os 内部使用。
# /dev/mapper/下面查看到的内容为持久化名称,也即是我们在mulitpatch.conf文件中定义的

  • multipath 基本操作命令 .
# /etc/init.d/multipathd start #开启mulitipath服务 
# multipath -F #删除现有路径 
# multipath -v2 #格式化路径 
# multipath -ll #查看多路径
  • 配置 multipath .

DM模块成功加载,但是/etc/下没有multipath.conf 配置文件,通过vi命令创建一个Multipath的配置文件路径是/etc/multipath.conf ,在配置文件中添加multipath正常工作的配置如下:

vi /etc/multipath.conf

blacklist {
devnode "^sda"
}

defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry fail
}

编辑完成后保存配置.

# /etc/init.d/multipathd start  # 开启mulitipath服务

  • multipath 高级配置
multipath.conf主要包括blacklist、multipaths、devices三部份的配置
 
blacklist配置
blacklist {
devnode "^sda"
}
Multipaths部分配置multipaths和devices两部份的配置。
multipaths {
multipath {
wwid ****************   #此值multipath -v3可以看到
alias iscsi-dm0 #映射后的别名,可以随便取
path_grouping_policy multibus #路径组策略
path_checker tur    #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
}
} 
Devices部分配置
devices {
device {
vendor "iSCSI-Enterprise" #厂商名称
product "Virtual disk" #产品型号
path_grouping_policy multibus #默认的路径组策略
getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序
prio_callout      "/sbin/acs_prio_alua %d" #获取有限级数值使用的默认程序
path_checker readsector0 #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
failback        immediate #故障恢复的模式
   no_path_retry      queue #在disable queue之前系统尝试使用失效路径的次数的数值
  rr_min_io       100 #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
}
}
  • 完整的配置文件 .
blacklist {
devnode "^sda"
}
defaults {
user_friendly_names no
}
multipaths {
multipath {
wwid 14945540000000000a67854c6270b4359c66c272e2f356321
alias iscsi-dm0
path_grouping_policy multibus
path_checker tur
path_selector "round-robin 0"
}
multipath {
wwid 14945540000000000dcca2eda91d70b81edbcfce2357f99ee
alias iscsi-dm1
path_grouping_policy multibus
path_checker tur
path_selector "round-robin 0"
}
multipath {
wwid 1494554000000000020f763489c165561101813333957ed96
alias iscsi-dm2
path_grouping_policy multibus
path_checker tur
path_selector "round-robin 0"
}
multipath {
wwid 14945540000000000919ca813020a195422ba3663e1f03cc3
alias iscsi-dm3
path_grouping_policy multibus
path_checker tur
path_selector "round-robin 0"
}
}
devices {
device {
vendor "iSCSI-Enterprise"
product "Virtual disk"
path_grouping_policy multibus
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
path_checker readsector0
path_selector "round-robin 0"
}
}
  • 获取wwid的方法 .

默认情况下,将使用 /var/lib/multipath/bindings 内的配置设定具体每个多路径设备名,如果在/etc/multipath.conf中有设定各wwid 别名,别名会覆盖此设定.

  • 负载均衡测试 .
# dd if=/dev/zero of=/dev/mapper/iscsi-dm1p1 
开启另外一个终端用以下命令查看IO情况
# iostat 10 10

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux多路径配置是指在Linux系统中配置多个路径来实现高可用性和负载均衡。多路径配置可以提高系统的可靠性和性能,特别是在使用存储设备时。 多路径配置的主要步骤包括: 1. 安装多路径软件包:在Linux系统中安装多路径软件包,例如multipath-tools。 2. 配置多路径:编辑multipath.conf文件,配置多个路径和优先级,以及其他选项。 3. 启用多路径:启用多路径服务,例如multipathd。 4. 测试多路径:测试多路径是否正常工作,例如使用multipath命令查看多路径状态。 多路径配置可以提高系统的可靠性和性能,但也需要注意一些问题,例如: 1. 多路径配置需要消耗一定的系统资源,例如CPU和内存。 2. 多路径配置需要正确配置,否则可能会导致系统故障或数据丢失。 3. 多路径配置需要定期维护和更新,以确保系统的稳定性和可靠性。 总之,Linux多路径配置是一个重要的系统配置,可以提高系统的可靠性和性能,但需要正确配置和维护。 ### 回答2: 多路径是一种技术,它可以提高 Linux 系统对存储设备的故障容错能力和可用性。当存储设备的单个路径发生故障时,多路径技术可以在不影响系统正常工作的情况下,自动切换到备用路径。本文将详细介绍 Linux 多路径配置。 1. 安装 multipath 工具 在 Linux 系统上配置多路径,需要安装 multipath 工具。该工具可以让系统识别存储设备的多个路径,并将其作为一个逻辑单元来管理。multipath 工具可以通过 yum 安装: yum install -y multipath 2. 配置 multipath 安装完 multipath 工具后,需要配置 multipath.conf 文件来指定存储设备的多个路径以及如何管理这些路径。可以通过以下命令编辑 multipath.conf 文件: vi /etc/multipath.conf 在文件中添加以下内容: defaults { find_multipaths yes user_friendly_names yes } blacklist { devnode "^sd[a-z]$" } devices { device { vendor "VENDOR" product "PRODUCT" path_grouping_policy multibus path_checker directio failback immediate } 在上述配置中,配置了默认路径查找和用户友好的命名,同时使用了路径分组策略 multibus,路径检查程序 directio 和 failback 策略 immediate。此外,还可以针对不同的存储设备制定不同的配置。 3. 运行 multipathd 服务 multipathd 是 multipath 工具的后台服务,用于管理存储设备路径。运行 multipathd 服务可以使用以下命令: systemctl start multipathd 可以通过以下命令检查 multipathd 服务是否正在运行: systemctl status multipathd 4. 扫描存储设备 完成上述配置后,需要扫描存储设备以便 multipath 工具能够识别它们的多个路径。可以通过以下命令扫描所有存储设备: echo "- - -" > /sys/class/scsi_host/host#/scan 其中,host# 是存储设备所在的主机号。对于每个存储设备,需要分别运行此命令。 5. 检查多路径配置 完成以上操作后,可以使用以下命令检查多路径是否配置成功: multipath -ll 该命令将显示所有的多路径设备以及其状态。 6. 管理多路径设备 在多路径设备配置完成后,可以使用相同的设备名称访问多个路径。如果其中一个路径出现故障,系统将自动将 I/O 重定向到备用路径。可以使用以下命令管理多路径设备: multipath -f device_name // 删除多路径设备 multipath -r // 刷新多路径信息 总之,多路径是一种可以提高 Linux 系统存储设备可用性和故障容错能力的技术。需要配置 multipath 工具、运行 multipathd 服务、扫描存储设备并检查多路径配置是否成功。最后,可以使用相同的设备名称访问多个路径,并使用 multipath 命令管理多路径设备。 ### 回答3: 多路径技术是为了解决存储系统中单点故障的问题而设计的。在Linux系统中,我们可以通过多路径技术来让单个服务器能够同时访问到多个存储设备,使得数据的访问更加高效和可靠。 在Unix/Linux操作系统中,多路径技术常常是通过设备映射(Device Mapper)来实现的。设备映射是一种独立于硬件、能够适用于不同的底层存储设备的软件层级的实现技术。具体来说,在Linux系统中,多路径技术主要包括以下几步: 1. 首先,在Linux系统中安装好RAID卡,对存储设备进行硬件配置,创建出多个存储路径。 2. 其次,安装好设备映射工具DM-Multipath,在Linux系统中运行该工具。 3. 接着,配置MLP(Multipath.conf)文件,该文件是多路径技术的核心配置文件,其中包含了多个存储设备路径的信息和优先级设置。 4. 最后,通过挂载文件系统来完成存储设备路径的设置。 在配置MLP文件时,主要需要设置以下几个参数: 1. defaults:用于设置默认值,如超时时间和优先级等。 2. blacklist:去除不需要的存储设备路径。 3. blacklist_exceptions:例外情况的黑名单。 4. devices:设备的别名和添加设备路径命名规则。 5. multipaths:设备映射表。 从上述步骤和参数配置可以看出,多路径技术的配置相对复杂,但是一旦配置成功,可以为系统带来高效和可靠的存储服务。通过多路径技术,能够利用存储设备的所有路径,增加存储设备的吞吐量,同时提高数据的可靠性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值