linux下powerpath对盘与更改盘符名

现网的几套oracle rac环境下经常会有EMC存储扩盘动作,而EMC的powerpath软件本身也会存在软件版本升级的问题。每次操作时都会担心盘符变动和一套rac下的几个节点盘符名一致的问题。通过EMC的powerpath内的emcpadm 与powermt 命令可以快速的解决该问题。本篇就针对该问题的维护经验做一个小结。

一、powerpath盘符信息的导出、导入与检查

 1、查看当前的路径聚合信息

先看输出结果:

# powermt display dev=all|more
Pseudo name=emcpowera
Symmetrix ID=000498700082
Logical device ID=049F
state=alive; policy=SymmOpt; queued-IOs=0
==============================================================================
--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---
###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors
==============================================================================
   5 lpfc                   sdif        FA  4gA  active   alive      0      0
   5 lpfc                   sdfx        FA  2gA  active   alive      0      0
   4 lpfc                   sddp        FA  3gA  active   alive      0      0
   4 lpfc                   sdbh        FA  1gA  active   alive      0      0
Pseudo name=emcpoweraa
Symmetrix ID=000498700082
Logical device ID=03DB
state=alive; policy=SymmOpt; queued-IOs=0
==============================================================================
--------------- Host ---------------   - Stor -  -- I/O Path --   -- Stats ---
###  HW Path               I/O Paths    Interf.  Mode     State   Q-IOs Errors
==============================================================================
   5 lpfc                   sdhf        FA  4gA  active   alive      0      0
   5 lpfc                   sdex        FA  2gA  active   alive      0      0
   4 lpfc                   sdcp        FA  3gA  active   alive      0      0
   4 lpfc                   sdah        FA  1gA  active   alive      0      0
………………省略

上面的pseudo name是几块盘聚合后的路径名称;Logical device ID值为对应存储上的唯一值,可以理解为同LUN ID一样;I/O paths为聚合前的盘名称,如上面的sdif、sdfx、sddp、sdbh聚合后的名字为emcpowera,对应的逻辑ID为049F ,状态都是正常的active alive。

2、导出当前的多路径信息

使用emcpadm命令可以将当前的路径配置信息导出:

# emcpadm export_mappings -x -f map.xml

导出的xml信息类似如下:

# more map.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<powerpath_dev_mappings>
  <powerpath_version>5.7.1 (build 6)</powerpath_version>
  <src_hostname>irora11</src_hostname>
  <lun>
    <pseudo_dev>emcpowerbf</pseudo_dev>
    <udev>0x307890</udev>
    <product_id>symmetrix</product_id>
    <frame_id>000498700082</frame_id>
    <logical_devid_type>symm_id</logical_devid_type>
    <logical_devid>028B</logical_devid>
  </lun>
  <lun>
    <pseudo_dev>emcpowerbe</pseudo_dev>
    <udev>0x307880</udev>
    <product_id>symmetrix</product_id>
    <frame_id>000498700082</frame_id>
    <logical_devid_type>symm_id</logical_devid_type>
    <logical_devid>028C</logical_devid>
  </lun>
…………省略

3、检查与导入

一般在升级powerpath软件时会出现,升级前后盘符名称不一致的问题,这里就可以利用之前的导出结果进行导入。

# emcpadm export_mappings -x -f map.xml
# emcpadm check_mappings -x -f map.xml
# emcpadm import_mappings -x -f map.xml

检查结果如下图:

前后没有变化的会显示为nochage,有变化的会将当前的和变化后的名称列在同一列。该问题可以通过上面的import命令导入老的xml配置使配置和之前的一致。

除了下面的对比方法,也可以使用下面的方法对比:

# powermt display dev=all|grep 'Pseudo\|Logical' |awk '{if(NR%2==0){printf $0 "\n"}else{printf "%s:",$0}}'
Pseudo name=emcpowera:Logical device ID=049F
Pseudo name=emcpoweraa:Logical device ID=03DB
Pseudo name=emcpowerab:Logical device ID=03D7
………………省略

通过该命令取出所有的聚合后的名称和逻辑ID号的对应关系,对比powerpath升级前后或扩容前后的变化。

二、盘符名更改

比如有一个三节点的rac,扩容后如果根据SCSI_ID使用的情况下,盘符名不同并不会影响使用,但为了维护方便,一般会要求盘符名、scsi_id、logical id、udev rule下的名称在三台主机上要保持一致。可以先以其中一台为参照,列出当前新增的磁盘信息与logical的对应信息,可以使用上面powemt与awk的组合导出的结果。也可以使用scsi_id获取的结果和/dev/disk/by-id的结果的组合。

# /lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/emcpowerca
360000970000498700082533030383836
# ll /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 10 Aug 14 00:08 scsi-360000970000498700082533030323234 -> ../../sdfz
lrwxrwxrwx 1 root root 10 Aug 14 00:08 scsi-360000970000498700082533030323842 -> ../../sdga
lrwxrwxrwx 1 root root 10 Aug 14 00:08 scsi-360000970000498700082533030323843 -> ../../sdgb
lrwxrwxrwx 1 root root 10 Aug 14 00:08 scsi-360000970000498700082533030323844 -> ../../sdgc
lrwxrwxrwx 1 root root 10 Aug 14 00:08 scsi-360000970000498700082533030333642 -> ../../sdgd

注:/dev/disk/by-id里显示的名称是聚合前的名称,不会显示聚合后的名称。且scsi_id在rac的另一个节点上看到的值也是一样。现网使用中快速比对的方法还是根据powermt的logical ID与聚合名对比,因为logcial id在三台主机上都是唯一的。

这里假设通过logical id 相同下,A、B 两台主机前后的聚合合的盘符情况如下:

DB1                              DB2
/dev/emcpowera                  /dev/emcpowerb
/dev/emcpowerb                  /dev/emcpowera
/dev/emcpowerc                  /dev/emcpowerc

  

想要修改一致的话,可以在B主机上执行如下命令:

#emcpadm renamepseudo –s emcpowera –t emcpowerd
#emcpadm renamepseudo –s emcpowerb –t emcpowera
#emcpadm renamepseudo –s emcpowerd –t emcpowerb

实际对比时可以选通过取A、B两台主机的powermt与awk组合后的结果,按logcial id排序后,再将两个文件join的文法快速比对,也可以通过excel 的功能快速比对。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 平台架构 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.