可以通过2种方式查看HBA的WWN信息:

1. 查看sys文件系统

查看HBA卡型号:
[root@localhost ~]# lspci  | grep -i fibre
13:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
13:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
查看HBA卡WWN信息:
[root@localhost ~]# ls -l /sys/class/fc_host/
total
drwxr-xr-x root root Jun : host3
drwxr-xr-x root root Jun : host4
[root@localhost ~]# cat /sys/class/fc_host/host3/port_name
0x21000024ff462814

2. 采用systool

systool所在软件包:

yum -y install sysfsutils

systool -c fc_host -v
-c <class_name> / -b <bus_name> / -m <module_name>
[root@localhost ~]# systool -v -c fc_host
Class = "fc_host"
Class Device = "host3"
Class Device path = "/sys/class/fc_host/host3"
fabric_name = "0x1000000533746b8f"
issue_lip = <store method only>
node_name = "0x20000024ff462814"
port_id = "0x011300"
port_name = "0x21000024ff462814"
port_state = "Online"
port_type = "NPort (fabric via point-to-point)"
speed = "8 Gbit"
supported_classes = "Class 3"
supported_speeds = "1 Gbit, 2 Gbit, 4 Gbit, 8 Gbit"
symbolic_name = "QLE2562 FW:v5.03.16 DVR:v8.03.07.03.05.07-k"
system_hostname = ""
tgtid_bind_type = "wwpn (World Wide Port Name)"
uevent = <store method only>
Device = "host3"
Device path = "/sys/devices/pci0000:00/0000:00:07.0/0000:13:00.0/host3"
ct =
edc = <store method only>
els =
fw_dump =
nvram = "ISP "
optrom_ctl = <store method only>
optrom =
reset = <store method only>
sfp = ""
uevent = <store method only>
vpd = "‚(" Class Device = "host4"
Class Device path = "/sys/class/fc_host/host4"
fabric_name = "0x10000005337638b9"
issue_lip = <store method only>
node_name = "0x20000024ff462815"
port_id = "0x021300"
port_name = "0x21000024ff462815"
port_state = "Online"
port_type = "NPort (fabric via point-to-point)"
speed = "8 Gbit"
supported_classes = "Class 3"
supported_speeds = "1 Gbit, 2 Gbit, 4 Gbit, 8 Gbit"
symbolic_name = "QLE2562 FW:v5.03.16 DVR:v8.03.07.03.05.07-k"
system_hostname = ""
tgtid_bind_type = "wwpn (World Wide Port Name)"
uevent = <store method only>
Device = "host4"
Device path = "/sys/devices/pci0000:00/0000:00:07.0/0000:13:00.1/host4"
ct =
edc = <store method only>
els =
fw_dump =
nvram = "ISP "
optrom_ctl = <store method only>
optrom =
reset = <store method only>
sfp = ""
uevent = <store method only>
vpd = "‚("

Multipath相关软件介绍

1. device-mapper-multipath

  即multipath-tools,主要提供multipathd和multipath等工具和 multipath.conf等配置文件。这些工具通过device mapper的ioctr的接口创建和配置multipath,设备创建的多路径设备映射会在/dev /mapper中。

2. device-mapper

  主要包括两大部分:内核部分和用户部分。内核部分主要由device mapper核心(dm.ko)和一些target driver(md-multipath.ko)。核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些divece的属性等。linux device mapper的用户空间部分主要包括device-mapper这个包。其中包括dmsetup工具和一些帮助创建和配置mappered device的库。这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。multipath-tool的程序中就需要调用这些库

3. dm-multipath.ko和dm.ko:dm.ko是device mapper驱动。它是实现multipath的基础。dm-multipath其实是dm的一个target驱动。

https://www.cnblogs.com/jianqiang2010/archive/2011/09/01/2162574.html

AIX

http://blog.163.com/herod_xiao/blog/static/871883992011819112227689/

1. 检查multipath模块,如果没有相关模块就说明没有安装相关软件包

lsmod | grep dm_multipath

yum -y install device-mapper device-mapper-multipath

2. 加载相关模块

modprobe dm-multipath

modprobe dm-round-robin

3. 生成multipath配置文件,并配置

/sbin/mpathconf --enable

配置multipath.conf文件

4. 启动multipath服务

service multipathd start

chkcofig multipathd on

[root@tyhr ~]# multipath -ll
mpathc (36005076801820709e000000000000087) dm- IBM,
size=300G features='1 queue_if_no_path' hwhandler='' wp=rw
`-+- policy='round-robin 0' prio= status=active
|- ::: sdc : active ready running
|- ::: sde : active ready running
|- ::: sdg : active ready running
`- ::: sdi : active ready running
mpathb (36005076801820709e000000000000086) dm- IBM,
size=100G features='1 queue_if_no_path' hwhandler='' wp=rw
`-+- policy='round-robin 0' prio= status=active
|- ::: sdb : active ready running
|- ::: sdd : active ready running
|- ::: sdf : active ready running
`- ::: sdh : active ready running

