首页 > 系统相关 >DM multipath总结---基于LINUX 7

DM multipath总结---基于LINUX 7

时间:2024-11-16 18:45:34浏览次数:1  
标签:DM 多路径 配置文件 --- LINUX device multipath 设备

DM multipath总结---基于LINUX 7

DM multipath总结


DM Multipath提供的功能:

  • 冗余:
        DM Multipath 能够在主动/被动配置下提供故障转移。在主动/被动配置下,只有一半的路径在每次进行 I/O 时会被使用。若一条 I/O 路径的任一元素(电缆、交换器或者控制器)出现故障,DM Multipath 就会将它切换到备用路径。
  • 改进的性能:
        可将 DM Multipath 配置为主动/主动模式, 这会将 I/O 以轮循机制(round-robin)的方式分布到所有的路径中。在有些配置中,DM Multipath 能够检测 I/O 路径的负载,并且重新动态平衡负载。

查看支持存储命令:
    默认情况下,DM Multipath 支持大多数常用的支持 DM Multipath的储存阵列。若要了解默认配置值和支持的设备的相关信息,请运行下列指令中的任何一个。

multipathd show config
或
multipath -t  

DM MULTIPATH 组件:

组件 描述
dm-multipath kernel 模块 为路径和路径组重新指定 I/O 并支持故障转移。
mpathconf 工具程序 配置并启用 DM Multipath。
multipath 指令 列出并配置多路径设备。通常使用 /etc/rc.sysinit 启动,还可以在添加块设备时通过 udev 程序启动。
multipathd 守护进程 监视路径;若路径故障并返回,它可能会启动路径组切换。允许对多路径设备进行交互式修改。若需对 /etc/multipath.conf 文件进行任何修改,都必须重新启动本守护进程。
kpartx 命令 为设备分区生成设备映射器。对于带 DM Multipath 的基于 DOS 的分区来说,使用此命令很有必要。kpartx 命令包含在它自己的软件包当中,但是 device-mapper-multipath 软件包需要依赖它。

为系统配置 DM Multipath 的基本步骤:

  1. 安装 device-mapper-multipath rpm。
  2. 使用 mpathconf 命令创建配置文件并启用多路径。若无需编辑该配置文件,可使用此命令启动多路径守护程序。
  3. 如需编辑该配置文件,请编辑 multipath.conf 配置文件,修改默认值并保存更新的文件。
  4. 启动多路径守护进程。

DM multipath相关概念:
    若没有 DM Multipath,从服务器节点到储存控制器的每一条路径都会被系统视为独立的设备,即使 I/O 路径连接的是相同的服务器节点到相同的储存控制器也是如此。DM Multipath 提供了有逻辑的管理 I/O 路径的方法,即在基础设备顶端生成单一多路径设备。

全球识别符(WWID):
它是一个全球唯一的无法更改的号码。默认情况下会将多路径设备的名称设定为它的 WWID。另外,您还可以在多路径配置文件中设置 user_friendly_names 选项,该选项可将别名设为格式为 mpathn 的节点唯一名称。
mpath-n和dm-n :
新设备被纳入 DM Multipath 控制时,该设备会显示在 /dev 目录的两个不同位置:/dev/mapper/mpathn 和 /dev/dm-n。
/dev/mapper 中的设备是在引导过程中生成的。可使用这些设备访问多路径设备,例如在生成逻辑卷时。
任何 /dev/dm-n 格式的设备都只适用于内部使用,管理员请勿直接使用。

集群中确保所有节点多路径设备名称一致的方法:
如果需要将多路径设备名称在集群中的每个节点上都保持一致,请不要将 user_friendly_names 选项设定为 yes,且不要为那些设备配置别名。默认情况下,如果不将 user_friendly_names 设定为 yes,或者为某个设备配置别名,则设备名称将是该设备的 WWID,它是不会变的。
要系统定义的用户友好名称在集群的所有节点中都一致需要以下步骤:

  1. 在一台机器中设定所有多路径设备。
  2. 运行以下命令禁用其它机器上所有的多路径设备:
# service multipathd stop
# multipath -F  
  1. 将第一台机器中的 /etc/multipath/bindings 文件复制到集群中的其它所有机器中。
  2. 使用以下命令在集群的其他机器中重新 multipathd 守护进程:
# service multipathd start
  1. 如果添加新设备,需要重复这个过程。同时需要在变更时及时备份和维护/etc/multipath/bindings配置文件。

