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. ProbCog[github]使用心得

    1. After installing ProbCog,you can run blnquery and mlnquery. If the terminal warns that 'command n ...

  2. linux 自定义函数

    用别人的车子出行,总感觉别扭,那怎么自定义自己的车轮子呢? 通过上面的求两个参数的和例子,我们可以学到定义一个函数基本的步骤, function getSum(){  SUM=$[$n1+$n2]  ...

  3. mybatis 基于xml 配置的映射器

    cache  给命名空间的缓存配置 cache-ref 其他命名空间缓存配置的引用 resultMap 描述如何从数据库结果集中来加载对象 <!--column不做限制,可以为任意表的字段,而p ...

  4. realpython教程之机器学习之Windows下的环境配置

    不得不说,realPython的教程确实写的仔细,准确,有逻辑.果然高质量的学习材料还是更利于学的. 反观我们学校,似乎就有些急功近利了.连Python语言基础都没学,就直接讲深度学习.完全不符合学习 ...

  5. 【VS开发】使用CTabView分割多页卡窗口

    一般书中介绍的是使用CSplitterWnd来拆分窗口实现多视图,CSplitterWnd中的CreateClient可以保存其创建的pCreateContext指针,以便子视图共享Document. ...

  6. prometheus 监控 jar应用服务 + 修改监听IP和端口

    1.修改服务的启动脚本 [root@do1cloud01 init.d]# vim learn-school nohup ${JAVA_HOME}/bin/java -javaagent:/usr/l ...

  7. [转帖]InfluxDB 1.2.0安装及新旧版本的注意事项

    InfluxDB 1.2.0安装及新旧版本的注意事项 http://haibing.org/245?zwlqby=npztq3 挺好的文章 很好的解决了 上一个文档里面 关于 web admin 的问 ...

  8. SqlException 服务器主体无法在当前安全上下文下访问数据库

    遇到一个错误如下 System.Data.SqlClient.SqlException  HResult=0x80131904  Message=服务器主体 "用户名" 无法在当前 ...

  9. Base64encoder干什么用的

    https://baike.baidu.com/item/base64/8545775?fr=aladdin BASE64加密算法.用来给字符串加密的.已经不安全了. 一直以来Base64的加密解密都 ...

  10. 第十三章 字符串 (四)之Scanner类

    一.Scanner简述 Scanner扫描器类本质上是由正则表达式实现的,可以接受任何能产生数据的数据源对象,默认以空白符进行分词(包括\n等),使用各种next方法进行扫描匹配,获取匹配的数据. 二 ...