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 ...
随机推荐
- 通过火狐谋智查询API
谋智中文版网址 https://developer.mozilla.org 示例 site: developer.mozilla.org window 通过百度高级用法查API site: 网址 搜索 ...
- pynput模块—键盘鼠标操作和监听
pynput.mouse:包含控制和监控鼠标或者触摸板的类. pynput.keyboard:包含控制和监控键盘的类. 上面提到的子包都已被引入到pynput库中.要使用上面的子包,从pynput中引 ...
- day31 socket套接字编程
为什么要有套接字编程? 在上节课的学习中,我们学习了OSI七层协议,但是如果每次进行编程时我们都需要一层一层的将各种协议使用在我们的程序中,这样编写程序实在是太麻烦了,所以为了让程序的编写更加的简单, ...
- chgrp 命令
NAME chgrp - change group ownership SYNOPSIS chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --ref ...
- Macaca环境搭建(四)----mac系统macaca安装
一.安装Homebrew 命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...
- poj2152 Fire(树形DP)
题目链接:https://vjudge.net/problem/POJ-2152 题意:给定一颗大小为n的树,在每个结点建消防站花费为w[i],如果某结点没有消防站,只要在它距离<=d[i]的结 ...
- shell 如何避免误删目录
1.变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file 这种情况下如果 cmd 执行 ...
- 啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建
一.新增一个普通用户bigdata
- PAT B1002 写出这个数(20)
AC代码 #include <cstdio> #include <iostream> #include <cstring> using namespace std; ...
- MGR复制
CentOS7 配置如下 5.7.22 Group ReplicationMySQL5.7.22安装略 在三台db服务器上面设置/etc/hosts映射,如下:192.168.1.101 mydb ...