如果您为某个设备配置别名以便在集群的节点中使其保持一致,您应确定 /etc/multipath.conf 文件对于集群中的每个节点都是一样的,步骤如下:

  1. 为一台机器上 multipath.conf 文件中的多路径设备配置别名。
  2. 运行以下命令禁用其它机器上所有的多路径设备:
# service multipathd stop
# multipath -F
  1. 将第一台机器中的 /etc/multipath.conf 文件复制到集群中的其它所有机器中。
  2. 使用以下命令在集群的其他机器中重新 multipathd 守护进程:
# service multipathd start
  1. 如果添加新设备,需要重复这个过程。同时需要在变更时及时备份和维护/etc/multipath/bindings配置文件。

默认multipath没有DM multipath配置文件,使用以下命令生成:

/sbin/mpathconf --enable --find_multipaths y --with_module y --user_friendly_names y --with_multipathd y
                    |             |                 |                  |                     |_______________启动multipathd守护进程,非必要按需开启。
                    |             |                 |                  |_____________________________________设置用户友好名称,非必要按需开启。
                    |             |                 |________________________________________________________加载dm-multipath模块,默认为Y。  
                    |             |__________________________________________________________________________设置为发现多路径模式,默认为Y。  
                    |________________________________________________________________________________________开启或关闭控制文件,enable开启,disable关闭。  

注:
可使用 mpathconf 程序设置多路径,它可创建多路径配置文件 /etc/multipath.conf。
如果 /etc/multipath.conf 文件已存在,mpathconf 程序将会编辑该文件。
如果 /etc/multipath.conf 文件不存在,mpathconf 程序将使用 /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf 文件作为起始文件。
如果 /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf 文件不存在,则 mpathconf 程序将从头开始创建 /etc/multipath.conf 文件。
如果在启动 multipath 守护进程后发现需要编辑 multipath 配置文件,则必须执行 service multipathd reload 命令方可使更改生效。

multipath命令用法:

 multipath -ll    ------查看多路径映射情况。  
 eg:  
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16  active ready  running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 7:0:0:0 sdf 8:80  active ready  running

++++++++++++++++++内容注释++++++++++++++++++
对于每个多路径设备:
 action_if_any: alias (wwid_if_different_from_alias) dm_device_name_if_known vendor,product   
 size=size features='features' hwhandler='hardware_handler' wp=write_permission_if_known   