如果完成配置后,不能使用multipath -ll查看到任何多路径信息,就需要手工重新扫描HBA信息

一般新增LUN映射给主机后,系统无法直接更新挂载的存储盘,需要重新扫描。

# cd /sys/class/scsi_host/host4/
# echo '- - - ' > scan

echo "" > /sys/class/fc_host/host/issue_lip //某些存储或系统没有scan文件,可以通issue_lip文件识别

RHEL5.x 操作系统,新增multipath后,能够识别磁盘,但是通过fdisk分区后,不能显示分区信息(/dev/mapper/dm-app 磁盘不显示/dev/mapper/dm-appp1)。partprob无报错但是没有效果。fdisk w保存后有报错:

WARNING: Re-reading the partition table failed with error 22: Invalid argument.

Run "kpartx -a" after FDISK is completed to add all partition mappings on the
newly-created multipath device [root@TYEDI1 host4]# ls -l /dev/mapper/dm-*
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db [root@TYEDI1 host4]# kpartx -a /dev/mapper/dm-app [root@TYEDI1 host4]# ls -l /dev/mapper/dm-*
brw-rw---- 1 root disk 253, 0 Jan 21 22:59 /dev/mapper/dm-app
brw-rw---- 1 root disk 253, 3 Jan 21 23:01 /dev/mapper/dm-app1
brw-rw---- 1 root disk 253, 2 Jan 21 22:35 /dev/mapper/dm-arch
brw-rw---- 1 root disk 253, 1 Jan 21 22:52 /dev/mapper/dm-db

  

其他配置:

1. udev绑定权限

RHEL6.5,对于multipath的权限,手工去修改几秒后会变回root。所以需要使用udev去绑定好权限。

1)搜索对应的配置文件模板:
[root@jyrac1 ~]# find / -name -*
/usr/share/doc/device-mapper-1.02./-dm-permissions.rules\
2)根据模板新增12-dm-permissions.rules文件在/etc/udev/rules.d/下面:
vi /etc/udev/rules.d/-dm-permissions.rules
# MULTIPATH DEVICES
#
# Set permissions for all multipath devices
ENV{DM_UUID}=="mpath-?*", OWNER:="grid", GROUP:="asmadmin", MODE:="" # Set permissions for first two partitions created on a multipath device (and detected by kpartx)
# ENV{DM_UUID}=="part[1-2]-mpath-?*", OWNER:="root", GROUP:="root", MODE:=""
3)查看多路径对应的底层dm设备:
[root@jyrac2 rules.d]# ls -lh /dev/dm*
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- root disk , Jul : /dev/dm- 4)启动start_udev
[root@jyrac2 rules.d]# start_udev
Starting udev: [ OK ] 5)查看权限:
[root@jyrac2 rules.d]# ls -lh /dev/dm*
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- grid asmadmin , Jul : /dev/dm-
brw-rw---- grid asmadmin , Jul : /dev/dm- 6)等30s后再查,权限固定:
[root@jyrac2 rules.d]# ls -lh /dev/dm*
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- root disk , Jul : /dev/dm-
brw-rw---- grid asmadmin , Jul : /dev/dm-
brw-rw---- grid asmadmin , Jul : /dev/dm-

可以使用lsscsi查看识别的磁盘信息:

[root@tyhr ~]#  lsscsi
[:::] cd/dvd TSSTcorp DVD-ROM TS-L333H ID03 /dev/sr0
[:::] cd/dvd IMM Virtual CD/DVD /dev/sr1
[:::] disk IBM-ESXS MBF2300RC SB27 -
[:::] disk IBM-ESXS MBF2300RC SB27 -
[:::] disk LSILOGIC Logical Volume /dev/sda
[:::] disk IBM /dev/sdb
[:::] disk IBM /dev/sdc
[:::] disk IBM /dev/sdd
[:::] disk IBM /dev/sde
[:::] disk IBM /dev/sdf
[:::] disk IBM /dev/sdg
[:::] disk IBM /dev/sdh
[:::] disk IBM /dev/sdi

1. multipath常用操作:

multipath -r (修改multipath.conf配置文件之后重新加载)
multipath -ll (查看多路径状态)
multipath -v2 (格式化路径,检测路径,合并路径)
multipath -v3 (查看多路径详情blacklist、whitelist和设备wwid)
multipath -F (删除现有链路)

