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
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
参考文章:
- 如何在Mac上切换python2和python3以及下载安装包 & 在Mac上如何查找系统自带python2.7的路径
电脑:系统是Mac OS 系统自带python2.7 自己下载安装了python3.6 问题:一开始我想在终端下执行python2的相关代码 例如 python kNN.py (kNN.py这 ...
- (转)Android调用系统自带的文件管理器进行文件选择并获得路径
Android区别于iOS的沙盒模式,可以通过文件浏览器浏览本地的存储器.Android API也提供了相应的接口. 基本思路,先通过Android API调用系统自带的文件浏览器选取文件获得URI, ...
- 如何获取安卓系统自带应用的package和activity
之前在做appium自动化测试的时候,参考网上的例子,运行安卓系统自带的app,所以,就需要获取系统自带的package(包名)和activity.这里简单记录一下,不一定适合所有的系统应用. 运行环 ...
- 应用程序间跳转 (友盟SSO 授权 与系统自带的分享)
应用程序间跳转的应用场景 使用第三方用户登录,如微信登录,返回用户名和密码 需要用户授权,返回到调用程序,同时返回授权的用户名 应用程序推广,跳转到itunes并显示指定app下载页 第三方支付,跳转 ...
- android学习笔记50——SQLiteOpenHelper、android实现系统自带样式
SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...
- 系统自带的NSJSONSerialization解析json文件
#import "ViewController.h" #import "Student.h" #import "GDataXMLNode.h" ...
- ShareIntentUtil【调用系统自带的分享的工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据参考资料的文章,整理了调用系统自带分享的工具类(实现了适配7.0FileProvider的功能),需要搭配<Android ...
- 系统自带的日志管理工具-rsyslogd
系统自带的日志管理工具-rsyslogd 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志管理简介 1.什么是日志 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以 ...
- MAC EI Capitan上更新系统自带SVN版本号(关闭SIP方能sudo rm)
继昨晚之后.决定更新系统自带的svn.自带的svn版本号是1.7.看官网svn:http://www.wandisco.com/subversion/download#osx 最新版本号是1.9.13 ...
随机推荐
- mgo连接池
package main import ( "log" "sync" "time" "gopkg.in/mgo.v2" ...
- python基础知识(字典)
创建字典 变量名 = {key:value,.....} zip() 转换为zip对象 空字典 变量名 = {} 变量名 = dict(key = value,....) 创建只有键的字典 fr ...
- STS MVC与MyBatis的结合
1. MVC关键点在于Controller 1.1 Controller通过返回两种类型的数据完成用户端请求的回复:一种是模型(视图),另一种是JSON数据. 1.2 Controller类采用@Co ...
- 随便写的Gost安装脚本,作用你懂的,目前只支持CentOS,可以在Aliyun ECS中使用
服务器 执行下面命令: curl -L aux.pub/gost | bash 或者: curl -L https://gist.githubusercontent.com/inrg/03da1ded ...
- bootstrap让footer固定在顶部和底部
一.原理 使用fixed进行固定定位,相对于浏览器窗口进行定位,然后再设置其z-index的值即可. 二.Bootstrap中使用的类 1.顶部固定:navbar-fixed-top 2.底部固定:n ...
- java 8 Base64用法
Java 8的java.util套件中,新增了Base64的类别,可以用来处理Base64的编码与解码,用法如下: final Base64.Decoder decoder = Base64.getD ...
- 19.通过MAPREDUCE 把收集数据进行清洗
在eclipse软件里创建一个maven项目 jdk要换成本地安装的1.8版本的 加载pom.xml文件 <project xmlns="http://maven.apache.org ...
- Response.write()弹出窗口的问题!
今天偶然发现在.NET中使用Javascript语句弹出窗口时发现一个小小的问题! 例子如下: 1: Response.Write ("<script languge=javascri ...
- Recordset对象的Open方法
Recordset对象的Open方法原型: Open([Source],[ActiveConnection],[CursorType],[LockType],[Options]) CursorType ...
- 【LOJ】#3088. 「GXOI / GZOI2019」旧词
LOJ#3088. 「GXOI / GZOI2019」旧词 不懂啊5e4感觉有点小 就是离线询问,在每个x上挂上y的询问 然后树剖,每个节点维护轻儿子中已经被加入的点的个数个数乘上\(dep[u]^{ ...