开始新对话

此帖子已超过 5 年

Solved!

Go to Solution

4555

2013年2月27日 20:00

Linux PP LVM问题咨询

一台Linux服务器,连接了EMC 的 DMX高端存储,但之前做vg的时候忘记使用了Powerpath聚合后的Pseudo设备,因目前对系统无影响,具体情况如下。想确认一下:

1、现在的情况下,PP是不是起不到作用了?

2、如果我更换了前端卡14,系统是不是会有问题?

3、如何改变这种情况?

还请各位专家指点迷津。多谢。

[root@locahost dev]# powermt display dev=all

Pseudo name=emcpowera

Symmetrix ID=000187401363

Logical device ID=018E

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sdc       FA  3bA   active  alive       0      0

   4 lpfc                     sdi       FA 14bA   active  alive       0      2

Pseudo name=emcpowerb

Symmetrix ID=000187401363

Logical device ID=0196

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sdd       FA  3bA   active  alive       0      0

   4 lpfc                     sdj       FA 14bA   active  alive       0      2

Pseudo name=emcpowerc

Symmetrix ID=000187401363

Logical device ID=019E

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sde       FA  3bA   active  alive       0      0

   4 lpfc                     sdk       FA 14bA   active  alive       0      2

Pseudo name=emcpowerd

Symmetrix ID=000187401363

Logical device ID=01A6

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sdf       FA  3bA   active  alive       0      0

   4 lpfc                     sdl       FA 14bA   active  alive       0      2

Pseudo name=emcpowerf

Symmetrix ID=000187401363

Logical device ID=0456

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sdg       FA  3bA   active  alive       0      0

   4 lpfc                     sdm       FA 14bA   active  alive       0      2

Pseudo name=emcpowere

Symmetrix ID=000187401363

Logical device ID=045E

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sdh       FA  3bA   active  alive       0      0

   4 lpfc                     sdn       FA 14bA   active  alive       0      2

 

[root@localhost ~]# pvs

  Found duplicate PV lHUaHKBUL1w7Z5Wng8JHGkwgiVPTm8Dl: using /dev/sdi1 not /dev/sdc1

  Found duplicate PV KFcp0gdsJHkaJTBVy6tgzqUxlkW2386J: using /dev/sdj1 not /dev/sdd1

  Found duplicate PV 25PeU6UTCuUk63hWvDqJt78qLdMGYj2C: using /dev/sdk1 not /dev/sde1

  Found duplicate PV ff5OPuwFZSVs6br7qF39WCBhIQd0tT1V: using /dev/sdl1 not /dev/sdf1

  Found duplicate PV N7kllr7t08w1UsUyVPuy2m1eJ8ofi2p3: using /dev/sdm1 not /dev/sdg1

  Found duplicate PV YszR230cImdBHnpwcP6O2z9dE5mfs1fn: using /dev/sdn1 not /dev/sdh1

  PV         VG                Fmt  Attr PSize   PFree 

  /dev/sda1  VolGroup_ID_27668 lvm2 a-     9.53G   9.53G

  /dev/sda3  VolGroup_ID_27668 lvm2 a-   548.62G 450.62G

  /dev/sdi1  appvg1            lvm2 a-    54.48G      0

  /dev/sdj1  appvg1            lvm2 a-    54.48G      0

  /dev/sdk1  appvg1            lvm2 a-    54.48G      0

  /dev/sdl1  appvg1            lvm2 a-    54.48G      0

  /dev/sdm1  appvg1            lvm2 a-    54.48G      0

  /dev/sdn1  appvg1            lvm2 a-    54.48G   6.86G

605 消息

2013年2月27日 21:00

1、现在的情况下,PP是不是起不到作用了?

PP没有起作用。

2、如果我更换了前端卡14,系统是不是会有问题?

有问题。

pvs看出来是用的/dev/sd[ijklmn]这些磁盘,参考命令powermt display dev=all结果对应的就是DMX前端口( FA 14bA)。

另外如何搞清楚系统逻辑卷到存储I/O链路之间映射关系,也可以参考下面这个步骤:

  • 查找正在使用的逻辑卷
  • vgdisplay -v 找到正在使用的卷组,根据卷组找到哪些PV在使用。
  • 通过PV找到磁盘名称,然后根据磁盘名字去查找系统当前正在使用I/O链路。详细文档可以参考:

Linux存储在线管理(一)FC磁盘设备管理

3、如何改变这种情况?

本机而言应该是没有办法了。重新基于PP的伪设备做逻辑该会毁掉现有数据(这个可以测试确认下),建议另找一台机器配好PP准备数据迁移。

2013年2月27日 21:00

出现这种情况的原因是没有配置lvm.conf里的filter,按照我之前遇到的情况,这种情况下链路切换,主机应用会出问题。我也想知道能否在线处理这种情况

605 消息

2013年2月27日 22:00

另外楼主能不能贴下fdisk -l的结果和df -h的结果?