2. multipath文件详细介绍

接下来的工作就是要编辑/etc/multipath.conf的配置文件

multipath.conf主要包括blacklist、multipaths、devices三部份的配置
blacklist配置
blacklist {
  devnode "^sda"
}
Multipaths部分配置multipaths和devices两部份的配置。
multipaths {
  multipath {
    wwid ****************       #此值multipath -v3可以看到
    alias iscsi-dm0         #映射后的别名,可以随便取
    path_grouping_policy multibus   #路径组策略
    path_checker tur         #决定路径状态的方法
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法
  }
}
Devices部分配置
devices {
  device {
    vendor "iSCSI-Enterprise"           #厂商名称
    product "Virtual disk"             #产品型号
    path_grouping_policy multibus         #默认的路径组策略
    getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序
    prio_callout      "/sbin/acs_prio_alua %d"      #获取有限级数值使用的默认程序
    path_checker readsector0           #决定路径状态的方法
    path_selector "round-robin 0"   #选择那条路径进行下一个IO操作的方法
    failback        immediate     #故障恢复的模式
      no_path_retry      queue     #在disable queue之前系统尝试使用失效路径的次数的数值
      rr_min_io       100       #在当前的用户组中,在切换到另外一条路径之前的IO请求的数目
  }
}

相关参数的标准文档的介绍:

Attribute

Description

wwid

Specifies the WWID of the multipath device to which the multipath attributes apply. This parameter is mandatory for this section of themultipath.conf file.

alias

Specifies the symbolic name for the multipath device to which themultipath attributes apply. If you are using user_friendly_names, do not set this value tompathn; this may conflict with an automatically assigned user friendly name and give you incorrect device node names.

path_grouping_policy

Specifies the default path grouping policy to apply to unspecified multipaths. Possible values include:

failover = 1 path per priority group

multibus = all valid paths in 1 priority group

group_by_serial = 1 priority group per detected serial number

group_by_prio = 1 priority group per path priority value

group_by_node_name = 1 priority group per target node name

path_selector

Specifies the default algorithm to use in determining what path to use for the next I/O operation. Possible values include:

round-robin 0: Loop through every path in the path group, sending the same amount of I/O to each.

queue-length 0: Send the next bunch of I/O down the path with the least number of outstanding I/O requests.

service-time 0: Send the next bunch of I/O down the path with the shortest estimated service time, which is determined by dividing the total size of the outstanding I/O to each path by its relative throughput.

failback

Manages path group failback.

A value of immediate specifies immediate failback to the highest priority path group that contains active paths.

A value of manual specifies that there should not be immediate failback but that failback can happen only with operator intervention.

A value of followover specifies that automatic failback should be performed when the first path of a path group becomes active. This keeps a node from automatically failing back when another node requested the failover.

A numeric value greater than zero specifies deferred failback, expressed in seconds.

prio

Specifies the default function to call to obtain a path priority value. For example, the ALUA bits in SPC-3 provide an exploitableprio value. Possible values include:

const: Set a priority of 1 to all paths.

emc: Generate the path priority for EMC arrays.

alua: Generate the path priority based on the SCSI-3 ALUA settings.

tpg_pref: Generate the path priority based on the SCSI-3 ALUA settings, using the preferred port bit.

ontap: Generate the path priority for NetApp arrays.

rdac: Generate the path priority for LSI/Engenio RDAC controller.

hp_sw: Generate the path priority for Compaq/HP controller in active/standby mode.

hds: Generate the path priority for Hitachi HDS Modular storage arrays.

no_path_retry

A numeric value for this attribute specifies the number of times the system should attempt to use a failed path before disabling queueing.

A value of fail indicates immediate failure, without queueing.

A value of queue indicates that queueing should not stop until the path is fixed.

rr_min_io

Specifies the number of I/O requests to route to a path before switching to the next path in the current path group. This setting is only for systems running kernels older that 2.6.31. Newer systems should userr_min_io_rq. The default value is 1000.

rr_min_io_rq

Specifies the number of I/O requests to route to a path before switching to the next path in the current path group, using request-based device-mapper-multipath. This setting should be used on systems running current kernels. On systems running kernels older than 2.6.31, use rr_min_io. The default value is 1.

rr_weight

If set to priorities, then instead of sending rr_min_io requests to a path before callingpath_selector to choose the next path, the number of requests to send is determined byrr_min_io times the path's priority, as determined by the prio function. If set touniform, all path weights are equal.

flush_on_last_del

If set to yes, then multipath will disable queueing when the last path to a device has been deleted.

multipath与oracle ASM结合

https://www.cnblogs.com/jyzhao/p/7208620.html

已有配置文件:

