FCSAN存储与服务器关联映射后在服务器端如何识别操作
一、首次映射fcsan存储的Linux系统,在系统层面的操作如下:
1.检查一下是否安装multipath软件。如果没有安装,则需要安装一下。并设为开机自启动。
rpm -qa | grep device-mapper-multipath
2.设置开机自动启动
chkconfig multipathd on
在centos7. x中,用# systemctl enable multipathd.service设置自动启动。
3.配置multipath软件
重要说明:
有些机器在其内部磁盘中含有本地SCSI卡。不建议在这些设备中使用DM-Multipath。另外,尽管可以使用devnode设置将/dev/sda等磁盘设备列入黑名单,但不能确保重启后/dev/sda仍是同一个名称,可以使用对应设备的WWID并将其列入黑名单;特别地,当设备中还有多个需要忽略的磁盘设备时,也要将其加入黑名单中。
其他特殊情况:例如某些虚拟机环境中,不能使用章节5.3.1中的命令查询到磁盘的WWID,此时设置时可使用明确的设备名称,如:
blacklist {
devnode “^sda$”
}
查看设备的WWID
- CentOS 5.X及之前版本使用如下脚本命令。
for i in `cat /proc/partitions | awk {'print $4'} | grep sd`
do
echo "Device: $i WWID: `scsi_id -g -u -s /block/$i`"
done | sort -k4
- CentOS 6.X版本使用如下脚本命令。
for i in `cat /proc/partitions | awk {'print $4'} | grep sd`
do
echo "Device: $i WWID: `scsi_id --page=0x83 --whitelisted --device=/dev/$i`"
done | sort -k4
Device: sda1 WWID:
Device: sda2 WWID:
Device: sda WWID: 35000cca018616204
Device: sdb WWID: 3600b3426fb82c96d983ddfc59d0000d8
Device: sdd WWID: 3600b3426fb82c96d983ddfc59d0000d8
Device: sdc WWID: 3600b3426fb82c96d983ddfc59d0000d8
Device: sde WWID: 3600b3426fb82c96d983ddfc59d0000d8
- CentOS 7.X版本使用如下脚本命令。
for i in `cat /proc/partitions | awk {'print $4'} | grep sd`
do
echo "Device: $i WWID: `/usr/lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/$i`"
done | sort -k4
Device: sda1 WWID: 35000c500109123e2
Device: sda2 WWID: 35000c500109123e2
Device: sda3 WWID: 35000c500109123e2
Device: sda4 WWID: 35000c500109123e2
Device: sda5 WWID: 35000c500109123e2
Device: sda WWID: 35000c500109123e2
Device: sdb WWID: 3600b342f3e3143ddf652df219d0000d0
Device: sdc WWID: 3600b342f3e3143ddf652df219d0000d0
!注意
如果无法通过该脚本获取设备的WWID号,请根据OS缺省的multipath.conf.defaults(可以通过# find / -name "multipath.conf*"命令搜索)文件中getuid_callout参数部分修改,如multipath.conf.defaults文件中getuid_callout参数为: scsi_id --page=0x83 --whitelisted --device=/dev/%n ,则查询命令中对应字段需修改为:echo “Device:
i
W
W
I
D
:
‘
s
c
s
i
i
d
−
−
p
a
g
e
=
0
x
83
−
−
w
h
i
t
e
l
i
s
t
e
d
−
−
d
e
v
i
c
e
=
/
d
e
v
/
i WWID: `scsi_id --page=0x83 --whitelisted --device=/dev/
iWWID:‘scsiid−−page=0x83−−whitelisted−−device=/dev/i`”
确认需要映射的磁盘
Device: sda WWID: 35000cca018616204
Device: sdb WWID: 3600b3426fb82c96d983ddfc59d0000d8
Device: sdd WWID: 3600b3426fb82c96d983ddfc59d0000d8
Device: sdc WWID: 3600b3426fb82c96d983ddfc59d0000d8
Device: sde WWID: 3600b3426fb82c96d983ddfc59d0000d8
i说明
1.正确使用章节5.3.1中的命令查询,并有对应的输出结果。
2.判断新增磁盘及黑名单磁盘(通常是本地磁盘及第三方磁盘),以上文中输出的结果为例,35000cca018616204为本地磁盘,需要放在黑名单中;sdb、sdc、sdd及sde具有相同的WWID,为同一个多路径设备的子设备,其WWID为3600b3426fb82c96d983ddfc59d0000d8。
4.配置多路径配置文件
a. CentOS5.X系统中配置如下:
vi/etc/multipath.conf
blacklist {
wwid 35000c5005e7b271b
#devnode "^sda$"
}
defaults {
user_friendly_names yes
checker_timeout 120
polling_interval 10
}
devices {
device {
vendor "MacroSAN"
product "LU"
path_grouping_policy group_by_prio
path_selector "round-robin 0"
path_checker tur
no_path_retry 30
prio_callout "/sbin/mpath_prio_alua /dev/%n"
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
hardware_handler "0"
failback 15
}
}
multipaths {
multipath {
wwid 36001405bedd576bd6b39dfee8d0000d8
alias mpatha
}
multipath {
wwid 3600b3426fb82c96d983ddfc59d0000d8
alias mpathb
}
#如有多个多路径设备,可以逐一添加 multipath { },注意{前存在空格。
}
b. CentOS6.X系统中配置如下:
vi/etc/multipath.conf
blacklist {
wwid 35000c5005e7b226b
#devnode "^sda$"
}
defaults {
user_friendly_names yes
polling_interval 10
queue_without_daemon no
flush_on_last_del yes
checker_timeout 120
}
devices {
device {
vendor “MacroSAN”
product “LU”
path_grouping_policy group_by_prio
no_path_retry 30
prio alua
getuid_callout “/lib/udev/scsi_id --whitelisted --device=/dev/%n”
path_checker tur
path_selector “round-robin 0”
hardware_handler “0”
failback 15
}
}
multipaths {
multipath {
wwid 3600b342095668d2d9132d970ad0000dd
alias mpatha
}
multipath {
wwid 3600b3426fb82c96d983ddfc59d0000d8
alias mpathb
}
#如有多个多路径设备,可以逐一添加 multipath { },注意{前存在空格。
}
c. CentOS7.X系统中配置如下:
vi/etc/multipath.conf
blacklist {
wwid 35000c5005e7abebf
#devnode "^sda$"
}
defaults {
user_friendly_names yes
polling_interval 10
queue_without_daemon no
flush_on_last_del yes
checker_timeout 120
}
devices {
device {
vendor “MacroSAN”
product “LU”
path_grouping_policy group_by_prio
no_path_retry 30
prio alua
path_checker tur
path_selector “round-robin 0”
hardware_handler “0”
failback 15
}
}
multipaths {
multipath {
wwid 3600b342095668d2d9132d970ad0000d9
alias mpatha
}
multipath {
wwid 3600b3426fb82c96d983ddfc59d0000d8
alias mpathb
}
#如有多个多路径设备,可以逐一添加 multipath { },注意{前存在空格。
}
i说明
其中:
user_friendly_names:显示存储设备厂商
polling_interval:路径监测间隔时间,全局参数,对每条路径都有效
vendor:LUN的制造商
product:产品的ID
path_grouping_policy:选择路径的方式
path_selector:路径的工作方式
path_checker:检查路径的方式
no_path_retry:路径丢失时,一直等待直到路径恢复
prio:获取路径的优先级
getuid_callout:获取LUN的scsi_id
hardware_handler:1表示emc的LUN
failback:路径切换的时间(秒)
queue_without_daemon及flush_on_last_del:解决关于Linux服务器对存储端的Lun创建PV后,设备不能成功重启/关机,或Linux系统下强制取消FC关联Lun后,服务器不能成功重启/关机的问题。
!注意
群集环境中,如需使用共享LUN,可以先在其中任意一个节点完成多路径配置,然后再开启其他节点并完成后续设置。以此可以确保各节点中发现的多路径设备名称相同。
5.加载dm-multipath模块
modprobe dm-multipath
6.重启多路径服务
/etc/init.d/multipathd restart
linux7命令
systemctl restart multipathd.service
7.查看多路径状态
multipath -ll
问题:
如果没有多路径出现则需要对底层进行磁盘扫描:
ls /sys/class/fc_host/ //查询光模块
对上述查询到的每个host依次做如下操作
echo “- - -” > /sys/class/scsi_host/host*/scan
然在执行multipath -r就可以看到新映射的磁盘了。
二、第二次以以后映射fcsan存储操作如下:
1.底层识别操作
ls /sys/class/fc_host/ //查询光模块
对上述查询到的每个host依次做如下操作
echo '- - -' > /sys/class/scsi_host/host*/scan
2.查看wwid
multipath -r
3.修改配置文件
4.重启multipathd服务,然在执行multipath -r就可以看到新映射的磁盘了
2-4步参考上文