Ubuntu系统下的多路径软件 DM Multipath 配置。
Ubuntu系统下的多路径软件是操作系统自带的 DM Multipath工具。
------------------------------------------------------------------------------------------------------------------
DM-Multipath 组件介绍:
dm_multipath : 内核模块 为路径和路径组群重新指定 I/O 并支持出错冗余。
multipath-tools: 程序 配置并启用设备映射器多路径
multipath : 命令 列出并配置 multipath 设备。通常使用 /etc/rc.sysinit 启动,还可以在添加块设备时使用 udev 程序启动。
multipathd : 守护进程 监视器路径,如果路径故障并返回,它可能会启动路径组群切换。可为多路径设备提供互动修改。
对 /etc/multipath.conf 文件的任何修改都必须启动它。
kpartx : 命令 为设备中的分区生成设备映射器设备。这个命令对带 DM-MP 的 DOS 分区
是很必要的。kpartx 在其自身软件包中就存在,但 devicemapper-multipath 软件包要依赖它。
-------------------------------------------------------------------------------------------------------------------
一、首先检查系统是否已安装了 Multipath 软件包,如果没有从系统安装光盘上找到并且安装相应软件包。
root@ubuntu:~# dpkg -l | grep multipath-tools
root@ubuntu:~# #没有返回值说明没有安装
二、安装multipath-tools 和multipath-tools-boot 软件包
通过apt源安装,如果操作系统可以连接外网通过网络apt源最方便,如果不能连外网,可以通过DVD光驱挂载系统iso镜像文件实现本地apt源安装,
挂载DVD源的方法Ubuntu源的文章已经介绍这里不再介绍了。
1、搜索软件包
root@ubuntu:~# apt-cache search multipath-tool
kpartx - create device mappings for partitions
multipath-tools - maintain multipath block device access
multipath-tools-boot - Support booting from multipath devices
root@ubuntu:~#
2、安装软件包
root@ubuntu:~# apt-get install multipath-tools
如果需要从SAN引导,则还需要multipath-tools-boot软件包,不需要可以不安装。
root@ubuntu:~# apt-get install multipath-tools-boot
三、查看服务的开机状态。
root@ubuntu:~# systemctl list-unit-files | grep multipath
multipath-tools-boot.service masked
multipath-tools.service enabled #开机已启动
multipathd.service enabled #开机已启动
multipathd.socket static
root@ubuntu:~#
如果服务没有启动,通过下面的命令启动
root@ubuntu:~# systemctl enable multipath-tools.service
四、Multipath 需要建立一个配置文件/etc/multipath.conf,默认情况下是没有的。安装完软件
会在:/usr/share/doc/multipath-tools/examples 目录下生成 multipath.conf.synthetic 模板文件
可以将这个文件复制到/etc目录下并从命名为multipath.conf 命令如下
root@ubuntu:~# cp -v /usr/share/doc/multipath-tools/examples/multipath.conf.synthetic /etc/multipath.conf
这个文件的内容都被注释掉了,可以取消与您环境相关的行的注释符
五、修改配置文件/etc/multipath.conf添加下面的内容,这里不取消注释的行,直接添加内容
-----------------------------------------------------------------------------------
defaults {
user_friendly_names yes #如果是集群环境yes最好改成no,下面有解释。
path_grouping_policy multibus
}
blacklist { #把本地磁盘加入黑名单,下面会解释
wwid 3630001575acb87f022c3c81a046db3e4 #本地磁盘的WWid号
}
------------------------------------------------------------------------------------
可以通过下面的命令查看所以磁盘的wwid号。
root@ubuntu:~# ll /dev/disk/by-id/
如果您在启动 multipath 守护进程后发现需要编辑 multipath 配置文件,则必须执行如下命令方可使更改生效。
root@ubuntu:~# systemctl reload multipathd.service
六、启劢 multipathd 服务,守护进程。
[root@pipci ~]# systemctl start multipathd.service
七、检查 multipath 模块是否正常加载
root@ubuntu:~# lsmod |grep dm_multipath
dm_multipath 24576 2 dm_round_robin
root@ubuntu:~#
八、安装配置成功后,可以查看到 multipath 管理了一个名称为 mpathn 的多路径设备,此设备包含有两个 路径。
root@ubuntu:~# multipath -ll #user_friendly_names yes(别名设置)
mpatha (36505dac1002fc54b1ee508f200000048) dm-0 HUAWEI,XSG1
size=200G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 12:0:0:1 sdb 8:16 active ready running
`- 13:0:0:1 sdc 8:32 active ready running
root@ubuntu:~# multipath -ll #user_friendly_names no(未别名设置)
36505dac1002fc54b1ee508f200000048 dm-0 HUAWEI,XSG1
size=200G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 12:0:0:1 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 13:0:0:1 sdc 8:32 active ready running
九、使用 fdisk 查看硬盘会多出存储设备Disk /dev/mapper/mpatha(用别名),这个是多路径软件生成的设备,在分区或其他针对硬盘的操作时请 使用这个设备,不要使用/dev/sdb 和/dev/sdc等设备,除非是服务器本地磁盘(sda)。
root@ubuntu:~# fdisk -l
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/mpatha: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
root@ubuntu:~#
十、对修改配置文件multipath.conf添加下面的内容说明
-----------------------------------------------------------------------------------------
1、user_friendly_names yes
每个多路径设备都有一个全球识别符(WWID),它是一个全球唯一的无法更改的号码。默认情况下会将
多路径设备的名称设定为它的 WWID。另外,您还可以在多路径配置文件中设置
user_friendly_names 选项,该选项可将别名设为格式为 mpathn 的节点唯一名称
当在 DM-Multipath中添加新设备时,这些新设备会位于 /dev 目录的两个不同位
置:/dev/mapper/mpathn 和 /dev/dm-n。
/dev/mapper 中的设备是在引导过程中生成的。可使用这些设备访问多路径设备,例如在生成
逻辑卷时。
所有 /dev/dm-n 格式的设备都只能是作为内部使用,请不要使用它们。
*在集群中保持多路径设备名称一致(重点)
当将 user_friendly_names 配置选项设为 yes 时,该多路径设备的名称对于节点来说是唯一的,但不
保证对使用多路径设备的所有节点都一致。同样,如果您为 multipath.conf 配置文件的 multipaths
部分中的设备设定 alias 选项,该名称不会自动在集群的所有节点中保持一致。如果您使用 LVM 在多路
径设备中创建逻辑设备,这不应是问题。但如果您需要将您的多路径设备名称在集群中的每个节点上都保
持一致,请不要将 user_friendly_names 选项设定为 yes,且不要为那些设备配置别名。默认情况
下,如果您不将 user_friendly_names 设定为 yes,或者为某个设备配置别名,则设备名称将是该设
备的 WWID,它是不会变的。
如果您要系统定义的用户友好名称在集群的所有节点中都一致,您可按照以下步骤操作:
1. 在一台机器中设定所有多路径设备。
2. 运行以下命令在其他机器中禁用所有 multipath 设备:
# systemctl stop multipath-tools.service
# multipath -F
3. 将第一台机器中的 /etc/multipath/bindings 文件复制到集群中的其它所有机器中。
4. 使用以下命令在集群的其他机器中重新 multipathd 守护进程:
设备映射多路径
# systemctl start multipath-tools.service
如果您添加新设备,您将需要重复这个过程。
同样,如果您为某个设备配置别名以便在集群的节点中使其保持一致,您应确定
/etc/multipath.conf 文件对于集群中的每个节点都是一样的,步骤如下:
1. 为机器 multipath.conf 文件中的多路基功能设备配置别名。
2. 运行以下命令在其他机器中禁用所有 multipath 设备:
# systemctl stop multipath-tools.service
# multipath -F
3. 将第一台机器中的 /etc/multipath.conf 文件复制到集群中的其它所有机器中。
4. 使用以下命令在集群的其他机器中重新 multipathd 守护进程:
# systemctl start multipath-tools.service
当您添加新设备时,您将需要重复这个过程。
-----------------------------------------------------------------------------------------------
2、path_grouping_policy multibus
DM-Multipath 可在主动/被动配置中提供出错冗余。在主动/被动配置中,只有一半的路径在每次
I/O 时都使用。如果 I/O 路径的任意元素(电缆、交换机或者控制器)出现故障,就会将 DMMultipath 切换到备用路径。
也可将 DM-Multipath 配置为主动/主动模式,其中将 I/O 以轮叫调度算法方式分布到所有路径中。
在有些配置中,DM-Multipath 可在 I/O 路径中检测负载并动态重新平衡负载
默认配置path_grouping_policy failover 主备模式
配置成 path_grouping_policy multibus 负载模式
3、生成多路径设备时忽略本地磁盘
有些机器的内部磁盘有本地SCSI卡。DM-Multipath不推荐用于这些设备。以下过程说明如何在配置多路径时修改多路径配置文件以忽略本地磁盘。
确定哪些磁盘是内部磁盘,并将它们标记为要列入黑名单的磁盘。一般情况下,/ dev / sda是内部磁盘。
为了防止设备映射器在其多路径映射中映射/ dev / sda,请编辑/etc/multipath.conf文件的黑名单部分以包含此设备。
虽然您可以使用devnode类型将sda设备列入黑名单,但这不是安全的过程,因为/ dev / sda不能保证在重新启动时相同。
要将单个设备列入黑名单,您可以使用该设备的WWID将其列入黑名单。
十一、常用命令
# multipath -ll #显示现有多路径配置
# multipath -F #删除全部路径
# multipath -v2 #格式化路径,格式化后会生成新路径
Ubuntu系统下的多路径软件 DM Multipath 配置。的更多相关文章
- ubuntu系统下创建软件桌面快捷方式
转自ubuntu系统下创建软件桌面快捷方式 默认情况下,ubuntu会将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制- ...
- ubuntu系统下用kazam软件录制的视频不能在windows系统下播放的解决方案
遇到问题: 在做计算机视觉课程作业,运动目标检测与跟踪时,在ubuntu系统下用kazam录制了一小段运动目标检测的视频,然后在课上展示时播放不出来,想着Mp4格式的不应该播放不出来啊.网上寻求了一番 ...
- Tex_安装_在Ubuntu系统下
$\LaTeX$是一个强大的排版软件,在数学公式.表格.甚至是科学绘图方面有着独特优势.本文在Ubuntu系统下,整理Tex安装相关的操作,以为备忘.所引链接都未同作者商量,如有不妥望及时告知. 命令 ...
- linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)
linux ubuntu系统下,adb不是内部命令 原文地址 linux ubuntu系统下,adb不是内部命令 解决方法: 1.sudo gedit ~/.bashrc 2.将下面的两句加到上面打开 ...
- Houdini 13在Ubuntu系统下流畅运行、不崩溃
至尊影视特效软件Houdini FX,当前最新版是13.0.547,经过试用在Ubuntu系统下可以完美运行,目前为止还没出现过崩溃的情况,之前在windows下使用Houdini 13简直就是噩梦, ...
- Ubuntu系统下创建python数据挖掘虚拟环境
虚拟环境: 虚拟环境是用于创建独立的python环境,允许我们使用不同的python模块和版本,而不混淆. 让我们了解一下产品研发过程中虚拟环境的必要性,在python项目中,显然经常要使用不 ...
- ubuntu系统下Python虚拟环境的安装和使用
ubuntu系统下Python虚拟环境的安装和使用 前言:进行python项目开发的时候,由于不同的项目需要使用不同的资源包和相关的配置,因此创建多个python虚拟环境,在虚拟环境下开 ...
- ubuntu系统下安装pyspider:搭建pyspider服务器新手教程
首先感谢“巧克力味腺嘌呤”的博客和Debian 8.1 安装配置 pyspider 爬虫,本人根据他们的教程在ubuntu系统中进行了实际操作,发现有一些不同,也出现了很多错误,因此做此教程,为新手服 ...
- Ubuntu系统下Import cv2提示no modules ...错误
最近利用pycharm在Ubuntu系统下调试一个Python项目,将pycharm的解释器从python2.7更换到python3.4后,程序中的Import cv2提示no modules nam ...
随机推荐
- [MST] Create an Entry Form to Add Models to the State Tree
It is time to add new entries to the wishlist. We will achieve this by reusing forms and models we'v ...
- datatable 前台和后台数据格式
datatable是很强大的前台表格插件,前台定义好表格格式后,后台须要返回指定格式的json数据! 例如以下: 首先是js的定义: var oTable = $('#sample_editable_ ...
- 关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题
关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题 来自于: Installing, Ex ...
- javascript中如何获取对象名
javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...
- 熟悉了下HTTP协议
HTML是一种用来定义网页的文本,会HTML,就可以编写网页: HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信.200表示一个成功的响应,后面的OK是说明.失败的响应有404 Not ...
- [Codeforces Round #194 (Div. 2)] Secret 解题报告 (数学)
题目链接:http://codeforces.com/problemset/problem/334/C 题目: 题目大意: 给定数字n,要求构建一个数列使得数列的每一个元素的值都是3的次方,数列之和S ...
- cnmp安装失败,报错npm ERR! enoent ENOENT: no such file or directory,
1.cnmp安装失败 2.提示如下: bogon:node_modules liangjingming$ sudo npm install cnpm -g --registry=https://reg ...
- c# 结构 struct
结构是使用 struct 关键字定义的,与类相似,都表示可以包含数据成员和函数成员的数据结构. 一般情况下,我们很少使用结构,而且很多人也并不建议使用结构,但作为.NET Framework 一般型別 ...
- 阿里云安装mysql数据库出现2002错误解决办法
在安装数据库的时候出现了如下错误: 解决办法如下: 1.在bin目录下 输入:kill -s 9 9907 再输入:ps -ef|grep mysql 显示如下: 2.回到lampp目录下,重启数据库 ...
- vue 父子组件传值:props和$emit
<!--子组件页面--> <template> <div class="hello"> <!-- 添加一个input输入框 添加keypr ...