Linux没有在emc伪设备上正确获取新分区

前端之家收集整理的这篇文章主要介绍了Linux没有在emc伪设备上正确获取新分区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个运行oracle rac的数据库服务器.我们最近在它所连接的主LUN上空间不足.我创建了一个新的100GB LUN并将其连接到现有LUN上,创建了一个新的MetaLUN.经过一番混乱后,我设法让 linux识别出新的空间.然后我在伪设备上创建了一个新分区,以使用新空间.以前,当我在其他系统上完成此操作时,下一步是在新分区上创建ASM磁盘并将此磁盘添加到oracle磁盘组.然而,这失败了.我知道ASM和powerpath存在各种问题,但我认为这不是问题所在.在调查问题的同时,我发现其中一个底层逻辑设备没有反映出尺寸的变化.见下文;

Powermt显示所有基础逻辑单元

[root@XXXXX~]# powermt display dev=emcpowerd  
Pseudo name=emcpowerd  
CLARiiON ID=CKM00091500009 [VFRAC2]  
Logical device ID=6006016030312200787502866C65DE11 [LUN 30]  
state=alive; policy=CLAROpt; priority=0; queued-IOs=0  

Owner: default=SP A,current=SP A       Array failover mode: 1  
`==============================================================================`
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---  
`###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors`
`==============================================================================`
   3 qla2xxx                   sde       SP A0     active  alive      0      0  
   3 qla2xxx                   sdj       SP B0     active  alive      0      0  
   4 qla2xxx                   sdo       SP A1     active  alive      0      0  
   4 qla2xxx                   sdt       SP B1     active  alive      0      0  

**Fdisk on the pseudo device shows correct space.**

[root@XXXXX ~]# fdisk -l /dev/emcpowerd  

Disk /dev/emcpowerd: 429.4 GB,429496729600 bytes  
255 heads,63 sectors/track,52216 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  

         Device Boot      Start         End      Blocks   Id  System  
/dev/emcpowerd1               1       39162   314568733+  83  Linux  
/dev/emcpowerd2           39163       52216   104856255   83  Linux  

**fdisk on one of the logical units is wrong**

[root@XXXXX~]# fdisk -l /dev/sde  

Disk /dev/sde: 322.1 GB,322122547200 bytes    
255 heads,39162 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  

   Device Boot      Start         End      Blocks   Id  System  
/dev/sde1               1       39162   314568733+  83  Linux  
/dev/sde2           39163       52216   104856255   83  Linux  

**fdisk on the rest of the units is fine**

[root@XXXXX ~]# fdisk -l /dev/sdj  
Disk /dev/sdj: 429.4 GB,52216 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  
   Device Boot      Start         End      Blocks   Id  System  
/dev/sdj1               1       39162   314568733+  83  Linux  
/dev/sdj2           39163       52216   104856255   83  Linux

此外,当我创建分区时,linux没有在/ dev目录中为第二个分区创建任何条目,因此我手动创建了这些条目

[root@XXXXX dev]# mknod sde2 b 8 66
[root@XXXXX dev]# ls -al sd[ejot]?  
brw-r----- 1 root disk  8,65 Dec 29 14:20 sde1  
brw-r--r-- 1 root disk  8,66 Apr  8 20:31 sde2  
brw-r----- 1 root disk  8,145 Dec 29 14:19 sdj1  
brw-r--r-- 1 root disk  8,146 Apr  8 20:33 sdj2  
brw-r----- 1 root disk  8,225 Apr  6 23:12 sdo1  
brw-r--r-- 1 root disk  8,226 Apr  8 20:33 sdo2  
brw-r----- 1 root disk 65,49 Dec 29 14:19 sdt1  
brw-r--r-- 1 root disk 65,50 Apr  8 20:33 sdt2

这是一个我们无法轻松重启的生产服务器.

任何想法将不胜感激.

Ĵ

解决方法

除了partprobe之外,请尝试使用blockdev实用程序重新读取设备的分区表:
blockdev --rereadpt /dev/sde

然后,问题可能是LUN本身未正确更新.

您可以尝试通过/ sys文件系统对光纤通道或SCSI主机发出重新扫描命令.

前段时间,我编写了这个scsi_rescan_bus.sh脚本来处理我们的EMC Clariion设备:

#!/bin/sh
host_number="$1"
echo "1" > /sys/class/fc_host/host${host_number}/issue_lip
sleep 10
echo "- - -" > /sys/class/scsi_host/host${host_number}/scan

我不完全确定它仍然适用于现代内核和设备.在生产中尝试之前,请始终在专用测试环境中对此进行测试!

有很多陷阱,所以请务必阅读以下相关主题

http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1454807

官方Red Hat文档(“在线存储重新配置指南”):
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/index.html

猜你在找的Linux相关文章