1、多路径的主要功能
多路径一般配合存储设备实现如下功能:
  • 故障的切换和恢复 
  • IO流量的负载均衡 
  • 磁盘的虚拟化
 
 
2、查看系统自带的多路径软件是否安装
[root@cluster01 ~]# rpm -qa |grep device-mapper
device-mapper-event-libs-1.02.79-8.el6.x86_64
device-mapper-event-1.02.79-8.el6.x86_64
device-mapper-persistent-data-0.2.8-2.el6.x86_64
device-mapper-libs-1.02.79-8.el6.x86_64
device-mapper-multipath-0.4.9-72.el6.x86_64
device-mapper-1.02.79-8.el6.x86_64
device-mapper-multipath-libs-0.4.9-72.el6.x86_64
 
查看服务状态:
[root@cluster01 ~]# chkconfig --list |grep mul
multipathd         0:off    1:off    2:on    3:on    4:on    5:on    6:off
[root@cluster01 ~]# chkconfig multipathd on
[root@cluster01 ~]# chkconfig --list |grep mul
multipathd         0:off    1:off    2:on    3:on    4:on    5:on    6:off
 
将服务设置为开机启动,
 
 
 
3、生成配置文件
[root@cluster01 device-mapper-multipath-0.4.9]# pwd
/usr/share/doc/device-mapper-multipath-0.4.9
 
[root@cluster01 device-mapper-multipath-0.4.9]# ls
AUTHOR  COPYING  FAQ  multipath.conf  multipath.conf.annotated  multipath.conf.defaults  multipath.conf.synthetic
 
[root@cluster01 device-mapper-multipath-0.4.9]# cp  multipath.conf       /etc/multipath/
 
 
4、检查多路径模块是否成功加载
#lsmod |grep dm_multipath  
如果没有输出说明没有安装多路径软件包。那么通过yum功能安装一下软件包:
yum –y install device-mapper device-mapper-multipath
 
接着通过命令:multipath –ll 查看多路径状态查看模块是否加载成功
[root@liujing ~]#  multipath –ll   查看多路径状态
Mar 10 19:18:28 | /etc/multipath.conf does not exist, blacklisting all devices
Mar 10 19:18:28 | A sample multipath.conf file is located at
Mar 10 19:18:28 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Mar 10 19:18:28 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
Mar 10 19:18:28 | DM multipath kernel driver not loaded    ----DM模块没有加载
 
如果模块没有加载成功请使用下列命初始化DM,或重启系统
---Use the following commands to initialize and start DM for the first time:
# modprobe dm-multipath
# modprobe dm-round-robin
# service multipathd  start
# multipath –v2
 
初始化完了之后再通过multipath -ll命令查看是否加载成功
[root@liujing ~]#  multipath -ll
Mar 10 19:21:14 | /etc/multipath.conf does not exist, blacklisting all devices.
Mar 10 19:21:14 | A sample multipath.conf file is located at
Mar 10 19:21:14 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Mar 10 19:21:14 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
DM multipath kernel driver not loaded    ----这个提示没了说明DM模块已加载成功。
 
multipath基本操作命令 
# multipath -F #删除现有路径 
# multipath -v2 #格式化路径 
# multipath -ll #查看多路径
 
5、设置DM-Multipath
通过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   restart   
 
 
参数解释:
 