605 消息

2013年2月27日 22:00

有连个跟楼主情况非常类似的帖子可以参考下:

Post changing pv with its multipath volume

vgcreate command is changing /dev/mapper as PV Name in pvdisplay to /dev/dm-xx path

基本原理是改lvm.conf里面参数preferred_names。

2013年2月27日 22:00

在powerpath for linux 的安装文档中明确提到了,需要修改lvm.conf的filter处,然后使用lvmdiskscan和mkinitrd。

我记得HDLM早些版本也需要修改这个,后期的版本安装以后就会自动过滤掉sd*的盘了,fdisk -l已经看不到这些盘,不知道powerpath为什么没有这么做

605 消息

2013年2月28日 00:00

这些参数lvm的,pp去改不一定合适。要客户的使用场景。

其实LVM跟PP使用主要有两个配置需要注意:

1、配置lvm扫描哪些设备?

filter这个配置就是配置lvm只扫描哪些设备。如果是多路径,默认会每条链路都扫描读取一遍lvm元数据信息。

2、配置lvm有限从什么样设备开始扫描?

preferred_names配置lvm优先扫描目录。如果是多路径设备,第一个扫描到的设备会显示在结果中。

另外楼上的意思应该是lvmdiskscan看不到了吧。

2.1K 消息

2013年2月28日 01:00

应用不停是不太可能了,如果你要换FA14,又不想长时间停,在阵列内部重新配置你的那些sdx的symmask到另外一个前端口,然后链路切换到新的端口(需要停机),再换FA,停机时间会相应短一点。建议

631 消息

2013年2月28日 03:00

不知道通过vgexport,然后再将该VG import到PP的聚合设备上是否可行?

毕竟比如说emcpowera对应的就是sdc和sdi,虽然pv用了sdc,实际上pvid在三个设备上都应该是一致的,数据也是一致的。

不知道有没有这方面的实施经验?

605 消息

2013年2月28日 18:00

vgexport和vgimport不适合的,这两个命令主要用于机器间磁盘迁移。

另外你说的pvid一致这个我也赞同。不过我这边看到楼主的pv是基于分区的,这些分区跟PP的伪设备有对应分区吗?

比如:

sdi -对应-     emcpowera

sdi1有没有emcpowera的对应分区?

可以贴下fdisk -l看看。如果有,可以尝试/etc/lvm/lvm.conf配置文件参数preferred_names。然后使用命令vgscan -vvvv清理lvm缓存重新扫描一遍设备;再使用lvmdiskscan看看lvm卷现在是用建在pp设备上面了。 (注意:安全起见,这个操作最好先把文件系统umount下来再做。)

631 消息

2013年3月6日 02:00

sdi -对应-     emcpowera

sdi1有没有emcpowera的对应分区?



从fdisk 的输出看是有的。

631 消息

2013年3月6日 02:00

[root@tmserver ~]# fdisk -l

Disk /dev/sda: 599.5 GB, 599550590976 bytes

255 heads, 63 sectors/track, 72891 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1        1246    10008463+  8e  Linux LVM

/dev/sda2   *        1247        1271      200812+  83  Linux

/dev/sda3            1272       72891   575287650   8e  Linux LVM

Disk /dev/sdb: 599.5 GB, 599550590976 bytes

255 heads, 63 sectors/track, 72891 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1       55785    57123824   83  Linux

Disk /dev/sdd: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdd1               1       55785    57123824   83  Linux

Disk /dev/sde: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sde1               1       55785    57123824   83  Linux

Disk /dev/sdf: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdf1               1       55785    57123824   83  Linux

Disk /dev/sdg: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdg1               1       55785    57123824   83  Linux

Disk /dev/sdh: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdh1               1       55785    57123824   83  Linux

Disk /dev/sdi: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdi1               1       55785    57123824   83  Linux

Disk /dev/sdj: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdj1               1       55785    57123824   83  Linux

Disk /dev/sdk: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdk1               1       55785    57123824   83  Linux

Disk /dev/sdl: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdl1               1       55785    57123824   83  Linux

Disk /dev/sdm: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdm1               1       55785    57123824   83  Linux

Disk /dev/sdn: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdn1               1       55785    57123824   83  Linux

Disk /dev/emcpowerf: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

         Device Boot      Start         End      Blocks   Id  System

/dev/emcpowerf1               1       55785    57123824   83  Linux

Disk /dev/emcpowere: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

         Device Boot      Start         End      Blocks   Id  System

/dev/emcpowere1               1       55785    57123824   83  Linux

Disk /dev/emcpowera: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

         Device Boot      Start         End      Blocks   Id  System

/dev/emcpowera1               1       55785    57123824   83  Linux

Disk /dev/emcpowerb: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

         Device Boot      Start         End      Blocks   Id  System

/dev/emcpowerb1               1       55785    57123824   83  Linux

Disk /dev/emcpowerc: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

         Device Boot      Start         End      Blocks   Id  System