对与每个路径组群:  
-+- policy='scheduling_policy' prio=prio_if_known status=path_group_status_if_known  
对于每个路径:  
`- host:channel:id:lun devnode major:minor dm_status_if_known path_status online_status
选项 描述
-l 显示来自 sysfs 和设备映射器的当前多路径配置。
-ll 显示来自 sysfs 、设备映射器以及系统中其他所有可用组件的当前多路径配置。
-f device 删除命名的多路径设备。
-F 删除所有不使用的多路经设备。
-w device 从 wwids 文件中删除指定设备的 wwid。
-W 重新设定 wwids 文件使其只包含当前 multipath 设备。
-v0 初始化时没有输出。
-v1 则只输出生成或者更新的路径名称。
-v2 将输出所有检测到的路径、多路径和设备映射。
多路径命令详解参考网页链接

默认配置文件内容块:

defaults {                                  -----DM Multipath 的常规默认设置。
find_multipaths yes                         
user_friendly_names yes
}
blacklist {                                ------不被视为多路径的具体设备列表。
wwid 3600508b1001c5ae72efe1fea025cd2e5
devnode "^hd[a-z]"
devnode "^sd[a-b]"
devnode "^sda"
}
multipaths {                               ------各个独立多路径设备的特性设置。这些数值覆盖了在配置文件的 defaults 和 devices 部分中指定的数值。
multipath {
wwid 14f504e46494c4552356a657269452d66315a572d65773258
alias VMLHRStorage000
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
}
devices {                                 ------各个存储控制器的设置。这些数值覆盖了在配置文件的 defaults 部分指定的数值。如果要使用不是默认支持的存储阵列,则可能需要为您的阵列创建 devices 子部分。
device {
vendor "VMWARE"
product "VIRTUAL-DISK"
path_grouping_policy multibus
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
path_checker readsector0
path_selector "round-robin 0"
hardware_handler "0"
failback 15
rr_weight priorities
no_path_retry queue
}
}  
EG:
defaults {
        user_friendly_names     yes
        path_grouping_policy    multibus
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
multipath.conf 配置文件的defaults部分中设置的属性。DM Multipath会使用这些值,除非该属性被multipath.conf文件的  
devices和multipaths部分所指定的属性覆盖。

image.png

multipaths {
       multipath {
              wwid                  3600508b4000156d70001200000b0000
              alias                 yellow
              path_grouping_policy  multibus
              path_selector         "round-robin 0"
              failback              manual
              rr_weight             priorities
              no_path_retry         5
       }
       multipath {
              wwid                  1DEC_____321816758474
              alias                 red
              rr_weight             priorities
        }
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
multipath.conf 配置文件multipaths部分中可为每个特定多路径设备设置的属性。这些属性只适用于一个指定的multipath。  
这些默认属性可供DM Multipath使用,并且能覆盖multipath.conf文件中defaults和devices部分设置的属性。  

image.png

device {
		vendor			"COMPAQ  "
		product			"MSA1000         "
		path_grouping_policy	multibus
		path_checker		tur
		rr_weight		priorities
	   }  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
multipath.conf配置文件devices部分的每个独立储存设备能设置的属性。DM Multipath会使用这些属性,除非它们被  
multipath.conf文件multipaths部分为包含该设备的路径所指定的属性覆盖。devices部分属性会覆盖multipath.conf文件defaults  
部分设定的属性。 

如需在配置文件的这部分添加没有默认自动配置的设备,您需要设置vendor和product参数。获取相关这两个值可以通过查看/sys/block/device_name/device/vendor和/sys/block/device_name/device/model中找到这些值,其中device_name 是要进行多路径操作的设备,示例如下:

# cat /sys/block/sda/device/vendor
WINSYS  
# cat /sys/block/sda/device/model
SF2372

+++++++++++++++++++++++++++++++附相关自动生成脚本,每次执行需要按需进行调整+++++++++++++++++++++++++++++++++++++++++++++ 
#/bin/bash
for i in b c d e f g h i
    do
       echo "$i vendor is : `cat /sys/block/sd$i/device/vendor`"
       echo "$i model is : `cat /sys/block/sd$i/device/model`"
       echo '++++++++++++++++++++++++++'
done

image.png

++++++++++++++++++++++完整示例+++++++++++++++++++++++
## Use user friendly names, instead of using WWIDs as names.              
defaults {                                                                
        user_friendly_names yes                                           
        polling_interval 10 
        find_multipaths yes                                        
}  
#blacklist {                                                               
#        devnode "*"                                                      
#}            
multipaths {                                                              
       multipath {                                                        
               wwid                    14f504e46494c4552594c796765322d5368436d2d5a6b7138  
               alias                   mpatha                             
       }                                                                  
       multipath {                                                        
               wwid                    14f504e46494c45524961506456612d4a3062462d6e395764  
               alias                   mpathb                             
       }                                                                  
       multipath {                                                        
               wwid                    14f504e46494c45526157663366522d443064552d6c78676f  
               alias                   mpathc                             
       }                                                                  
       multipath {                                                        
               wwid                    14f504e46494c45524c7170734b6c2d557536702d6e487970  
               alias                   mpathd                             
       }       
}                                                                         
devices {                                                                 
       device {                                                           
               vendor                  "OPNFILER"                         
               product                 "VIRTUAL-DISK"                               
               no_path_retry           5                                  
               features                "0"                                
               hardware_handler        "0"                                
               path_grouping_policy    multibus                           
#               getuid_callout          "/sbin/scsi_id -g -u -s /block/%n" 
               path_checker            tur                                
               path_selector           "round-robin 0"                    
               failback                manual                             
               rr_weight               uniform                            
               rr_min_io               100
               rr_min_io_rq            100                                
                                                                          
       }                                                           
}  

参考链接:redhat官网多路径相关文档

red_hat_enterprise_linux-7-dm_multipath-zh-cn.pdf

multipath删除不用映射盘操作
1.备份/etc/multipath.conf、/etc/multipath/binds、wwids
2.将三个配置文件中的失效盘相关配置进行清理。
3.记录multipath -ll结果,盘个数,链路状态。
4.删除失效的映射盘:
multipath -f mpathaf
5.检查是否成功及相关配置文件是否有变化。

标签:DM,多路径,配置文件,---,LINUX,device,multipath,设备
From: https://www.cnblogs.com/guaiwawa09/p/18549681/dm-multipath-summary-based-on-linux-7-z1dhvc

相关文章

  • 20222407 2024-2025-1 《网络与系统攻防技术》实验六实验报告
    1.实验内容1.1本周学习内容回顾Metasploit是一个功能强大的渗透测试框架,广泛应用于网络安全领域。它为安全专家、渗透测试人员和红队提供了一个全面的工具集,支持漏洞利用、攻击模拟和安全评估。Metasploit提供了丰富的攻击模块,涵盖了远程代码执行、服务拒绝、提权等多种攻击......
  • Github客户端工具github-desktop使用教程
    文章目录1.客户端工具的介绍2.客户端工具使用感受3.仓库的创建4.初步尝试5.本地文件和仓库路径5.1原理说明5.2修改文件5.3版本号的说明5.4结合码云解释5.5版本号的查找6.分支管理6.1分支的引入6.2分支合并6.3创建测试仓库6.4创建测试分支6.5合并分支6.6合并效果查看6.7......
  • MarkText使用教程-cnblog
    MarkText使用教程typora是需要付费的,就算使用破解版的,每次都要点....,可能有的时候不需要还是觉得不好找到开源的MarkText,个人觉得还是非常好用的使用的方法也和typora差不多的,用习惯了就好了下载安装首先我们要登录github,搜索Marktext但基本都会搜索到英文版的,对于......
  • 20222427 2024-2025-1 《网络与系统攻防技术》实验六实验报告
    1.实验内容1.1本周学习内容回顾使用了Metasploit框架,其是一个功能强大的渗透测试框架。在使用的过程当中,Metasploit提供了种类繁多的攻击模块,涵盖了远程代码执行、服务拒绝、提权等多种攻击方式,支持对多种操作系统和应用程序进行测试。除了漏洞利用,它还具备强大的后渗透功......
  • 【11.16T1 公路】 --时间复杂度的计算技巧
    给定\(n\)个点\(m\)条边的无向简单连通图,每条边有颜色\(c_i\),当第\(k\)次经过颜色为\(j\)的边时,需要花费\(k\cdotx_j\)的代价。求在经过边数最小的情况下,\(1\)到各个点的最短路\(n\le50,m\le\binom{n}{2},x_i\le10^4\)做法是简单的,直接处理出最短路\(DAG\)......
  • 逆向攻防世界CTF系列36-re4-unvm-me
    逆向攻防世界CTF系列36-re4-unvm-mepyc文件反编译发现自己用uncompyle6的结果不太对,转而用在线网站反编译:https://tool.lu/pyc/#!/usr/bin/envpython#visithttps://tool.lu/pyc/formoreinformation#Version:Python2.7importmd5md5s=[0x831DAA3......
  • 【全栈开发(TypeOrm-Javascript)学习笔记三】
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、EntityManager二、Repository三、Find选项四、自定义Repository五、EntityManagerAPI六、RepositoryAPI总结前言本章节主要了解typeOrm框架EntityManager和Repository,学习常见的s......
  • 《Django 5 By Example》阅读笔记:p165-p210
    《Django5ByExample》学习第6天,p165-p210总结,总计46页。一、技术总结1.bookmarks项目(1)登录认证作者这里使用的是Django自带的auth。(2)上传头像图片处理,使用Pillow。(3)扩展user扩展user模型与自带的user使用外键进行关联,命名为profile。二、英语总结(生词:4)1.def......
  • 20222315 2024-2025-1 《网络与系统攻防实验六实验》实验六实验报告
    1、实验内容本实践目标是掌握metasploit的用法。指导书参考Rapid7官网的指导教程。https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/下载官方靶机Metasploitable2,完成下面实验内容。(1)前期渗透①主机发现(可用Aux中的arp_sweep,search一下就可以use......
  • (12-3-01)使用YOLOv8识别检测交通标志:基于YOLOv8的交通标志检测模型(1)使用自定义交通标志
    1.5 基于YOLOv8的交通标志检测模型本节的内容主要介绍了基于YOLOv8的交通标志检测模型的构建与训练过程。首先,使用YOLOv8的预训练模型,并通过定制的数据集对其进行了训练,以检测交通标志。在训练过程中,评估了不同的参数和优化器的影响,通过调整批量大小、学习率等参数来优化模......