(1)
blacklist {
devnode "^sda"
表示将本地设备加入黑名单【以下摘自官方文档】:
为防止设备映射器将本地磁盘 /dev/sda 与其多路径对应,请编辑 /etc/multipath.conf 文件的blacklist 部分,使其包括该设备。
虽然您可以使用 devnode 类型将 sda 设备列入黑名单,但那并不安全,因为重启时无法保证 /dev/sda 是同一个名称。
要将单独的设备列入黑名单,您可以使用那个设备的 WWID 将其列入黑名单。
请注意:在 multipath -v2 命令的输出中,/dev/sda 设备的 WWID 是 SIBM-ESXSST 336732LC____F3ET 0EP0Q000072428BX1。
要将这个设备列入黑名单,请在/etc/m ultipath.conf 文件中添加以下内容:
blacklist {
wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
}
# service multipathd reload    使配置生效
我们在这里使用的是sda,没有使用sda的WWID。
 
什么是WWID,什么是UUID?
根据SCSI标准,每个SCSI磁盘都有一个WWID,类似于网卡的MAC地址,要求是独一无二。
通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径。
 
查看磁盘设备wwid方法:
[root@cluster01 ~]# ll  /dev/disk/by-id/
 
 
UUID是有文件系统在创建时候生成的,用来标记文件系统,类似WWID一样也是独一无二的。
因此使用UUID来标示SCSI磁盘,也能保证路径是永久不变的。Linux上/dev/disk/by-uuid可以看到每个已经创建文件系统的磁盘设备以及与/dev/sd*之间的映射关系。
查看文件系统uuid:  
[root@rcluster01 ~]# ll  /dev/disk/by-uuid/
 
 
(2)user_friendly_names    yes
如果将其设为 yes,即指定该系统应该使用文件 /etc/multipath/bindings 为该多路径分配一个持久且唯一的别名,
格式为 mpathn。如果设定为 no,即指定该系统应使用 WWID 作为该多路径的别名。在这两种情况下,
您在这里指定的数值将被您在配置文件 multipaths 部分指定的具体设备别名覆盖。默认值为 no。
 
 
(3)path_grouping_policy   multibus
  • 指定用于未指定路径的默认路径分组策略,可能的值包括:
  • failover:每个优先组群有一个路径。
  • multibus:所有有效路径在一个优先组群中。
  • group_by_serial:每个检测到的系列号有一个优先组群。
  • group_by_prio:每个优先组群有一个路径优先值。优先权根据指定为 global、per-controller 或者 per-multipath 选项的调用程序决定。
  • group_by_node_name:每个目标节点名有一个优先组。目标节点名保存在 /sys/class/fc_transport/target*/node_name 文件中。
  • 默认值为 failover。
 
 
(4)failback immediate
  • 管理路径组群出错切换。
  • immediate 值指定立即恢复到包含活跃路径的最高级别路径组群。
  • manual 值指定不需要立即恢复,只有在操作者干预的情况下会发生恢复。
  • followover 值指定当路径组的第一个路径成为活跃路径时应执行自动恢复。这可让节点在另一个节点请求故障修复时不会自动恢复。
  • 大于 0 的数字值指定推迟出错切换,以秒表示。
  • 默认值为 manual。
 
 
(5)no_path_retry  fail
  • 这个属性的数字值指定系统在禁用队列前应该试图使用失败的路径的次数。
  • fail 值说明立即失败,无需排队。
  • queue 表示固定路径前排队不会停止。
  • 默认值为 0。
 
 
6、通过命令查看
[root@liujing mapper]# multipath   -ll
mpatha (360a9800064665072443469563477396c) dm-0 NETAPP,LUN    
size=3.5G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=4 status=active
|- 1:0:0:0 sdb 8:16 active ready  running   ----多路径下的两个盘符sdb和sde.
`- 2:0:0:0 sde 8:64 active ready  running
 
目录/dev/mapper/   下多了两个文件夹mpatha 和mpathap1。
[root@liujing mapper]# cd /dev/mapper/
[root@liujing mapper]# ls
control  mpatha  
 
同时fdisk –l的命令下也多了两个设备标识:
[root@liujing~]# fdisk -l
Disk /dev/sda: 146.8 GB, 146815733760 bytes
Disk /dev/sdb: 3774 MB, 3774873600 bytes
Disk /dev/sde: 3774 MB, 3774873600 bytes
 
两个网卡获取到同一盘符:
/dev/sde和/dev/sdb.
 
7. multipath磁盘的基本操作
要对多路径软件生成的磁盘进行操作直接操作/dev/mapper/目录下的磁盘就行.
在对多路径软件生成的磁盘进行分区之前最好运行一下pvcreate命令:
 
# pvcreate  /dev/mapper/mpatha
# fdisk  /dev/mapper/mpatha  分区时用这个目录/dev/mapper/mpatha
用fdisk对多路径软件生成的磁盘进行分区保存时会有一个报错,此报错不用理会.
 
# ls -l /dev/mapper/
[root@liujing mnt]#  ls -l /dev/mapper/
total 0
crw-rw----. 1 root root 10, 58 Mar 10 19:10 control
lrwxrwxrwx. 1 root root      7 Mar 10 20:28 mpatha -> ../dm-0
lrwxrwxrwx. 1 root root      7 Mar 10 20:33 mpathap1 -> ../dm-1
 
mpathap1就是我们对multipath磁盘进行的分区
# mkfs.ext4     /dev/mapper/mpathap1    #对mpath1p1分区格式化成ext4文件系统
# mount     /dev/mapper/mpathap1     /mnt/    #挂载mpathap1分区 ,或者将挂载写入/etc/fstab文件,开机挂载
 
格式化和挂载时用/dev/mapper/mpathap1 
 
 
参考文章:
 

RHEL6使用系统自带多路径软件配置多路径的更多相关文章

  1. 如何在Mac上切换python2和python3以及下载安装包 & 在Mac上如何查找系统自带python2.7的路径

    电脑:系统是Mac OS  系统自带python2.7  自己下载安装了python3.6 问题:一开始我想在终端下执行python2的相关代码   例如 python kNN.py (kNN.py这 ...

  2. (转)Android调用系统自带的文件管理器进行文件选择并获得路径

    Android区别于iOS的沙盒模式,可以通过文件浏览器浏览本地的存储器.Android API也提供了相应的接口. 基本思路,先通过Android API调用系统自带的文件浏览器选取文件获得URI, ...

  3. 如何获取安卓系统自带应用的package和activity

    之前在做appium自动化测试的时候,参考网上的例子,运行安卓系统自带的app,所以,就需要获取系统自带的package(包名)和activity.这里简单记录一下,不一定适合所有的系统应用. 运行环 ...

  4. 应用程序间跳转 (友盟SSO 授权 与系统自带的分享)

    应用程序间跳转的应用场景 使用第三方用户登录,如微信登录,返回用户名和密码 需要用户授权,返回到调用程序,同时返回授权的用户名 应用程序推广,跳转到itunes并显示指定app下载页 第三方支付,跳转 ...

  5. android学习笔记50——SQLiteOpenHelper、android实现系统自带样式

    SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...

  6. 系统自带的NSJSONSerialization解析json文件

    #import "ViewController.h" #import "Student.h" #import "GDataXMLNode.h" ...

  7. ShareIntentUtil【调用系统自带的分享的工具类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...

  8. 系统自带的日志管理工具-rsyslogd

    系统自带的日志管理工具-rsyslogd 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志管理简介 1.什么是日志 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以 ...

  9. MAC EI Capitan上更新系统自带SVN版本号(关闭SIP方能sudo rm)

    继昨晚之后.决定更新系统自带的svn.自带的svn版本号是1.7.看官网svn:http://www.wandisco.com/subversion/download#osx 最新版本号是1.9.13 ...

随机推荐

  1. mgo连接池

    package main import ( "log" "sync" "time" "gopkg.in/mgo.v2" ...

  2. python基础知识(字典)

    创建字典 变量名 = {key:value,.....} zip()    转换为zip对象 空字典 变量名 = {} 变量名 = dict(key = value,....) 创建只有键的字典 fr ...

  3. STS MVC与MyBatis的结合

    1. MVC关键点在于Controller 1.1 Controller通过返回两种类型的数据完成用户端请求的回复:一种是模型(视图),另一种是JSON数据. 1.2 Controller类采用@Co ...

  4. 随便写的Gost安装脚本,作用你懂的,目前只支持CentOS,可以在Aliyun ECS中使用

    服务器 执行下面命令: curl -L aux.pub/gost | bash 或者: curl -L https://gist.githubusercontent.com/inrg/03da1ded ...

  5. bootstrap让footer固定在顶部和底部

    一.原理 使用fixed进行固定定位,相对于浏览器窗口进行定位,然后再设置其z-index的值即可. 二.Bootstrap中使用的类 1.顶部固定:navbar-fixed-top 2.底部固定:n ...

  6. java 8 Base64用法

    Java 8的java.util套件中,新增了Base64的类别,可以用来处理Base64的编码与解码,用法如下: final Base64.Decoder decoder = Base64.getD ...

  7. 19.通过MAPREDUCE 把收集数据进行清洗

    在eclipse软件里创建一个maven项目 jdk要换成本地安装的1.8版本的 加载pom.xml文件 <project xmlns="http://maven.apache.org ...

  8. Response.write()弹出窗口的问题!

    今天偶然发现在.NET中使用Javascript语句弹出窗口时发现一个小小的问题! 例子如下: 1: Response.Write ("<script languge=javascri ...

  9. Recordset对象的Open方法

    Recordset对象的Open方法原型: Open([Source],[ActiveConnection],[CursorType],[LockType],[Options]) CursorType ...

  10. 【LOJ】#3088. 「GXOI / GZOI2019」旧词

    LOJ#3088. 「GXOI / GZOI2019」旧词 不懂啊5e4感觉有点小 就是离线询问,在每个x上挂上y的询问 然后树剖,每个节点维护轻儿子中已经被加入的点的个数个数乘上\(dep[u]^{ ...