RHEL6.5安装multipath多路径软件

时间:2022-10-07 12:05:50

一、划zone(以博科光纤交换机为例)

①查看光纤交换机端口状态

RAC_SW_01:admin> switchshow
Index Port Address Media Speed State Proto
==================================================
id N8 Online FC F-Port :::::::xx
id N8 Online FC F-Port ::::c9:::xx
id N8 Online FC F-Port ::::c9:::xx
id N8 No_Light FC
id N8 Online FC F-Port :::::::xx
id N8 No_Light FC
id N8 No_Light FC
id N8 No_Light FC
id N8 No_Light FC

②对光纤交换机0、1、2、4号端口创建别名

alicreate "vnx5200_spa1","1,0"
alicreate "node02_1","1,2"
alicreate "node01_1","1,1"
alicreate "vnx5200_spa1","1,4"
alishow可以查看对应端口的别名

③创建zone并绑定对应端口

zonecreate "vnx5200_spa1_node01_1","vnx5200_spa1; node01_1"
zonecreate "vnx5200_spb1_node01_1","vnx5200_spb1; node01_1"
zonecreate "vnx5200_spa1_node02_1","vnx5200_spa1; node02_1"
zonecreate "vnx5200_spb1_node02_1","vnx5200_spb1; node02_1"

④创建配置文件

cfgcreate "sw01_cfg","vnx5200_spa1_node01_1;vnx5200_spb1_node01_1;vnx5200_spa1_node02_1;vnx5200_spb1_node02_1"

如果是在现有的cfg配置文件中添加zone使用如下cfgadd "cfg_file", "zone_name"

cfgadd "sw01_cfg","vnx5200_spa1_node01_1;vnx5200_spb1_node01_1;vnx5200_spa1_node02_1;vnx5200_spb1_node02_1"

⑤保存配置文件

cfgsave

⑥使配置文件生效(每台交换机当前只能一个配置文件生效)

cfgenable "sw01_cfg"

到这一步光纤交换机配置全部完成,另外一台执行相同操作即可。

二、在SAN存储划分好LUN,设置好对应的HostGroup做好映射关系,不同的厂商有不同的做法,大同小异

三、主机上的相关操作

①查看映射的LUN信息

以RHEL6.5为例,默认做好上面两步之后,可以使用fdisk -l或者cat /proc/partitions可以看到未做聚合前的物理盘(scisi盘一般以/dev/sd*显示),一个LUN有多条路径。

安装配置多路径软件后才能看到聚合盘(聚合后的盘在/dev/mapper/$name目录下),不同厂商的多路径软件显示的聚合盘名称不一样。

扩展:如果直接对未做多路径的物理盘做分区使用,会导致多条路径不能负载均衡且只有一块盘可以读写,所以都是对安装多路径软件后的聚合盘做分区来使用的。

RHEL6.5 multipath多路径显示如下:

EMC powerpath多路径显示如下:

②扫盘、安装multipath多路径软件及配置文件

在不重启主机的情况下扫盘

[root@yspay-node01 ~]# rpm -qa|grep sg3*
[root@yspay-node01 ~]# rpm -qa|grep sg3_utils
sg3_utils-1.28-12.el6.x86_64
sg3_utils-libs-1.28-12.el6.x86_64
[root@yspay-node01 ~]# rescan-scsi-bus.sh

安装multipath多路径软件
yum install device-mapper*

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

[root@yspay-node02 ~]# multipath -v2
Sep 08 18:06:34 | /etc/multipath.conf does not exist, blacklisting all devices.
Sep 08 18:06:34 | A sample multipath.conf file is located at
Sep 08 18:06:34 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Sep 08 18:06:34 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
Sep 08 18:06:34 | 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

# chkconfig --level 2345 multipathd on
# multipath –v2

[root@yspay-node02 ~]# multipath -v2
Sep 08 18:06:34 | /etc/multipath.conf does not exist, blacklisting all devices.
Sep 08 18:06:34 | A sample multipath.conf file is located at
Sep 08 18:06:34 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Sep 08 18:06:34 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
需要配置/etc/multipath.conf,可以从/usr/share/doc/拷贝,参照如下配置:

# multipath.conf written by anaconda
defaults {
        user_friendly_names yes
}
blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
        devnode "^dcssblk[0-9]*"
        wwid "*" # 此处开启表示设置所有设备都不使用多路径软件管理
}
blacklist_exceptions {
        # 排除blacklist以外需要使用多路径软件管理的设备,映射到主机的LUN,可以使用multipath -v3查看wwid
        wwid "360060160e2b042007a5ba6d44bece711"
        wwid "360060160e2b042000bd016064cece711"
        wwid "360060160e2b04200176ad7954cece711"
}
multipaths {
        multipath {
                 wwid 360060160e2b042007a5ba6d44bece711
          alias vnx5200_gi01_lun00 # 设置别名,命令multipath -ll看到的聚合盘显示的名字
        }
        multipath {
                 wwid 360060160e2b04200d0990bea4bece711
          alias vnx5200_gi01_lun01
     } 
}

四、针对重启之后磁盘标识符改变的解决办法(udev磁盘设备绑定)

1、在multipath.conf中设置alias别名绑定wwid
2、在/etc/udev/rule.d/中配置

五、针对大于2TB的GPT分区

1、首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdd:
[root@10.10.90.97 ~]# parted /dev/hdd
GNU Parted 1.8.1
Using /dev/hdd
Welcome to GNU Parted! Type 'help' to view a list of commands.

2、选择了/dev/hdd作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):
(parted) mklabel
Warning: The existing disk label on /dev/hdd will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No?(警告用户磁盘上的数据将会被销毁,询问是否继续,我们这里是新的磁盘,输入yes后回车) yes
New disk label type? [msdos]? (默认为msdos形式的分区,我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)gpt

3、创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置
(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? ext3
Start? 0
End? 500GB
如果全部使用End输入(100%或-1)

4、分好区后可以使用print命令打印分区信息,下面是一个print的样例
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1

5、如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果
(parted)rm 1 #rm后面使用分区的号码
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags

6、按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例
(parted) mkpart
Partition name? []? dp1
File system type? [ext2]? ext3
Start? 0
End? 500GB
(parted) mkpart
Partition name? []? dp2
File system type? [ext2]? ext3
Start? 500GB
End? 2199GB
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB dp1
2 500GB 2199GB 1699GB dp2

7、由于parted内建的mkfs还不够完善,所以完成以后我们可以使用quit命令退出parted并使用 系统的mkfs命令对分区进行格式化了,此时如果使用fdisk -l命令打印分区表会出现警告信息,这是正常的
[root@10.10.90.97 ~]# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/hdd'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/hdd: 2199.0 GB, 2199022206976 bytes
255 heads, 63 sectors/track, 267349 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdd1 1 267350 2147482623+ ee EFI GPT

[root@10.10.90.97 ~]# mkfs.ext3 /dev/hdd1
[root@10.10.90.97 ~]# mkfs.ext3 /dev/hdd2
[root@10.10.90.97 ~]# mkdir /dp1 /dp2
[root@10.10.90.97 ~]# mount /dev/hdd1 /dp1
[root@10.10.90.97 ~]# mount /dev/hdd2 /dp2