/dev/emcpowerc1               1       55785    57123824   83  Linux

Disk /dev/emcpowerd: 58.4 GB, 58494812160 bytes

64 heads, 32 sectors/track, 55785 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

         Device Boot      Start         End      Blocks   Id  System

/dev/emcpowerd1               1       55785    57123824   83  Linux

[root@tmserver ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup_ID_27668-LogVol1

                       49G   15G   32G  33% /

/dev/mapper/VolGroup_ID_27668-LogVol2

                      9.7G  151M  9.1G   2% /tmp

/dev/mapper/VolGroup_ID_27668-LogVol5

                      9.7G  2.1G  7.1G  23% /usr

/dev/mapper/VolGroup_ID_27668-LogVol4

                      9.7G  416M  8.8G   5% /var

/dev/sda2             190M   17M  165M   9% /boot

tmpfs                 7.9G     0  7.9G   0% /dev/shm

/dev/mapper/VolGroup_ID_27668-LogVolHome

                      9.9G  300M  9.1G   4% /home

/dev/mapper/appvg1-lv_mode

                      315G   81G  219G  27% /mode

605 消息

2013年3月6日 17:00

那建议修改lvm.conf的preferred_name参数,然后重新扫描下。可以参考下面步骤:

1、停掉应用

2、umount掉文件系统

3、备份/etc/lvm/lvm.conf配置文件

4、修改/etc/lvm/lvm.conf文件参数preferred_name,可以加上""^/dev/emcpower"

5、vgscan -vvvv重新扫描一下

6、vgdisplay -v看看物理卷使用的是不是PP的伪设备。

另外也可以参考EMC Primus:emc120281 "How to set up a Linux host to use emcpower
devices in LVM"

Root File System Not Mounted on a Logical Volume这个部分就足够了。

Primus里面使用的filter参数,直接把非PP伪设备直接过滤掉。

这两个方法有条件楼主可以都可以先试下。

631 消息

2013年3月8日 04:00

找机会测试一下再来回复,多谢Jun_Tan

109 消息

2013年3月8日 15:00

在Linux操作系统上,针对Native设备的I/O请求也是可以被Powerpath接管的。以楼主的一个设备举个例子:

Pseudo name=emcpowera

Symmetrix ID=000187401363

Logical device ID=018E

state=alive; policy=SymmOpt; priority=0; queued-IOs=0;

==============================================================================

--------------- Host ---------------   - Stor -   -- I/O Path --  -- Stats ---

###  HW Path               I/O Paths    Interf.   Mode    State   Q-IOs Errors

==============================================================================

   3 lpfc                     sdc       FA  3bA   active  alive       0      0

   4 lpfc                     sdi       FA 14bA   active  alive       0      2

如果有一个应用对于sdc设备发送了一个I/O请求,而lpfc 3这个HBA到3bA这个FA的链路相对比较繁忙,Powerpath也会将这个请求从lpfc 4发送,有14bA来响应。

这个特性不是在所有的操作系统上都成立的。

因此,LVM设备建立在伪设备还是native设备上,其实没有太大关系。但是因为操作系统对于同一个LUN出现了多个通道(n+1),因此LVM的命令里面会报很多的duplicated PVID之类的警告。要去除这些警告,可以参考 EMC Host Connectivity Guide for Linux,或者Powerpath for Linux Installation and Administration Guide里面,修改/etc/lvm.conf中的filter参数。

这个参数的作用是选择或者拒绝使用特定的设备名作为PV,因此只要"ccept"所有的emcpower设备," eject"所有的sd设备,LVM的命令就不会再报错,并且pvs命令也能显示伪设备而不是native设备了。

对于这个参数的修改需要比较小心,修改错误的话,会出现把内部硬盘也拒绝掉,从而无法激活rootvg导致无法启动的状况。针对每种情况的filter配置,在Host Connectivity Guide里面都已经给出了。修改配置以后可以重启服务器,或者执行一个LVM的命令来使之生效。应该是可以在线做的。

146 消息

2013年3月14日 19:00

之前也遇到一个问题,pvs也是显示多个duplicate PV,但和这个问题有2个不一样的地方:

1、没有对本地磁盘做LVM;2、直接使用裸磁盘做的PV,不用分区。

实施人员不能确认,最初是使用的Pseudo设备做的PV,还是使用的sd设备,而且在系统环境RHEL6.X中,filter的规则使用的是先r掉sd、disk等设备,然后a所有emcpower设备。这个filter的语法使用也有问题,正常是先a emcpower,然后r所有需要lvm识别的设备。

当时进行了观察,发现使用iostat能够看到数据是balance到所有路径上的,但由于没有停机窗口,而且马上要下线,所以没有进行filter的调整。建议可以根据iostat先观察一下数据,然后针对性的测试一下,针对具体的环境确定好适用的filter规则,比如a所有本地磁盘,a所有emcpower设备,然后r其他不用的。

找不到事件!

Top