defaults {
polling_interval
failback immediate
no_path_retry
rr_min_io
path_checker tur
user_friendly_names yes
}
devnode_blacklist {
devnode "sda"
}
devices {
device {
vendor "IBM"
product ""
path_grouping_policy group_by_prio
prio_callout "/sbin/mpath_prio_alua /dev/%n"
}
device {
vendor "IBM"
product ""
path_grouping_policy group_by_prio
prio_callout "/sbin/mpath_prio_alua /dev/%n"
}
device {
vendor "IBM"
product ""
path_grouping_policy group_by_serial
}
device {
vendor "IBM"
product ""
path_grouping_policy group_by_serial
}
}
multipaths {
multipath {
wwid 36005076801820709e000000000000043
alias dm-vote01
}
}

CentOS配置multipath的更多相关文章

  1. Linux CentOS 配置Tomcat环境

    一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...

  2. CentOS 配置防火墙操作实例(启、停、开、闭端口):

    CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service   iptables status< ...

  3. CentOS配置SSH免密码登录后,仍提示输入密码

    CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到认证文件,更改权限 测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默 ...

  4. CentOS配置ssh无密码登录

      CentOS配置ssh无密码登录的注意点   前提配置:使用root登录修改配置文件:/etc/ssh/sshd_config,将其中三行的注释去掉,如下: 然后重启ssh服务:service s ...

  5. 在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware

    在VMware中为CentOS配置静态ip并可访问网络-Windows下的VMware 首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命 ...

  6. CentOS 配置防火墙操作实例(启、停、开、闭端口)CentOS Linux-FTP/对外开放端口(接口)TomCat相关

    链接地址:http://blog.csdn.net/jemlee2002/article/details/7042991 CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作 ...

  7. Linux工具XFTP、Xshell(centos配置java环境 工具篇 总结一)

    ♣Xmanager5是什么? ♣安装XFTP ♣安装Xshell 1.Xmanager5(官网:https://www.netsarang.com/download/software.html)是全新 ...

  8. Linux配置mysql (centos配置java环境 mysql配置篇 总结四)

    ♣安装的几种方法和比较 ♣配置yum源 ♣安装mysql ♣启动mysql ♣修改密码 ♣导入.sql文件 ♣缓存设置 ♣允许远程登录(navicat) ♣配置编码为utf8  1.关于Linux系统 ...

  9. Linux配置tomcat (centos配置java环境 tomcat配置篇 总结三)

    ♣下载安装tomcat7 ♣设置启动和关闭 ♣设置用户名和密码 ♣发布java web项目 声明:这篇教程是建立在前两篇教程的基础上的,所以,还没安装工具和jdk,可以先看这个系列的前面两篇(去到文末 ...

随机推荐

  1. mongodb锁

    锁住写操作 > db.fsyncLock(); { "info" : "now locked against writes, use db.fsyncUnlock( ...

  2. 进阶篇:4.3)DFA设计指南:宽松公差及人性装配及其他

    本章目的:设计需要为装配考虑,给他们提供各种优待,装配才能做出好产品. 1.前言 机械贴合现实而软件远离现实. 越是学习机械设计的原则,越是感觉他们和一些做人做事的道理相同的. 如,机械设计原则都是有 ...

  3. 用js制作简易计算器及猜随机数字游戏

    <!doctype html><html><head> <meta charset="utf-8"> <title>JS ...

  4. Android各版本及API对应关系,持续更新!

    以下是Android的各个版本与API的对应关系图标,便于查阅,会持续更新 API等级 Android版本号 Android版本名称 对应支持包 API等级1: Android 1.0     API ...

  5. mac下抓包工具charles

    图片没带过来,想看截图的可以直接点击有道云笔记的链接: http://note.youdao.com/share/?id=f5c7369a0c1e1e37cdcd08a04d33be7e 1.下载 h ...

  6. linux命令-寻找超过100M的文件,并将其删除

    find / -type f -size +100M | xargs rm -rf 其中第一个/表示路径,此时表示的是根目录,也就是搜索全部的文件 -type表示类型 f表示是文件 -size 表示大 ...

  7. str_split 分隔中文出现乱码 替代函数

    function mbstringtoarray($str,$charset) { $strlen=mb_strlen($str); while($strlen){ $array[]=mb_subst ...

  8. python-tornado-hello,world

    #!/usr/bin/python import tornado.httpserver import tornado.ioloop import tornado.options import torn ...

  9. python-生产者消费者模式

    #!/usr/bin/python #coding=utf-8 import threading,time lock=threading.Condition() product=0 class Mak ...

  10. JavaScript 缓动效果

    Math.easeout = function (A, B, rate, callback) { if (A == B || typeof A != 'number') { return; } B = ...